Back to index

texmacs  1.0.7.15
env_default.cpp
Go to the documentation of this file.
00001 
00002 /******************************************************************************
00003 * MODULE     : env_default.cpp
00004 * DESCRIPTION: default values of the environment variables
00005 * COPYRIGHT  : (C) 1999  Joris van der Hoeven
00006 *******************************************************************************
00007 * This software falls under the GNU general public license version 3 or later.
00008 * It comes WITHOUT ANY WARRANTY WHATSOEVER. For details, see the file LICENSE
00009 * in the root directory or <http://www.gnu.org/licenses/gpl-3.0.html>.
00010 ******************************************************************************/
00011 
00012 #include "env.hpp"
00013 
00014 /*static*/ hashmap<string,tree> default_env (UNINIT);
00015 
00016 /*static*/ void
00017 initialize_default_env () {
00018   if (N(default_env) != 0) return;
00019   hashmap<string,tree>& env= default_env;
00020 
00021   tree identity_m (MACRO, "x", tree (ARG, "x"));
00022   tree tabular_m (MACRO, "x", tree (TFORMAT, tree (ARG, "x")));
00023   tree the_page (MACRO, compound ("page-nr"));
00024 
00025   tree gr_geometry (TUPLE, "geometry", "1par", "0.6par", "center");
00026   tree gr_frame (TUPLE, "scale", "1cm", tree (TUPLE, "0.5gw", "0.5gh"));
00027 
00028   tree gr_grid ("");
00029   tree gr_edit_grid ("");
00030   tree gr_grid_aspect (TUPLE,
00031                      tuple ("axes", "#808080"),
00032                      tuple ("1", "#c0c0c0"),
00033                      tuple ("10", "#e0e0ff"));
00034 
00035   env (DPI)              = "600";       // resolution in dots per inch
00036   env (SFACTOR)          = "5";         // shrinking factor on screen
00037   env (PREAMBLE)         = "false";     // preamble mode ?
00038   env (SAVE_AUX)         = "true";      // save auxiliary data on disk ?
00039   env (MODE)             = "text";      // typesetting mode
00040   env (INFO_FLAG)        = "minimal";   // information about labels, etc.
00041   env (WINDOW_BARS)      = "auto";      // override menu/icon bar settings
00042   env (SCROLL_BARS)      = "true";      // allow scroll bars around canvas?
00043   env (IDENTITY)         = identity_m;  // identity macro
00044   env (TABULAR)          = tabular_m;   // tabular macro
00045   env (THE_LABEL)        = "?";         // value of the next label
00046   env (THE_TAGS)         = tree(TUPLE); // current tags
00047   env (THE_MODULES)      = tree(TUPLE); // necessary modules and plug-ins
00048 
00049   env (FONT)             = "roman";     // the font name in text mode
00050   env (FONT_FAMILY)      = "rm";        // the font family in text mode
00051   env (FONT_SERIES)      = "medium";    // the font series in text mode
00052   env (FONT_SHAPE)       = "right";     // the font shape in text mode
00053   env (FONT_SIZE)        = "1";         // the font size multiplier
00054   env (FONT_BASE_SIZE)   = "10";        // the font base size
00055   env (MAGNIFICATION)    = "1";         // magnification (slides for instance)
00056   env (COLOR)            = "black";     // the color
00057   env (OPACITY)          = "100%";      // the opacity
00058   env (BG_COLOR)         = "white";     // the background color
00059   env (LOCUS_COLOR)      = "global";    // the color of loci
00060   env (VISITED_COLOR)    = "global";    // the color of visited loci
00061   env (LANGUAGE)         = "english";   // the language
00062   env (ATOM_DECORATIONS) = DATOMS;      // dots, underline, hyperlinks?, etc.
00063   env (LINE_DECORATIONS) = DLINES;      // boxed pars, nested envs, etc.
00064   env (PAGE_DECORATIONS) = DPAGES;      // future headers, footers, etc.
00065   env (XOFF_DECORATIONS) = "0tmpt";     // hor. placement of decorations
00066   env (YOFF_DECORATIONS) = "0tmpt";     // vert. placement of decorations
00067 
00068   env (MATH_LANGUAGE)    = "std-math";  // the default mathematical language
00069   env (MATH_FONT)        = "roman";     // the font name in math mode
00070   env (MATH_FONT_FAMILY) = "mr";        // the font family in math mode
00071   env (MATH_FONT_SERIES) = "medium";    // the font series in math mode
00072   env (MATH_FONT_SHAPE)  = "normal";    // the font shape in math mode
00073   env (MATH_LEVEL)       = "0";         // the index level (0, 1 or 2)
00074   env (MATH_DISPLAY)     = "false";     // true if we are in display style
00075   env (MATH_CONDENSED)   = "false";     // ignore spaces between operators ?
00076   env (MATH_VPOS)        = "0";         // used in fractions (-1, 0 or 1)
00077   env (MATH_NESTING_MODE)= "off";       // color nested brackets?
00078   env (MATH_NESTING_LEVEL)= "0";        // nesting level inside brackets
00079 
00080   env (PROG_LANGUAGE)    = "scheme";    // the default programming language
00081   env (PROG_SCRIPTS)     = "scheme";    // the scripting language
00082   env (PROG_FONT)        = "roman";     // the font name in prog mode
00083   env (PROG_FONT_FAMILY) = "tt";        // the font family in prog mode
00084   env (PROG_FONT_SERIES) = "medium";    // the font series in prog mode
00085   env (PROG_FONT_SHAPE)  = "right";     // the font shape in prog mode
00086   env (PROG_SESSION)     = "default";   // computer algebra session name
00087 
00088   env (PAR_MODE)         = "justify";   // outline method
00089   env (PAR_FLEXIBILITY)  = "1000.0";    // threshold for switching to ragged
00090   env (PAR_HYPHEN)       = "professional"; // quality of hyphenation
00091   env (PAR_WIDTH)        = "auto";      // width of paragraph
00092   env (PAR_LEFT)         = "0cm";       // left indentation
00093   env (PAR_RIGHT)        = "0cm";       // right indentation
00094   env (PAR_FIRST)        = "1.5fn";     // extra first indentation
00095   env (PAR_NO_FIRST)     = "false";     // no extra first indent. on next line
00096   env (PAR_SEP)          = "0.2fn";     // extra space between paragraph lines
00097   env (PAR_HOR_SEP)      = "0.5fn";     // min. hor. spc. between ink for shove
00098   env (PAR_VER_SEP)      = "0.2fn";     // min. ver. spc. between ink
00099   env (PAR_LINE_SEP)     = "0.025fns";  // extra (small) space between lines
00100   env (PAR_PAR_SEP)      = "0.5fns";    // extra space between paragraphs
00101   env (PAR_FNOTE_SEP)    = "0.2fn";     // min space between diff footnotes
00102   env (PAR_COLUMNS)      = "1";         // number of columns
00103   env (PAR_COLUMNS_SEP)  = "2fn";       // separation between columns
00104 
00105   env (PAGE_MEDIUM)      = "papyrus";   // paper medium: paper, papyrus, auto
00106   env (PAGE_PRINTED)     = "false";     // printed version?
00107   env (PAGE_TYPE)        = "a4";        // paper type (-> width & height)
00108   env (PAGE_ORIENTATION) = "portrait";  // paper orientation
00109   env (PAGE_WIDTH_MARGIN)  = "false";   // compute margins from par-width?
00110   env (PAGE_HEIGHT_MARGIN) = "false";   // compute margins from par-width?
00111   env (PAGE_SCREEN_MARGIN) = "true";    // special margins for screen editing?
00112   env (PAGE_BREAKING)    = "optimal";   // quality of page breaking
00113   env (PAGE_FLEXIBILITY) = "1.0";       // flexibility factor of stretch
00114   env (PAGE_NR)          = "0";         // the page number
00115   env (PAGE_THE_PAGE)    = the_page;    // the page number as text
00116   env (PAGE_WIDTH)       = "auto";      // physical width of pages
00117   env (PAGE_HEIGHT)      = "auto";      // physical height of pages
00118   env (PAGE_ODD)         = "auto";      // left margin on odd pages
00119   env (PAGE_EVEN)        = "auto";      // left margin on even pages
00120   env (PAGE_RIGHT)       = "auto";      // right margin in auto mode
00121   env (PAGE_TOP)         = "auto";      // top margin
00122   env (PAGE_BOT)         = "auto";      // bottom margin
00123   env (PAGE_USER_HEIGHT) = "522pt";     // height of principal text
00124   env (PAGE_ODD_SHIFT)   = "0mm";       // odd page marginal shift wrt center
00125   env (PAGE_EVEN_SHIFT)  = "0mm";       // even page marginal shift wrt center
00126   env (PAGE_SHRINK)      = "1fn";       // emergency page length shrinking
00127   env (PAGE_EXTEND)      = "0fn";       // emergency page length extension
00128   env (PAGE_HEAD_SEP)    = "8mm";       // separation between header and text
00129   env (PAGE_FOOT_SEP)    = "8mm";       // separation between footer and text
00130   env (PAGE_ODD_HEADER)  = "";          // header on odd pages
00131   env (PAGE_ODD_FOOTER)  = "";          // footer on odd pages
00132   env (PAGE_EVEN_HEADER) = "";          // header on even pages
00133   env (PAGE_EVEN_FOOTER) = "";          // footer on even pages
00134   env (PAGE_SCREEN_WIDTH)  = "10cm";    // width of current window (for auto)
00135   env (PAGE_SCREEN_HEIGHT) = "10cm";    // height of current window (for auto)
00136   env (PAGE_SCREEN_LEFT) = "5mm";       // left margin for screen editing
00137   env (PAGE_SCREEN_RIGHT)= "5mm";       // right margin for screen editing
00138   env (PAGE_SCREEN_TOP)  = "15mm";      // top margin for screen editing
00139   env (PAGE_SCREEN_BOT)  = "15mm";      // bottom margin for screen editing
00140   env (PAGE_SHOW_HF)     = "false";     // show header and footer
00141   env (PAGE_FNOTE_SEP)   = "1.0fn";     // space between text & footnotes
00142   env (PAGE_FNOTE_BARLEN)= "7.5fn";     // length of footnote separating bar
00143   env (PAGE_FLOAT_SEP)   = "1.5fn";     // space between text & floats
00144   env (PAGE_MNOTE_SEP)   = "5mm";       // space between text & marginal notes
00145   env (PAGE_MNOTE_WIDTH) = "15mm";      // width of marginal notes
00146 
00147   env (TABLE_WIDTH)      = "";          // width of table
00148   env (TABLE_HEIGHT)     = "";          // height of table
00149   env (TABLE_HMODE)      = "auto";      // width determination mode
00150   env (TABLE_VMODE)      = "auto";      // height determination mode
00151   env (TABLE_HALIGN)     = "l";         // horizontal alignment
00152   env (TABLE_VALIGN)     = "f";         // vertical alignment (fraction height)
00153   env (TABLE_ROW_ORIGIN) = "0";         // row origin
00154   env (TABLE_COL_ORIGIN) = "0";         // column origin
00155   env (TABLE_LSEP)       = "0fn";       // left padding around table
00156   env (TABLE_RSEP)       = "0fn";       // right padding around table
00157   env (TABLE_BSEP)       = "0fn";       // bottom padding around table
00158   env (TABLE_TSEP)       = "0fn";       // top padding around table
00159   env (TABLE_LBORDER)    = "0ln";       // left table border width
00160   env (TABLE_RBORDER)    = "0ln";       // right table border width
00161   env (TABLE_BBORDER)    = "0ln";       // bottom table border width
00162   env (TABLE_TBORDER)    = "0ln";       // top table border width
00163   env (TABLE_HYPHEN)     = "n";         // vertical hyphenation
00164   env (TABLE_MIN_ROWS)   = "";          // suggested minimal number of rows
00165   env (TABLE_MIN_COLS)   = "";          // suggested minimal number of columns
00166   env (TABLE_MAX_ROWS)   = "";          // suggested maximal number of rows
00167   env (TABLE_MAX_COLS)   = "";          // suggested maximal number of columns
00168 
00169   env (CELL_DECORATION)  = "";          // decorating table of cell
00170   env (CELL_FORMAT)      = TFORMAT;     // format of cell
00171   env (CELL_BACKGROUND)  = "";          // background color of cell
00172   env (CELL_ORIENTATION) = "portrait";  // orientation of cell  
00173   env (CELL_WIDTH)       = "";          // width of cell
00174   env (CELL_HEIGHT)      = "";          // height of cell
00175   env (CELL_HPART)       = "";          // take part of unused horizontal space
00176   env (CELL_VPART)       = "";          // take part of unused vertical space
00177   env (CELL_HMODE)       = "auto";      // width determination mode
00178   env (CELL_VMODE)       = "auto";      // height determination mode
00179   env (CELL_HALIGN)      = "l";         // horizontal alignment
00180   env (CELL_VALIGN)      = "B";         // vertical alignment
00181   env (CELL_LSEP)        = "0fn";       // left cell padding
00182   env (CELL_RSEP)        = "0fn";       // right cell padding
00183   env (CELL_BSEP)        = "0fn";       // bottom cell padding
00184   env (CELL_TSEP)        = "0fn";       // top cell padding
00185   env (CELL_LBORDER)     = "0ln";       // left cell border width
00186   env (CELL_RBORDER)     = "0ln";       // right cell border width
00187   env (CELL_BBORDER)     = "0ln";       // bottom cell border width
00188   env (CELL_TBORDER)     = "0ln";       // top cell border width
00189   env (CELL_VCORRECT)    = "a";         // vertical limits correction
00190   env (CELL_HYPHEN)      = "n";         // horizontal hyphenation
00191   env (CELL_BLOCK)       = "auto";      // cell contains block content?
00192   env (CELL_ROW_SPAN)    = "1";         // row span of cell
00193   env (CELL_COL_SPAN)    = "1";         // column span of cell
00194   env (CELL_ROW_NR)      = "1";         // row coordinate of cell
00195   env (CELL_COL_NR)      = "1";         // column coordinate of cell
00196 
00197   env (GR_GEOMETRY)         = gr_geometry;    // geometry of graphics
00198   env (GR_FRAME)            = gr_frame;       // coordinate frame for graphics
00199   env (GR_MODE)             = "line";         // graphical mode
00200   env (GR_AUTO_CROP)        = "false";        // auto crop graphics
00201   env (GR_CROP_PADDING)     = "1spc";         // padding when auto cropping
00202   env (GR_GRID)             = gr_grid;        // grid for graphics
00203   env (GR_GRID_ASPECT)      = gr_grid_aspect; // grid aspect
00204   env (GR_EDIT_GRID)        = gr_edit_grid;   // edit grid
00205   env (GR_EDIT_GRID_ASPECT) = gr_grid_aspect; // edit grid (subdivisions)
00206 
00207   env (GR_MAGNIFY)       = "default";   // magnify of new objects
00208   env (GR_OPACITY)       = "default";   // opacity of new objects
00209   env (GR_COLOR)         = "default";   // color of new objects
00210   env (GR_POINT_STYLE)   = "default";   // point style of new objects
00211   env (GR_LINE_WIDTH)    = "default";   // line width for new objects
00212   env (GR_LINE_JOIN)     = "default";   // line join for new objects
00213   env (GR_LINE_CAPS)     = "default";   // line caps for new objects
00214   env (GR_LINE_EFFECTS)    = "default";   // line effects for new objects
00215   env (GR_DASH_STYLE)      = "default";   // dash style for new objects
00216   env (GR_DASH_STYLE_UNIT) = "default";   // dash style unit for new objects
00217   env (GR_ARROW_BEGIN)     = "default";   // arrow begin for new objects
00218   env (GR_ARROW_END)       = "default";   // arrow end for new objects
00219   env (GR_ARROW_LENGTH)    = "default";   // arrow length for new objects
00220   env (GR_ARROW_HEIGHT)    = "default";   // arrow height for new objects
00221   env (GR_FILL_COLOR)      = "default";   // fill color for new objects
00222   env (GR_FILL_STYLE)      = "default";   // fill style for new objects
00223   env (GR_TEXT_AT_HALIGN)  = "default";   // horiz. alignment for new text-ats
00224   env (GR_TEXT_AT_VALIGN)  = "default";   // vert. alignment for new text-ats
00225   env (GR_TEXT_AT_MARGIN)  = "default";   // margins for new text-ats
00226 
00227   env (GID)              = "default";   // graphical identifier
00228   env (MAGNIFY)          = "1";         // magnification for graphical objects
00229   env (POINT_STYLE)      = "disk";      // point style (square, circle...)
00230   env (LINE_WIDTH)       = "1ln";       // line width in graphics
00231   env (LINE_JOIN)        = "normal";    // junctions in multilines
00232   env (LINE_CAPS)        = "normal";    // caps at ends
00233   env (LINE_EFFECTS)     = "none";      // effects to be applied on line
00234   env (DASH_STYLE)       = "none";      // dash style
00235   env (DASH_STYLE_UNIT)  = "5ln";       // dash style unit
00236   env (ARROW_BEGIN)      = "none";      // arrow at beginning of line
00237   env (ARROW_END)        = "none";      // arrow at end of line
00238   env (ARROW_LENGTH)     = "5ln";       // longitudal length of arrow
00239   env (ARROW_HEIGHT)     = "5ln";       // transverse height of arrow
00240   env (FILL_COLOR)       = "none";      // fill color
00241   env (FILL_STYLE)       = "plain";     // fill style
00242   env (TEXT_AT_HALIGN)   = "left";      // horizontal text-at alignment
00243   env (TEXT_AT_VALIGN)   = "base";      // vertical text-at alignment
00244   env (TEXT_AT_MARGIN)   = "base";      // margin for smart guides
00245 
00246   env (SRC_STYLE)        = "angular";   // style for "source" tags
00247   env (SRC_SPECIAL)      = "normal";    // special treatment of certain tags
00248   env (SRC_COMPACT)      = "normal";    // compact inline/multi-paragraph tags?
00249   env (SRC_CLOSE)        = "compact";   // how to close long tags
00250 
00251   env (CANVAS_TYPE)           = "plain";        // which kind of scrollbars
00252   env (CANVAS_COLOR)          = "white";        // canvas colour
00253   env (CANVAS_HPADDING)       = "0px";          // horizontal canvas padding
00254   env (CANVAS_VPADDING)       = "0px";          // vertical canvas padding
00255   env (CANVAS_BAR_WIDTH)      = "1em";          // width of scroll bars
00256   env (CANVAS_BAR_PADDING)    = "0.25em";       // distance of scrollbars
00257   env (CANVAS_BAR_COLOR)      = "grey";         // color of bar
00258   env (ORNAMENT_SHAPE)        = "rectangular";  // shape of the ornament
00259   env (ORNAMENT_BORDER)       = "1ln";          // border width
00260   env (ORNAMENT_HPADDING)     = "0px";          // horizontal padding of body
00261   env (ORNAMENT_VPADDING)     = "0px";          // vertical padding of body
00262   env (ORNAMENT_COLOR)        = "light grey";   // background color
00263   env (ORNAMENT_SUNNY_COLOR)  = "white";        // sunny color
00264   env (ORNAMENT_SHADOW_COLOR) = "dark grey";    // shadow color
00265 
00266   /* hiding and showing content */
00267   env ("shown")= identity_m;
00268   env ("ignore")=
00269     tree (MACRO, "body", tree (HIDDEN, tree (ARG, "body")));
00270 
00271   /* linking macros */
00272   tree src_id (ID, tree (HARD_ID, tree (ARG, "body")));
00273   tree ref_id (ID, tree (HARD_ID, tree (ARG, "Id")));
00274   tree dest_url (URL, tree (ARG, "destination"));
00275   tree dest_script (SCRIPT, tree (ARG, "destination"), tree (ARG, "where"));
00276   tree dest_ref (URL, tree (MERGE, "#", tree (ARG, "Id")));
00277   tree anchor (ID, tree (MERGE, "#", tree (ARG, "Id")));
00278   tree ln1 (LINK, "hyperlink", copy (src_id), copy (dest_url));
00279   tree ln2 (LINK, "action", copy (src_id), copy (dest_script));
00280   tree ln3 (LINK, "hyperlink", copy (ref_id), copy (dest_ref));
00281   tree ln4 (LINK, "anchor", anchor);
00282   tree labflag (FLAG, tree (ARG, "Id"), "blue", "Id");
00283   tree labtxt (SET_BINDING, tree (ARG, "Id"), tree (VALUE, THE_LABEL));
00284   tree merged (MERGE, tree (VALUE, THE_TAGS), tuple (tree (ARG, "Id")));
00285   tree tagflag (FLAG, tree (ARG, "Id"), "blue", "Id");
00286   tree reftxt (GET_BINDING, tree (ARG, "Id"));
00287   tree preftxt (GET_BINDING, tree (ARG, "Id"), "1");
00288   env ("hlink")= tree (MACRO, "body", "destination",
00289                      tree (LOCUS, copy (src_id), ln1,
00290                              tree (ARG, "body")));
00291   env ("action")= tree (MACRO, "body", "destination", "where",
00292                      tree (LOCUS, copy (src_id), ln2,
00293                               tree (ARG, "body")));
00294   env ("label")= tree (MACRO, "Id", 
00295                      tree (LOCUS, copy (ref_id), ln4, tree (CONCAT, labflag, labtxt)));
00296   env ("tag")= tree (MACRO, "Id", "body",
00297                    tree (WITH, "the-tags", merged,
00298                         tree (SURROUND, tagflag, "",
00299                                  tree (ARG, "body"))));
00300   env ("reference")= tree (MACRO, "Id",
00301                         tree (LOCUS, copy (ref_id), ln3, reftxt));
00302   env ("pageref")= tree (MACRO, "Id",
00303                       tree (LOCUS, copy (ref_id), copy (ln3), preftxt));
00304 
00305   /* further standard macros */
00306   env ("error")=
00307     tree (MACRO, "message",
00308           tree (REWRITE_INACTIVE, tree (ARG, "message"), "error"));
00309   env ("style-only")=
00310     tree (MACRO, "body", tree (ARG, "body"));
00311   env ("style-only*")=
00312     tree (MACRO, "body", tree (ARG, "body"));
00313   env ("active")=
00314     tree (MACRO, "body", tree (ARG, "body"));
00315   env ("active*")=
00316     tree (MACRO, "body", tree (ARG, "body"));
00317   env ("inactive")=
00318     tree (MACRO, "body",
00319           tree (REWRITE_INACTIVE, tree (ARG, "body"), "once"));
00320   env ("inactive*")=
00321     tree (MACRO, "body",
00322           tree (REWRITE_INACTIVE, tree (ARG, "body"), "recurse"));
00323   env ("right-flush")=
00324     tree (MACRO, tree (HTAB, "0fn", "first"));
00325   env ("indent*")=
00326     tree (MACRO, "body",
00327          tree (WITH, PAR_LEFT, tree (PLUS, tree (VALUE, PAR_LEFT), "1.5fn"),
00328               tree (ARG, "body")));
00329   env ("indent")=
00330     tree (MACRO, "body",
00331          tree (SURROUND, "", compound ("right-flush"),
00332               compound ("indent*", tree (ARG, "body"))));
00333   env ("math")=
00334     tree (MACRO, "body", tree (WITH, MODE, "math", tree (ARG, "body")));
00335   env ("text")=
00336     tree (MACRO, "body", tree (WITH, MODE, "text", tree (ARG, "body")));
00337   env ("pre-edit")=
00338     tree (MACRO, "body", tree (WITH, COLOR, "#4040c0", tree (ARG, "body")));
00339   env ("mutator")=
00340     tree (MACRO, "body", "y", tree (ARG, "body"));
00341 
00342   /* syntactic highlighting */
00343   env ("src-regular")=
00344     tree (MACRO, "body", tree (WITH, COLOR, "black", tree (ARG, "body")));
00345   env ("src-macro")=
00346     tree (MACRO, "body", tree (WITH, MODE, "src", COLOR, "blue",
00347                                FONT_FAMILY, "ss", tree (ARG, "body")));
00348   env ("src-var")=
00349     tree (MACRO, "body", tree (WITH, MODE, "src", COLOR, "dark green",
00350                                FONT_SHAPE, "italic", tree (ARG, "body")));
00351   env ("src-arg")=
00352     tree (MACRO, "body", tree (WITH, MODE, "src", COLOR, "brown",
00353                                FONT_SHAPE, "italic", tree (ARG, "body")));
00354   env ("src-tt")=
00355     tree (MACRO, "body", tree (WITH, MODE, "src", COLOR, "#228",
00356                                FONT_FAMILY, "tt", tree (ARG, "body")));
00357   env ("src-numeric")=
00358     tree (MACRO, "body", tree (WITH, MODE, "src", COLOR, "#848",
00359                                tree (ARG, "body")));
00360   env ("src-textual")=
00361     tree (MACRO, "body", tree (WITH, MODE, "src", COLOR, "black",
00362                                tree (ARG, "body")));
00363   env ("src-length")=
00364     tree (MACRO, "body", tree (WITH, MODE, "src", COLOR, "#288",
00365                                tree (ARG, "body")));
00366   env ("src-unknown")=
00367     tree (MACRO, "body", tree (WITH, COLOR, "#C68", tree (ARG, "body")));
00368   env ("src-error")=
00369     tree (MACRO, "body", tree (WITH, COLOR, "red", tree (ARG, "body")));
00370 
00371   /* for correct importation of style files and packages */
00372   env ("src-title")= identity_m;
00373   env ("src-style-file")=
00374     tree (MACRO, "style", "version",
00375          tree (ASSIGN,
00376               tree (MERGE, tree (ARG, "style"), "-style"),
00377               tree (ARG, "version")));
00378   env ("src-package")=
00379     tree (MACRO, "package", "version",
00380          tree (CONCAT,
00381               tree (ASSIGN,
00382                     tree (MERGE, tree (ARG, "package"), "-package"),
00383                     tree (ARG, "version")),
00384               tree (ASSIGN,
00385                     tree (MERGE, tree (ARG, "package"), "-dtd"),
00386                     tree (ARG, "version"))));
00387   env ("src-package-dtd")=
00388     tree (MACRO, "package", "version", "drd", "drd-version",
00389          tree (CONCAT,
00390               tree (ASSIGN,
00391                     tree (MERGE, tree (ARG, "package"), "-package"),
00392                     tree (ARG, "version")),
00393               tree (ASSIGN,
00394                     tree (MERGE, tree (ARG, "drd"), "-dtd"),
00395                     tree (ARG, "drd-version"))));
00396 }