% Opt.tex copyright 1992 Victor Eijkhout % \Chapter Options This chapter discusses the various options that are common to all \Lollipop\ constructs. \Section Titles Any construct can have a title, although of course it is most useful for headings. A construct has a title if the option \refopt{title} appears. Example: \Ver> \DefineHeading:Section [...] Style:bold title [...] Stop \Section The title of this section Some text in this section. \def\ComplicatedTitle{ .. \hrule ... \vrule ... \vbox \bgroup ... \FooTitle ... }\DefineBar:Foo ... ComplicatedTitle ... Stop\DefineBar:Foo ... HasTitle ComplicatedTitle ... Stop\DefineFoo:Bar [...] BarCounter [...] \Theorem Foos have arbitrary properties\> \Corollary Foos are extremely valuable\> \Corollary Foos are extremely worthless\> \Theorem Foos don't exist\> \ExampleStop You can only declare a counter to be synonym for something that has already been created. In the above example you cannot define the \cs{Theorem} after the \cs{Corollary}. \ImpNote At the start of defining the construct, \cs{BarCounter} is defined to be an option: \Ver>\add@generic@default{\has@counterno \def\counter@repr{1} \csarg\def{\gen@option@name{\@name Counter}}{% \@add@toks{\@name Counter}\global\has@counteryes}}\add@generic@stop@default{\ifhas@counter \xp\expandafter\xp\install@counter \xp\counter@repr\@space\fi} \ifhas@counter \nxp\StepCounter:\expandafter\@name\@space % This sets the \current@label by default \ifhas@marks \edef\nxp\cs@e {\nxp\nxp\nxp\refresh@mark@item {\@name Counter}{\CSname{\@name Counter}}}% \nxp\cs@e \fi \fi block:start [...] block:stop block:hang [...] block:stop block:start [...] fillupto:20pt block:start [...] stickout:left block:start [...] stickout:right block:start [...] stickout:left=20pt\DefineHeading:TestSection line:start Style:italic TestSectionCounter Spaces:2 title line:stop label:start ( TestSectionCounter ) label:stop Stop \Section[sec:opt:indent] Indentation The option \refopt{indentafter} controls the behaviour of the first paragraph after a generic construct., \refopt{indentinside}, \refopt{indentfirst}. \Section Rules There is an option \refopt{hrule}. You should not write \Ver>\def\rulemacro{\hrule height [...] } \DefineHeading [...] rulemacro [...] Stop\def\rulespecs{ height [...] } \DefineHeading [...] hrule rulespecs [...] Stop embedded:no embedded:left embedded:right embedded:yes\begin{itemize}>. The problem here is the braces. The option \refcs{arg} produces a braced expression. For instance \Ver>\DefineTextBlock:LaTeXlist begin arg:{itemize} text end arg:{itemize} Stop} closes the current group, and \refcs{>]} closes all currently open groups. Every once in a while this is too drastic. Hence there is an option \refopt{noimplicitclose} that can be used to prevent a construct from being closed implicitly. Using \cs{>]} inside such a construct will close all enclosed constructs. See the definition of \cs{EExample} in this manual for an example. \Section[sec:opt:test] Testing There is an option \opt{test}. \endinput 92/11/10 \BlockWidth discussed in 'block' section 92/11/15 counter:othercounter discussed 92/11/21 option 'arg'