summaryrefslogtreecommitdiff
path: root/doc/context/sources/general/manuals/metafun/metafun-syntax.tex
diff options
context:
space:
mode:
Diffstat (limited to 'doc/context/sources/general/manuals/metafun/metafun-syntax.tex')
-rw-r--r--doc/context/sources/general/manuals/metafun/metafun-syntax.tex1130
1 files changed, 1130 insertions, 0 deletions
diff --git a/doc/context/sources/general/manuals/metafun/metafun-syntax.tex b/doc/context/sources/general/manuals/metafun/metafun-syntax.tex
new file mode 100644
index 000000000..9407b1dd0
--- /dev/null
+++ b/doc/context/sources/general/manuals/metafun/metafun-syntax.tex
@@ -0,0 +1,1130 @@
+% language=uk
+%
+% copyright=pragma-ade readme=readme.pdf licence=cc-by-nc-sa
+
+% eoclip: no postscript possible yet
+%
+% mpprocset mpxbreak
+
+% path expression -> path
+
+% listsize
+% copylist
+% sortlist
+% shapedlist
+% listtocurves
+% listtolines
+
+\startcomponent metafun-syntax
+
+\environment metafun-environment
+
+\startchapter[title={\METAPOST\ syntax}]
+
+\index{syntax}
+\index{language}
+
+\startintro
+
+In the \METAFONT\ book as well as the \METAPOST\ manual, you can find the exact
+specification of the language. Below you find the full \METAPOST\ syntax, to
+which we add the basic \METAFUN\ extensions. If this page looks too cryptic, you
+can safely skip to the next chapter. We don't distinguish between primitives and
+functionality defined in the \METAPOST\ format, simply because the core is kept
+small and a macro package is supposed to extend that core.
+
+\stopintro
+
+% \startsection[title={Syntax diagrams}]
+
+The following syntax diagrams are derived from the diagrams in the \METAPOST\
+manual. The \mathematics {\rightarrow} represents \quote {means} and the
+\mathematics {\vert} symbol stands for \quote {or}.
+
+The diagrams describe the hard coded \METAPOST\ syntax as well as most of the
+macros and variables defined in the plain \METAPOST\ format that belongs to the
+core of the system. They also include most of the fundamental \METAFUN\ commands.
+We have omitted the \METAPOST\ and \METAFONT\ commands that make no sense any
+more or are irrelevant for common usage. Specific \METAFUN\ modules are not
+included here, only general tools, text helpers and extensions to the built||in
+capabilities like transparency. If you feel that something is missing that should
+be specified here, just let me know.
+
+\start \switchtobodyfont[8pt] % small]
+
+\StartSyntax
+\S{atom}
+ \M \S{variable} \S{argument}
+ \O \S{number or fraction}
+ \O \S{internal variable}
+ \O \( \S{expression} \)
+ \O \L{begingroup} \S{statement list} \S{expression} \L{endgroup}
+ \O \S{nullary op}
+ \O \L{btex} \S{typesetting command} \L{etex}
+ % \O \L{verbatimtex} \S{typesetting command} \L{etex}
+ \O \S{pseudo function}
+\StopSyntax
+
+\StartSyntax
+\S{primary}
+ \M \S{atom}
+ \O \( \S{numeric expression} \L{,} \S{numeric expression} \)
+ \O \( \S{numeric expression} \L{,} \S{numeric expression} \L{,} \S{numeric expression} \)
+ \O \( \S{numeric expression} \L{,} \S{numeric expression} \L{,} \S{numeric expression} \L{,} \S{numeric expression} \)
+ \O \S{of operator} \S{expression} \L{of} \S{primary}
+ \O \S{numeric expression} \S{expression} \FL{along} \S{path expression}
+ \O \S{numeric expression} \S{expression} \FL{on} \S{path expression}
+ \O \S{unary op} \S{primary}
+ \O \L{str} \S{suffix}
+ \O \L{z} \S{suffix}
+ \O \S{numeric atom} \[ \S{expression} \L{,} \S{expression} \]
+ \O \S{scalar multiplication op} \S{primary}
+ \O \S{color expression} \FL{shadedinto} \S{color expression}
+ \O \S{picture expression} \FL{asgroup} \S{string expression}
+ \O \S{picture expression} \FL{onlayer} \S{string expression}
+\StopSyntax
+
+\StartSyntax
+\S{secondary}
+ \M \S{primary}
+ \O \S{secondary} \S{primary binop} \S{primary}
+ \O \S{secondary} \S{transformer}
+\StopSyntax
+
+\StartSyntax
+\S{tertiary}
+ \M \S{secondary}
+ \O \S{tertiary} \S{secondary binop} \S{secondary}
+\StopSyntax
+
+\StartSyntax
+\S{subexpression}
+ \M \S{tertiary}
+ \O \S{path expression} \S{path join} \S{path knot}
+\StopSyntax
+
+\StartSyntax
+\S{expression}
+ \M \S{subexpression}
+ \O \S{expression} \S{tertiary binop} \S{tertiary}
+ \O \S{path subexpression} \S{direction specifier}
+ \O \S{path subexpression} \S{path join} \L{cycle}
+\StopSyntax
+
+\StartSyntax
+\S{path knot}
+ \M \S{tertiary}
+\StopSyntax
+
+\StartSyntax
+\S{path join}
+ \M \L{--}
+ \O \S{direction specifier} \S{basic path join} \S{direction specifier}
+\StopSyntax
+
+\StartSyntax
+\S {direction specifier}
+ \M \S{empty}
+ \O \{ \L{curl} \S{numeric expression} \}
+ \O \{ \S{pair expression} \}
+ \O \{ \S{numeric expression} \L{,} \S{numeric expression} \}
+\StopSyntax
+
+\StartSyntax
+\S{basic path join}
+ \M \L{..}
+ \O \L{...}
+ \O \L{..} \S{tension} \L{..}
+ %O \L{..} \S{tension} \L{..} % check what got lost here
+ \O \L{..} \S{controls} \L{..}
+\StopSyntax
+
+\StartSyntax % atleast added
+\S{tension}
+ \M \L{tension} \S{numeric primary}
+ \O \L{tension} \L{atleast} \S{numeric primary}
+ \O \L{tension} \S{numeric primary} \L{and} \S{numeric primary}
+\StopSyntax
+
+\StartSyntax
+\S{controls}
+ \M controls \S{pair primary}
+ \O controls \S{pair primary} \L{and} \S{pair primary}
+\StopSyntax
+
+\StartSyntax
+\S{argument}
+ \M \S{symbolic token}
+\StopSyntax
+
+\StartSyntax
+\S{number or fraction}
+ \M \S{number} \L{/} \S{number}
+ \O \S{number} \Q{not followed by} \L{/} \S{number}
+\StopSyntax
+
+\StartSyntax
+\S{scalar multiplication op}
+ \M \L{+} \O \L{-}
+ \O \S{number or fraction} \Q{not followed by} \S{add op} \S{number}
+\StopSyntax
+
+\StartSyntax
+\S{transformer}
+ \M \L {rotated} \S {numeric primary}
+ \O \L {scaled} \S {numeric primary}
+ \O \L {shifted} \S {pair primary}
+ \O \L {slanted} \S {numeric primary}
+ \O \L {transformed} \S {transform primary}
+ \O \L {xscaled} \S {numeric primary} \O \L {yscaled} \S {numeric primary} \O \FL{xyscaled} \S {numeric or pair primary}
+ \O \L {zscaled} \S {pair primary}
+ \O \L {reflectedabout} \L \( \S{pair expression} \L{,} \S{pair expression} \)
+ \O \L {rotatedaround} \L \( \S{pair expression} \L{,} \S{numeric expression} \)
+ \O \FL{xsized} \S {numeric primary} \O \FL{ysized} \S {numeric primary} \O \FL{xysized} \S {numeric or pair primary}
+ \O \FL{blownup} \S {numeric or pair primary}
+ \O \FL{enlarged} \S {numeric or pair primary}
+ \O \FL{xstretched} \S {numeric primary} \O \FL{ystretched} \S{numeric primary} \O \FL{stretched} \S{numeric or pair primary}
+ \O \FL{shortened} \S {numeric or pair primary}
+ \O \FL{enlonged} \S {numeric or pair primary}
+ \O \FL{crossed} \S {numeric primary}
+ \O \FL{paralelled} \S {numeric primary}
+ \O \FL{curved} \S {numeric primary}
+ \O \FL{laddered}
+ \O \FL{leftenlarged} \S{numeric primary} \O \FL{llenlarged} \S{numeric primary} \O \FL{llmoved} \S{numeric primary}
+ \O \FL{rightenlarged} \S{numeric primary} \O \FL{lrenlarged} \S{numeric primary} \O \FL{lrmoved} \S{numeric primary}
+ \O \FL{topenlarged} \S{numeric primary} \O \FL{urenlarged} \S{numeric primary} \O \FL{urmoved} \S{numeric primary}
+ \O \FL{bottomenlarged} \S{numeric primary} \O \FL{ulenlarged} \S{numeric primary} \O \FL{ulmoved} \S{numeric primary}
+ \O \FL{randomized} \S{numeric or pair or color primary}
+ \O \FL{randomizedcontrols} \S{numeric or pair}
+ \O \FL{snapped} \S{numeric or pair primary}
+ \O \FL{cornered} \S{numeric or pair}
+ \O \FL{peepholed} \S{path expression}
+ \O \FL{smoothed} \S{numeric or pair}
+ \O \FL{squeezed} \S{numeric or pair primary}
+ \O \FL{superellipsed} \S{numeric primary}
+ \O \FL{randomshifted} \S{numeric or pair primary}
+ \O \FL{uncolored} \S{color primary}
+ \O \FL{softened} \S{numeric or color primary}
+ \O \FL{asgroup} \S{string primary}
+ \O \L {gobbled} \S{primary}
+ %
+ \O \FL {insideof} \S{path expression}
+ \O \FL {outsideof} \S{path expression}
+ \O \FL {crossinunder} \S{path expression}
+\StopSyntax
+
+\StartSyntax
+\S{numeric or pair primary}
+ \M \S{numeric primary}
+ \O \S{pair primary}
+\StopSyntax
+
+\StartSyntax
+\S{numeric or pair or color primary}
+ \M \S{numeric primary}
+ \O \S{pair primary}
+ \O \S{color primary}
+\StopSyntax
+
+\StartSyntax
+\S{numeric or color primary}
+ \M \S{numeric primary}
+ \O \S{color primary}
+\StopSyntax
+
+\StartSyntax
+\S{nullary op}
+ \M \L{false} \O \L{true}
+ \O \L{normaldeviate}
+ \O \L{nullpen} \O \L{nullpicture} \O \L{pencircle}%
+ \O \L{whatever}
+\StopSyntax
+
+\StartSyntax
+\S{unary op}
+ \M \S{type}
+ \O \L {ASCII}
+ \O \FL{asin} \O \FL{asinh} \O \FL{acos} \O \FL{acosh} \O \FL{atan} \O \L {cosd} \O \FL{cos} \O \FL{cosh} \O \FL{cot} \O \FL{cotd} \O \L {sind} \O \FL{sin} \O \FL{sinh} \O \FL{tand} \O \FL{tan}
+ \O \L {inverse} \O \FL{inv} \O \FL{invcos} \O \FL{invsin} \O \FL{invtan}
+ \O \FL{sqr} \O \L {sqrt} \O \L {pow} \O \FL{exp} \O \L {mexp} \O \L {mlog} \O \FL{ln} \O \FL{log} \O \L {uniformdeviate}
+ \O \L {abs} \O \L {round} \O \L {odd} \O \L {ceiling} \O \L {floor}
+ \O \L {dir} \O \L {angle} \O \L {length} \O \L {arclength}
+ \O \L {bbox} \O \FL{bbwidth} \O \FL{bbheight}
+ \O \L {bot} \O \L {lft} \O \L {rt} \O \L {top} \O \L {center}
+ \O \FL{colordecimals} \O \L {decimal} \O \FL{ddecimal} \O \FL{dddecimal} \O \FL{ddddecimal} \O \FL{condition} \O \FL{tostring}
+ \O \FL{boundingbox} \O \FL{outerboundingbox} \O \FL{innerboundingbox} \O \L {bbox}
+ \O \L {colorpart} \O {fontpart} \O \L {pathpart} \O \L {penpart} \O \L {textpart} \O \L {dashpart}
+ \O \L {redpart} \O \L {greenpart} \O \L {bluepart} \O \L {greypart} \O \L {graypart}
+ \O \L {cyanpart} \O \L {magentapart} \O \L {yellowpart} \O \L {blackpart}
+ \O \L {postscriptpart} \O \L {prescriptpart}
+ \O \L {clipped} \O \L {bounded} \O \L {stroked} \O \L {filled} \O \L {textual}
+ \O \FL{punked} \O \L{paralleled}
+ \O \FL{leftboundary} \O \FL{rightboundary} \O \FL{topboundary} \O \FL{bottomboundary}
+ \O \L {xpart} \O \L {xxpart} \O \L {xypart} \O \L {ypart} \O \L {yxpart} \O \L {yypart}
+ \O \L {oct} \O \L {hex}
+ \O \L {colortype}
+ \O \FL{grayed} \O \FL{greyed}
+ \O \L {llcorner} \O \L {lrcorner} \O \L {ulcorner} \O \L {urcorner}
+ \O \L {not} \O \L {known} \O \L {unknown}
+ \O \FL{blackcolor} \O \FL{whitecolor} \O \L {colormodel}
+ \O \L {char} \O \L {fontsize}
+ \O \L {cycle} \O \L {reverse} \O \L {counterclockwise}
+ \O \L {makepath} \O \L {makepen}
+ \O \L {unitvector}
+ \O \L {turningnumber}
+ \O \L {circularpath} \O \L {squarepath} \O \L {linearpath}
+ % maybe pseudo functions:
+ \O \FL{area} \O \FL{inverted} \O \FL{simplified} \O \FL{unspiked}
+\StopSyntax
+
+\StartSyntax
+\S{type}
+ \M \L{boolean} \O \L{numeric} \O \L{pair} \O \L{path}
+ \O \L{pen} \O \L{picture} \O \L{string} \O \L{transform}
+ \O \L{color} \O \L{cmykcolor} \O \FL {greycolor} \FL {graycolor}\O \L{rgbcolor}
+ \O \FL{property}\O \FL{transparency}
+ \O \L{outer} \O \L{inner}
+\StopSyntax
+
+\StartSyntax
+\S{primary binop}
+ \M \L{*} \O \L{/} \O \L{**} \O \L{and}
+ \O \L{dotprod} \O \L{div} \O \L{infont} \O \L{mod}
+\StopSyntax
+
+\StartSyntax
+\S{secondary binop}
+ \M \L{+} \O \L{-} \O \L{++} \O \L{+-+} \O \L{or}
+ \O \L{intersectionpoint} \O \L{intersectiontimes}
+\StopSyntax
+
+\StartSyntax
+\S{tertiary binop}
+ \M \L{&} \O \L{<} \O \L{<=} \O \L{<>} \O \L{=} \O \L{>} \O \L{>=}
+ \O \L{cutafter} \O \L{cutbefore} \O \FL{cutends}
+ \O \L{softjoin}
+\StopSyntax
+
+\StartSyntax
+\S{of operator}
+ \M \L{arctime} \O \L{direction} \O \L{directiontime} \O \L{directionpoint}%
+ \O \L{penoffset} \O \L{point}
+ \O \L{postcontrol} \O \L{precontrol} \O \L{subpath} \O \L{substring}
+ \O \L{takepower}
+\StopSyntax
+
+\StartSyntax
+\S{variable}
+ \M \S{predefined numeric variable}
+ \O \S{predefined path variable}
+ \O \S{predefined picture variable}
+ \O \S{predefined transform variable}
+ \O \S{predefined pair variable}
+ \O \S{predefined pen variable}
+ \O \S{predefined string variable}
+ \O \S{predefined dashpattern}
+ \O \S{predefined rgbcolor variable}
+ \O \S{predefined macro}
+ \O \S{tag} \S{suffix}
+\StopSyntax
+
+\StartSyntax
+\S{predefined numeric variable}
+ \M \FL{nothing yet}
+\StopSyntax
+
+\StartSyntax
+\S{predefined picture variable}
+ \M \FL{blankpicture}
+ \O \L{currentpicture}
+\StopSyntax
+
+\StartSyntax
+\S{predefined transform variable}
+ \M \L{identity} \O \L{currenttransform}
+\StopSyntax
+
+\StartSyntax
+\S{predefined path variable}
+ \M \FL{originpath}
+ \O \FL{fullcircle} \O \FL{fullsquare} \O \FL{fulldiamond} \O \FL{fulltriangle}
+ \O \FL{unitcircle} \O \FL{unitsquare} \O \FL{unitdiamond} \O \FL{unittriangle}
+ \O \FL{halfcircle} \O \FL{quartercircle}
+ \O \FL{llcircle} \O \FL{lrcircle} \O \FL{urcircle} \O \FL{ulcircle}
+ \O \FL{bcircle} \O \FL{tcircle} \O \FL{lcircle} \O \FL{rcircle}
+ \O \FL{triangle}
+ \O \FL{righttriangle} \O \FL{uptriangle} \O \FL{lefttriangle} \O \FL{downtriangle}
+ \O \FL{lltriangle} \O \FL{lrtriangle} \O \FL{urtriangle} \O \FL{ultriangle}
+ \O \L{cuttings}
+\StopSyntax
+
+\StartSyntax
+\S{predefined pair variable}
+ \M \L{right} \O \L{up} \O \L{left} \O \L{down}
+ \M \L{shadedright} \O \L{shadedup} \O \L{shadedleft} \O \L{shadeddown}
+\StopSyntax
+
+\StartSyntax
+\S{predefined pen variable}
+ \M \FL{pensquare} \O \FL{penrazor} \O \FL{penspec}
+ \O \L{currentpen}
+\StopSyntax
+
+\StartSyntax
+\S{predefined string variable}
+ \M \FL{EOF}
+ \O \FL{CRLF} \O \FL{crlf}
+ \O \FL{DQUOTE} \O \FL{dquote} \O \L{ditto}
+ \O \FL{SPACE} \O \FL{space}
+ \O \FL{PERCENT} \O \FL{percent}
+ \O \L{defaultfont}
+ \O \L{extra_beginfig} \O \L {extra_endfig}
+ \O \FL{pathconnectors}
+\StopSyntax
+
+\StartSyntax
+\S{predefined dashpattern}
+ \M \L{evenly} \O \FL{oddly} \O \L{withdots}
+\StopSyntax
+
+\StartSyntax
+\S{predefined rgbcolor variable}
+ \M \L{red} \O \L{green} \O \L{blue} \O \L{white}
+ \O \L{cyan} \O \L{magenta} \O \L{yellow} \O \L{black}
+ \O \L{background}
+ \O \FL{basiccolors}
+\StopSyntax
+
+\StartSyntax
+\S{predefined macro}
+ \M \FL{shipit} \O \FL{bye}
+ \O \FL{resetdrawoptions}
+ \O \FL{visualizepaths} \O \FL{naturalizepaths}
+\StopSyntax
+
+\StartSyntax
+\S{suffix}
+ \M \S{empty}
+ \O \S{suffix} \S{subscript}
+ \O \S{suffix} \S{tag}
+ \O \S{suffix parameter}
+\StopSyntax
+
+\StartSyntax
+\S{subscript}
+ \M \S{number}
+ \O \[ \S{numeric expression} \]
+\StopSyntax
+
+\StartSyntax
+\S{internal variable}
+ \M \L{ahangle} \O \L{ahlength}
+ \O \L{bboxmargin} \O \L{labeloffset}
+ \O \L{charcode}
+ \O \L{defaultcolormodel} \O \L{defaultpen} \O \L{defaultscale}
+ \O \L{linecap} \O \L{linejoin} \O \L{miterlimit}
+ \O \L{outputformat} \O \L{outputtemplate} \O \O \L{prologues}
+ \O \L{showstopping} \L{pausing}
+ \O \L{tracingoutput} \O \L{tracingcapsules} \O \L{tracingchoices} \O \L{tracingcommands} \O \L{tracingequations}
+ \O \L{tracinglostchars} \O \L{tracingmacros} \O \L{tracingonline} \O \L{tracingrestores} \O \L{tracingspecs}
+ \O \L{tracingstats} \O \L{tracingtitles}
+ \O \L{truecorners} \O \L{warningcheck}
+ \O \L{dotlabeldiam}
+ \O \L{day} \O \L{month} \O \L{year} \O \L{hour} \O \L{minute} \O \L{time}
+ \O \L{mm} \O \L{pt} \O \L{dd} \O \L{bp} \O \L{cm} \O \L{pc} \O \L{cc} \O \L{in}
+ \O \L{butt} \O \L{rounded} \O \L{squared} \O \L{mitered} \O \L{beveled}
+ \O \FL{pi} \O \FL{radian} \O \FL{eps} \O \FL{epsilon}
+ \O \FL{nocolormodel} \O \FL{greycolormodel} \O \FL{graycolormodel} \O \FL{rgbcolormodel} \O \FL{cmykcolormodel}
+ % \O \FL{shadefactor}
+ \O \FL{textextoffset}
+ \O \FL{maxdimensions}
+ \O \L{infinity}
+ \O \FL{charscale}
+ \O \FL{metapostversion}
+ \O \FL{normaltransparent} \O \FL{multiplytransparent} \O \FL{screentransparent} \O \FL{overlaytransparent}
+ \O \FL{softlighttransparent} \O \FL{hardlighttransparent} \O \FL{colordodgetransparent} \O \FL{colorburntransparent}
+ \O \FL{darkentransparent} \O \FL{lightentransparent} \O \FL{differencetransparent} \O \FL{exclusiontransparent}
+ \O \FL{huetransparent} \O \FL{saturationtransparent} \O \FL{colortransparent} \O \FL{luminositytransparent}
+ \O \S{symbolic token defined by \L{newinternal}}
+ \O \L{ahangle} \O \L{ahlength}
+ \O \L{bboxmargin}
+ \O \L{pen_bot} \O \L{pen_top} \O \L{pen_lft} \O \L{pen_rt}
+ \O \L{join_radius}
+ \O \L{crossingscale} \O \L{crossingoption}
+\StopSyntax
+
+\StartSyntax
+\S{pseudo function}
+ \M \L {min} \( \S{expression list} \)%
+ \O \L {max} \( \S{expression list} \)
+ \O \L {incr} \( \S{numeric variable} \)%
+ \O \L {decr} \( \S{numeric variable} \)
+ \O \L {dashpattern} \( \S{on/off list} \)
+ \O \L {interpath} \( \S{numeric expression} \L{,} \S{path expression} \L{,} \S{path expression} \)
+ \O \FL{interpolated} \( \S{numeric expression} \L{,} \S{path expression} \L{,} \S{path expression} \)
+ \O \L {buildcycle} \( \S{path expression list} \)
+ \O \L {thelabel} \S{label suffix} \( \S{expression} \L{,} \S{pair expression} \)
+ \O \FL{thefreelabel} \( \S{expression}\L{,} \S{pair expression} \L{,} \S{pair expression} \)
+ \O \FL{anglebetween} \( \S{path expression} \L{,} \S{path expression} \L{,} \S{expression} \)
+ \O \L {flex} \( \S{text} \)
+ \O \L {hide} \( \S{text} \)
+ \O \L {gobble} \S{primary}
+ \O \L {clearit}
+ \O \L {clearpen}
+ \O \L {clearxy}
+ \O \FL{pointarrow} \( \S{path expression} \L{,} \S{numeric or pair primary} \L{,} \S{numeric expression} \)
+ \O \FL{centerarrow} \( \S{path expression} \L{,} \S{numeric or pair primary} \L{,} \S{numeric expression} \)
+ \O \FL{leftarrow} \( \S{path expression} \L{,} \S{numeric or pair primary} \L{,} \S{numeric expression} \)
+ \O \FL{rightarrow} \( \S{path expression} \L{,} \S{numeric or pair primary} \L{,} \S{numeric expression} \)
+ \O \FL{paired} \( \S{numeric or pair} \)%
+ \O \FL{tripled} \( \S{numeric or color} \)
+ \O \FL{remappedcolor} \( \S{color expression} \)
+ \O \FL{superellipse} \( \S{numeric primary} \L{,} \S{numeric primary} \L{,} \S{numeric primary} \L{,} \L{numeric primary} \L{,} \N \L{numeric primary} \)
+ \O \FL{roundedsquare} \( \S{numeric primary} \L{,} \S{numeric primary} \L{,} \S{numeric primary} \)
+ \O \FL{tensecircle} \( \S{numeric primary} \L{,} \S{numeric primary} \L{,} \S{numeric primary} \)
+ \O \FL{tensepath} \( \S{path primary} \)
+ \O \FL{(constructed)function}%
+ \( \S{string expression} \)%
+ \( \S{string primary} \L{,} \S{string primary} \L{,} \S{numeric primary} \L{,}
+ \N \S{numeric primary} \L{,} \S{numeric primary} \)
+ \O \FL{straightfunction} \( \S{string primary} \L{,} \S{string primary} \L{,} \S{numeric primary} \L{,} \S{numeric primary} \L{,}
+ \N \S{numeric primary} \)
+ \O \FL{curvedfunction} \( \S{string primary} \L{,} \S{string primary} \L{,} \S{numeric primary} \L{,} \S{numeric primary} \L{,}
+ \N \S{numeric primary} \)
+ %\O \FL{punkedfunction} \( \S{string primary} \L{,} \S{string primary} \L{,} \S{numeric primary} \L{,} \S{numeric primary} \L{,} \S{numeric primary} \)
+ %\O \FL{tightfunction} \( \S{string primary} \L{,} \S{string primary} \L{,} \S{numeric primary} \L{,} \S{numeric primary} \L{,} \S{numeric primary} \)
+ \O \FL{constructedpairs} \( \S{string expression} \) \( \S{pair array} \)
+ \O \FL{straightpairs} \( \S{pair array} \)
+ \O \FL{curvedpairs} \( \S{pair array} \)
+ %\O \FL{punkedpairs} \( \S{pair array} \)
+ %\O \FL{tightpairs} \( \S{pair array} \)
+ \O \FL{constructedpath} \( \S{string expression} \) \( \S{text} \)
+ \O \FL{straightpath} \( \S{text} \)
+ \O \FL{curvedpath} \( \S{text} \)
+ %\O \FL{punkedpath} \( \S{text} \)
+ %\O \FL{tightpath} \( \S{text} \)
+ \O \FL{epsed} \S{numeric primary}
+ \O \FL{arrowhead} \S{path primary}
+ \O \FL{arrowpath} \S{path primary}
+ \O \FL{infinite} \S{path primary}
+ %
+ \O \FL{tolist} \( \S{pair array} \) \( \S{text} \)
+ \O \FL{topath} \( \S{pair array} \) \( \S{text} \)
+ \O \FL{tocycle} \( \S{pair array} \) \( \S{text} \)
+ \O \FL{pencilled} \( \S{path expression} \) \( \S{pen expression} \)
+\StopSyntax
+
+\StartSyntax
+\S{color expression}
+ \M \S{basic color expression}
+ \O \S{string primary}
+ \O \FL{namedcolor} \( \S{string primary} \)
+ \O \FL{spotcolor} \( \S{string primary} \L{,} \S{basic color expression} \)
+ \O \FL{multitonecolor} \( \S{string primary} \L{,} \S{basic color expression list} \)
+\StopSyntax
+
+\StartSyntax
+\S{basic color expression}
+ \M \S{rgb color expression}
+ \O \S{cmyk color expression}
+ \O \S{gray color expression}
+\StopSyntax
+
+\StartSyntax
+\S{basic color expression list}
+ \M \S{basic color expression}
+ \O \S{basic color expression list} \L{,} \S{basic color expression}
+\StopSyntax
+
+\StartSyntax
+\S{rgb color expression}
+ \M \S\( \S{numeric primary} \L{,} \S{numeric primary} \L{,} \S{numeric primary} \S\)
+\StopSyntax
+
+\StartSyntax
+\S{cmyk color expression}
+ \M \S\( \S{numeric primary} \L{,} \S{numeric primary} \L{,} \S{numeric primary} \L{,} \S{numeric primary} \S\)
+\StopSyntax
+
+\StartSyntax
+\S{gray color expression}
+ \M \S\( \S{numeric primary} \S\)
+ \O \S{numeric primary}
+\StopSyntax
+
+\StartSyntax
+\S{path expression list}
+ \M \S{path expression}
+ \O \S{path expression list} \L{,} \S{path expression}
+\StopSyntax
+
+\StartSyntax
+\S{on/off list}
+ \M \S{on/off list} \S{on/off clause}
+ \O \S{on/off clause}
+\StopSyntax
+
+\StartSyntax
+\S{on/off clause}
+ \M \L{on} \S{numeric tertiary}
+ \O \L{off} \S{numeric tertiary}
+\StopSyntax
+
+\StartSyntax
+\S{boolean expression} \M \S{expression}
+\S{cmyk expression} \M \S{expression}
+\S{color expression} \M \S{expression}
+\S{numeric atom} \M \S{atom}
+\S{numeric expression} \M \S{expression}
+\S{numeric primary} \M \S{primary}
+\S{numeric tertiary} \M \S{tertiary}
+\S{numeric variable} \M \S{variable} \O \S{internal variable}
+\S{pair expression} \M \S{expression}
+\S{pair primary} \M \S{primary}
+\S{path expression} \M \S{expression}
+\S{path subexpression} \M \S{subexpression}
+\S{pen expression} \M \S{expression}
+\S{picture expression} \M \S{expression}
+\S{picture variable} \M \S{variable}
+\S{rgb expression} \M \S{expression}
+\S{string expression} \M \S{expression}
+\S{suffix parameter} \M \S{parameter}
+\S{transform primary} \M \S{primary}
+\StopSyntax
+
+\StartSyntax
+\S{program}
+ \M \S{statement list} \L{end}
+\StopSyntax
+
+\StartSyntax
+\S{statement list}
+ \M \S{empty}
+ \O \S{statement list} \L{;} \S{statement}
+\StopSyntax
+
+\StartSyntax
+\S{statement}
+ \M \S{empty}
+ \O \S{equation}
+ \O \S{assignment}
+ \O \S{declaration}
+ \O \S{macro definition}
+ \O \S{compound}
+ \O \S{pseudo procedure}
+ \O \S{command}
+\StopSyntax
+
+\StartSyntax
+\S{compound}
+ \M \L{begingroup} \S{statement list} \L{endgroup}
+ \O \L{beginfig} \( \S{numeric expression} \) \L{;} \S{statement list} \S{;} \L{endfig}
+ \O \FL{beginglyph} \( \S{glyph property list} \) \L{;} \S{statement list} \S{;} \L{endglyph}
+ \O \L{image builder} \( \S{statement list} \)
+\StopSyntax
+
+\StartSyntax
+\S{image builder}
+ \M {image} \O \FL {decorated} \O \FL {redecorated} \O \FL {undecorated}
+\StopSyntax
+
+\StartSyntax
+\S{glyph property list}
+ \M \S{numeric expression} \L{,} \S{numeric expression} \L{,} \S{numeric expression} \L{,} \S{numeric expression}
+\StopSyntax
+
+\StartSyntax
+\S{equation}
+ \M \S{expression} \L{=} \S{right-hand side}
+\StopSyntax
+
+\StartSyntax
+\S{assignment}
+ \M \S{variable} \L{:=} \S{right-hand side}
+ \O \S{internal variable} \L{:=} \S{right-hand side}
+\StopSyntax
+
+\StartSyntax
+\S{right-and side}
+ \M \S{expression}
+ \O \S{equation}
+ \O \S{assignment}
+\StopSyntax
+
+\StartSyntax
+\S{declaration}
+ \M \S{type} \S{declaration list}
+\StopSyntax
+
+\StartSyntax
+\S{declaration list}
+ \M \S{generic variable}
+ \O \S{declaration list} \L{,} \S{generic variable}
+\StopSyntax
+
+\StartSyntax
+\S{generic variable}
+ \M \S{Symbolic token} \S{generic suffix}
+\StopSyntax
+
+\StartSyntax
+\S{generic suffix}
+ \M \S{empty}
+ \O \S{generic suffix} \S{tag}
+ \O \S{generic suffix} \L{[]}
+\StopSyntax
+
+\StartSyntax
+\S{macro definition}
+ \M \S{macro heading} \L{=} \S{replacement text} \L{enddef}
+\StopSyntax
+
+\StartSyntax
+\S{macro heading}
+ \M \L{def} \S{Symbolic token} \S{delimited part} \S{undelimited part}
+ \O \L{vardef} \S{generic variable} \S{delimited part} \S{undelimited part}
+ \O \L{vardef} \S{generic variable} \L{@#} \S{delimited part} \S{undelimited part}
+ \O \S{binary def} \S{parameter} \S {symbolic token} \S{parameter}
+\StopSyntax
+
+\StartSyntax
+\S{delimited part}
+ \M \S{empty}
+ \O \S{delimited part} \( \S{parameter type} \S{parameter tokens} \)
+\StopSyntax
+
+\StartSyntax
+\S{parameter type}
+ \M \L{expr}
+ \O \L{suffix}
+ \O \L{text}
+\StopSyntax
+
+\StartSyntax
+\S{parameter tokens}
+ \M \S{parameter}
+ \O \S{parameter tokens} \L{,} \S{parameter}
+\StopSyntax
+
+\StartSyntax
+\S{parameter}
+ \M \S{Symbolic token}
+\StopSyntax
+
+\StartSyntax
+\S{undelimited part}
+ \M \S{empty}
+ \O \S{parameter type} \S{parameter}
+ \O \S{precedence level} \S{parameter}
+ \O \L{expr} \S{parameter} \L{of} \S{parameter}
+\StopSyntax
+
+\StartSyntax
+\S{precedence level}
+ \M \L{primary}
+ \O \L{secondary}
+ \O \L{tertiary}
+\StopSyntax
+
+\StartSyntax
+\S{binary def}
+ \M \S{primarydef}
+ \O \S{secondarydef}
+ \O \S{tertiarydef}
+\StopSyntax
+
+\StartSyntax
+\S{pseudo procedure}
+ \M \L {drawoptions} \( \S{option list} \)
+ \O \L {label} \S{label suffix} \( \S{expression} \L{,} \S{pair expression} \)
+ \O \L {thelabel} \S{label suffix} \( \S{expression} \L{,} \S{pair expression} \)
+ \O \L {dotlabel} \S{label suffix} \( \S{expression} \L{,} \S{pair expression} \)
+ \O \L {makelabel} \S{makelabel}
+ \O \L {labels} \S{label suffix} \( \S{point number list} \)
+ \O \L {dotlabels} \S{label suffix} \( \S{point number list} \)
+ \O \FL{textext} \S{label suffix} \( \S{expression} \)
+ \O \FL{infotext} \S{label suffix} \( \S{expression}, \S{numeric expression} \)
+ \O \FL{thetextext} \S{label suffix} \( \S{expression}, \S{pair expression} \)
+ \O \FL{rawtextext} \( \S{expression} \)
+ \O \FL{verbatim} \S{string expression}
+ \O \FL{freelabel} \( \S{expression} \L{,} \S{pair expression} \L{,} \S{pair expression} \)
+ \O \FL{freedotlabel} \( \S{expression} \L{,} \S{pair expression} \L{,} \S{pair expression} \)
+ \O \FL{remapcolor} \( \S{color expression} \L{,} \S{color expression} \)
+ \O \FL{resetcolormap}
+ \O \FL{recolor} \S{picture expression}
+ \O \FL{bitmapimage} \( \S{numeric primary} \L{,} \S{numeric primary} \L{,} \S{string primary} \)
+ \O \FL{pushboundingbox} \O \FL{popboundingbox}
+ \O \FL{pushcurrentpicture} \O \FL{popcurrentpicture}
+ \O \FL{externalfigure} \S{string expression} \S{transformer}
+ \O \FL{loadfigure} \S{string expression} \L{number} \S{numeric expression} \S{transformer}
+ \O \FL{properties}
+ \O \L {anchored} \S{label suffix} \( \S{expression} \L{,} \S{pair expression} \)
+\StopSyntax
+
+\StartSyntax
+\S{point number list}
+ \M \S{suffix} \O \S{point number list} \L{,} \S{suffix}
+\StopSyntax
+
+\StartSyntax
+\S{label suffix}
+ \M \S{empty}
+ \O \L{lft} \O \L{rt}\O \L{top} \O \L{bot} \O \L{ulft} \O \L{urt}%
+ \O \L{llft} \O \L{lrt} \O \FL{raw} \O \FL{origin}
+\StopSyntax
+
+\StartSyntax
+\S{command}
+ \M \L{clip} \S{picture variable} \L{to} \S{path expression}
+ \O \L{interim} \S{internal variable} \L{:=} \S{right-hand side}
+ \O \L{let} \S{symbolic token} \L{=} \S{symbolic token}
+ \O \L{pickup} \S{expression}
+ \O \L{randomseed} \L{:=} \S{numeric expression}
+ \O \L{save} \S{symbolic token list}
+ \O \L{delimiters} \S{character} \S{character}
+ \O \L{setbounds} \S{picture variable} \L{to} \S{path expression}
+ \O \L{shipout} \S{picture expression}
+ \O \L{special} \S{string expression}
+ \O \L{endinput}
+ \O \L{expandafter}
+ \O \S{addto command}
+ \O \S{drawing command}
+ \O \S{font metric command}
+ \O \S{newinternal command}
+ \O \S{message command}
+ \O \S{mode command}
+ \O \S{show command}
+ \O \S{special command}
+ \O \S{tracing command}
+ \O \S{scantokens} \S{string expression}
+ \O \FL{defineshade} \S{symbolic token} \S{shading expression}
+ \O \L{write} \S{string expression} \L{to} \S{string expression}
+ \O \L{readfrom} \S{string expression}
+ \O \FL{readfile} \S{string expression}
+ \O \L{readstring}
+ \O \L{restoreclipcolor}
+ \O \L{savepen}
+ \O \L{runscript}
+ \O \L{relax}
+\StopSyntax
+
+\StartSyntax
+\S{show command}
+ \M \L{show} \S{expression list}
+ \O \L{showvariable} \S{symbolic token list}
+ \O \L{showtoken} \S{symbolic token list}
+ \O \L{showdependencies}
+\StopSyntax
+
+\StartSyntax
+\S{symbolic token list}
+ \M \S{symbolic token}
+ \O \S{symbolic token} \L{,} \S{symbolic token list}
+\StopSyntax
+
+\StartSyntax
+\S{expression list}
+ \M \S{expression}
+ \O \S{expression list} \L{,} \S{expression}
+\StopSyntax
+
+\StartSyntax
+\S{addto command}
+ \M \L{addto} \S{picture variable} \L{also} \S{picture expression} \S{option list}
+ \O \L{addto} \S{picture variable} \L{contour} \S{path expression} \S{option list}
+ \O \L{addto} \S{picture variable} \L{doublepath} \S{path expression} \S{option list}
+\StopSyntax
+
+\StartSyntax
+\S{option list}
+ \M \S{empty}
+ \O \S{drawing option} \S{option list}
+\StopSyntax
+
+\StartSyntax
+\S{drawing option}
+ \M \L {withcolor} \S{color expression}%
+ \O \FL {withgrey} \S{numeric expression}%
+ \O \FL {withgray} \S{numeric expression}
+ \O \L {withrgbcolor} \S{rgb expression}%
+ \O \L {withcmykcolor} \S{cmyk expression}%
+ \O \L {withgreyscale} \S{numeric expression}
+ \O \L {withoutcolor}
+ \O \L {withprescript} \S{string expression}%
+ \O \L {withpostscript} \S{string expression}
+ \O \L {withpen} \S{pen expression}
+ \O \L {dashed} \S{picture expression}
+ \O \FL{undashed}
+ \O \FL{withshade} \S{numeric expression} \O \FL{shaded} \S{shading expression}
+ \O \FL{withproperties} \S{property primary}
+ \O \FL{withtransparency} \S{pair primary}
+ \O \FL{withlinearshade} \(%
+ \S{path expression} \L{,}%
+ \S{path expression} \L{,}%
+ \S{color expression} \L{,}%
+ \S{color expression} \)
+ \O \FL{withcircularshade} \(%
+ \S{path ex} \L{,}%
+ \S{path ex} \L{,}%
+ \S{numeric ex} \L{,}%
+ \S{numeric ex} \L{,}%
+ \S{color ex} \L{,}%
+ \S{color ex} \)
+ \O \S{shading expression}
+ \O \FL{onlayer} \S{string expression}
+ \O \FL{withmask} \S{string expression}
+\StopSyntax
+
+\StartSyntax
+\S{property expression}
+ \M \( {drawing option} \)
+\StopSyntax
+
+\StartSyntax
+\S{shading expression}
+ \M \FL{withshademethod} \L{string expression}
+ \O \FL{withshadefactor} \L{numeric expression}
+ \O \FL{withshadedomain} \L{pair expression}
+ \O \FL{withshadevector} \L{pair expression}
+ \O \FL{withshaderadius} \L{pair expression}
+ \O \FL{withshadeorigin} \L{pair expression}
+ \O \FL{withshadecolors} \( \S{color expression} \L{,} \S{color expression} \)
+ \O \FL{withshadecenter} \L{pair expression}
+\StopSyntax
+
+\StartSyntax
+\S{drawing command}
+ \M \L{draw} \S{picture expression} \S{option list}
+ \O \S{fill type} \S{path expression} \S{option list}
+\StopSyntax
+
+\StartSyntax
+\S{fill type}
+ \M \L {fill} \O \L{unfill} \O \FL{refill}
+ \O \L {draw} \O \L{undraw} \O \FL{redraw}
+ \O \L {filldraw} \O \FL{drawfill} \O \L{undrawfill} \O \L{unfilldraw}
+ \O \FL{eofill} \O \FL{nofill} \O \FL{fillup}
+ \O \L {drawdot}
+ \O \L {drawarrow} \O \L{drawdblarrow}
+ \O \L {cutdraw}
+ \O \L {visualizer}
+ \O \FL{normaldraw} \O \FL{normalfill}
+\StopSyntax
+
+\StartSyntax
+\S{visualizer}
+ \M \FL{drawboundary} \O \FL{drawboundingbox} \O \FL{drawboundoptions}
+ \O \FL{drawcontrollines} \O \FL{drawcontroloptions} \O \FL{drawcontrolpoints}
+ \O \FL{drawlabeloptions} \O \FL{drawlineoptions} \O \FL{drawoptions}
+ \O \FL{draworigin} \O \FL{draworiginoptions}
+ \O \FL{drawpath} \O \FL{drawpathoptions}
+ \O \FL{drawpoint} \O \FL{drawpointlabels} \O \FL{drawpointoptions}
+ \O \FL{drawpoints} \O \FL{drawwholepath}
+ \O \FL{visualizeddraw} \O \FL{visualizedfill}
+\StopSyntax
+
+\StartSyntax
+\S{newinternal command}
+ \M \L{newinternal} \S{internal type} \S{symbolic token list}
+ \O \S{newinternal} \S{symbolic token list}
+\StopSyntax
+
+\StartSyntax
+\S{message command}
+ \M \L{errhelp} \S{string expression}
+ \O \L{errmessage} \S{string expression}
+ \O \L{filenametemplate} \S{string expression}
+ \O \L{message} \S{string expression}
+\StopSyntax
+
+\StartSyntax
+\S{mode command}
+ \M \L{batchmode}
+ \O \L{nonstopmode}
+ \O \L{scrollmode}
+ \O \L{errorstopmode}
+ \O \L{interact}
+\StopSyntax
+
+\StartSyntax
+\S{special command}
+ \M \L{fontmapfile} \S{string expression}
+ \O \L{fontmapline} \S{string expression}
+ \O \L{special} \S{string expression}
+ \O \L{input} \S{string expression}
+ \O \L{prologies} \S{numeric expression}
+ \O \L{outputtemplate} \S{string expression}
+ \O \L{outputformat} \S{string expression}
+\StopSyntax
+
+\StartSyntax
+\S{tracing command}
+ \M \L{tracingall}
+ \O \L{loggingall}
+ \O \L{tracingnone}
+\StopSyntax
+
+\StartSyntax
+\S{if test}
+ \M \L{if} \S{boolean expression} \L{:} \S{balanced tokens} \S{alternatives} \L{fi}
+\StopSyntax
+
+\StartSyntax
+\S{alternatives}
+ \M \S{empty}
+ \O \L{else} \L{:} \S{balanced tokens}
+ \O \L{elseif} \S{boolean expression} \S{:} \S{balanced tokens} \S{alternatives}
+ \O \L{exit} \O \L{exitif} \S{boolean expression} \O \L{exitunless} \S{boolean expression}
+ \O \L{break}
+\StopSyntax
+
+\StartSyntax
+\S{loop}
+ \M \S{loop header} \L{:} \S{loop text} \L{endfor}
+\StopSyntax
+
+\StartSyntax
+\S{loop header}
+ \M \L{for} \S{symbolic token} \L{=} \S{progression}
+ \O \L{for} \S{symbolic token} \L{=} \S{for list}
+ \O \L{for} \S{symbolic token} \L{within} \S{picture expression}
+ \O \L{forsuffixes} \S{symbolic token} \L{=} \S{suffix list}
+ \O \L{forever}
+\StopSyntax
+
+\StartSyntax
+\S{progression}
+ \M \S{numeric expression} \L{upto} \S{numeric expression}
+ \O \S{numeric expression} \L{downto} \S{numeric expression}
+ \O \S{numeric expression} \L{step} \S{numeric expression} \L{until} \S{numeric expression}
+ \O \L{range} \S{numeric expression} \L{thru} \S{numeric expression}
+\StopSyntax
+
+\StartSyntax
+\S{for list}
+ \M \S{expression}
+ \O \S{for list} \L{,} \S{expression}
+\StopSyntax
+
+\StartSyntax
+\S{suffix list}
+ \M \S{suffix}
+ \O \S{suffix list} \L{,} \S{suffix}
+\StopSyntax
+
+\stop
+
+% \stopsection
+
+\stopchapter
+
+\stopcomponent
+
+% \startsection[title={Left overs}]
+
+% There are a few more concepts and commands available in \METAFUN, like color
+% remapping, shading and graphic inclusion. Because they have their own small
+% syntax world, we present them here.
+%
+% You may consider shades to be internally represented by a hidden datastructure.
+% The end user has access to a shade by means of a pointer, expressed in a numeric.
+%
+% \start \switchtobodyfont[small]
+%
+% \StartSyntax
+% \S{pseudo procedure}
+% \M \FL{linear_shade}%
+% \( \S{path expression} \L{,} \S{numeric expression}%
+% \L{,} \S{color expression} \L{,} \S{color expression} \)
+% \O \FL{circular_shade}%
+% \( \S{path expression} \L{,} \S{numeric expression}%
+% \L{,} \S{color expression} \L{,} \S{color expression} \)
+% \StopSyntax
+%
+% \StartSyntax
+% \S{pseudo function}
+% \M \FL{define_linear_shade}%
+% \( \S{pair expr} \L{,} \S{pair expr}%
+% \L{,} \S{color expr} \L{,} \S{color expr} \)
+% \O \FL{define_circular_shade}%
+% \( \S{pair expr} \L{,} \S{pair expr}%
+% \L{,} \S{path expr} \L{,} \S{path expr}%
+% \L{,} \S{color expr} \L{,} \S{color expr} \)
+% \O \FL{predefined_linear_shade}%
+% \( \S{path expr} \L{,} \S{numeric expr}%
+% \L{,} \S{color expr} \L{,} \S{color expr} \)
+% \O \FL{predefined_circular_shade}%
+% \( \S{path expr} \L{,} \S{numeric expr}%
+% \L{,} \S{color expr} \L{,} \S{color expr} \)
+% \StopSyntax
+%
+% \stop
+
+% External figures are just files, so the string passed as first argument needs to
+% be a valid filename. Additionally, they need to be given dimensions.
+
+% \start \switchtobodyfont[small]
+%
+% \StartSyntax
+% \S{pseudo procedure}
+% \M \FL{externalfigure} \S{string expression} \S{transformer}
+% \StopSyntax
+%
+% \stop
+
+% An external \METAPOST\ graphic can be loaded by filename and figure number. The
+% normal transformations can be applied.
+%
+% \start \switchtobodyfont[small]
+%
+% \StartSyntax
+% \S{pseudo procedure}
+% \M \FL{loadfigure} \S{string expression} \L{number} \S{numeric expression} \S{transformer}
+% \StopSyntax
+%
+% \stop
+
+% A graphic text is (normally) an outline representation of a snippet of text
+% typeset by \TEX. This procedure has a couple of dedicated options.
+
+% \start \switchtobodyfont[small]
+
+% \StartSyntax
+% \S{pseudo procedure}
+% \M \FL{graphictext} \S{string expression} \S{transformer} \S{text option list}
+% \O \FL{regraphictext} \S{transformer} \S{text option list}
+% \StopSyntax
+
+% \StartSyntax
+% \S{text option list}
+% \M \S{empty}
+% \O \S{text drawing option} \S{text option list}
+% \StopSyntax
+
+% \StartSyntax
+% \S{text drawing option}
+% \M \S{drawing option}
+% \O \FL{reversefill}
+% \O \FL{outlinefill}
+% \O \FL{withdrawcolor} \S{color expression}
+% \O \FL{withfillcolor} \S{color expression}
+% \StopSyntax
+
+% \StartSyntax
+% \S{pseudo procedure}
+% \M \FL{resetgraphictextdirective}
+% \O \FL{graphictextdirective} \S {string expression}
+% \StopSyntax
+
+% \StartSyntax
+% \S{internal variable}
+% \M \FL{graphictextformat}
+% \StopSyntax
+
+% \stop
+
+% \stopsection
+
+% \stopchapter
+
+% \stopcomponent