src/Pure/Thy/document_output.ML
changeset 74826 0e4d8aa61ad7
parent 74823 d6ce4ce20422
child 74829 f31229171b3b
equal deleted inserted replaced
74825:9bea6244c35a 74826:0e4d8aa61ad7
   239 
   239 
   240 fun edge which f (x: string option, y) =
   240 fun edge which f (x: string option, y) =
   241   if x = y then I
   241   if x = y then I
   242   else (case which (x, y) of NONE => I | SOME txt => fold cons (Latex.string (f txt)));
   242   else (case which (x, y) of NONE => I | SOME txt => fold cons (Latex.string (f txt)));
   243 
   243 
   244 val begin_tag = edge #2 Latex.begin_tag;
   244 val markup_tag = YXML.output_markup o Markup.latex_tag;
   245 val end_tag = edge #1 Latex.end_tag;
   245 val markup_delim = YXML.output_markup o Markup.latex_delim;
   246 fun open_delim delim e = edge #2 Latex.begin_delim e #> delim #> edge #2 Latex.end_delim e;
   246 val bg_delim = #1 o markup_delim;
   247 fun close_delim delim e = edge #1 Latex.begin_delim e #> delim #> edge #1 Latex.end_delim e;
   247 val en_delim = #2 o markup_delim;
       
   248 
       
   249 val begin_tag = edge #2 (#1 o markup_tag);
       
   250 val end_tag = edge #1 (#2 o markup_tag);
       
   251 fun open_delim delim e = edge #2 bg_delim e #> delim #> edge #2 en_delim e;
       
   252 fun close_delim delim e = edge #1 bg_delim e #> delim #> edge #1 en_delim e;
   248 
   253 
   249 fun document_tag cmd_pos state state' tagging_stack =
   254 fun document_tag cmd_pos state state' tagging_stack =
   250   let
   255   let
   251     val ctxt' = Toplevel.presentation_context state';
   256     val ctxt' = Toplevel.presentation_context state';
   252     val nesting = Toplevel.level state' - Toplevel.level state;
   257     val nesting = Toplevel.level state' - Toplevel.level state;