% opt.tex copyright 1992 Victor Eijkhout
% copyright 2014--2016 Vafa Khalighi
%
%
% This program is free software: you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation, either version 3 of the License, or
% (at your option) any later version.
%
% This program is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with this program. If not, see .
%
%
\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'