diff options
Diffstat (limited to 'Master/texmf-dist/tex/context/third/fancybreak/t-fancybreak.mkii')
-rw-r--r-- | Master/texmf-dist/tex/context/third/fancybreak/t-fancybreak.mkii | 272 |
1 files changed, 272 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/context/third/fancybreak/t-fancybreak.mkii b/Master/texmf-dist/tex/context/third/fancybreak/t-fancybreak.mkii new file mode 100644 index 00000000000..66ea139e7af --- /dev/null +++ b/Master/texmf-dist/tex/context/third/fancybreak/t-fancybreak.mkii @@ -0,0 +1,272 @@ +%D \module +%D [ file=t-fancybreak, +%D version=2013.04.27, +%D title=\CONTEXT\ User Module, +%D subtitle=Fancybreak, +%D author=Wolfgang Schuster, +%D date=\currentdate, +%D copyright=Wolfgang Schuster, +%D email=schuster.wolfgang@googlemail.com, +%D license=GNU General Public License] + +%C Copyright (C) 2010 Wolfgang Schuster +%C +%C This program is free software: you can redistribute it and/or modify +%C it under the terms of the GNU General Public License as published by +%C the Free Software Foundation, either version 3 of the License, or +%C any later version. +%C +%C This program is distributed in the hope that it will be useful, +%C but WITHOUT ANY WARRANTY; without even the implied warranty of +%C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +%C GNU General Public License for more details. +%C +%C You should have received a copy of the GNU General Public License +%C along with this program. If not, see <http://www.gnu.org/licenses/>. + +%M \usemodule[fancybreak] +%M \loadsetups[t-fancybreak.xml] + +%D \subject{Examples} +%D +%D \subsubject{The \letterbackslash fancybreak command} +%D +%D \starttyping +%D The Earth, as a habitat for animal life, is in old age … +%D \fancybreak{$* * *$} +%D The Earth, as a habitat for animal life, is in old age … +%D \stoptyping +%D +%D \input ward +%D \fancybreak{$* * *$} +%D \input ward +%D +%D \subsubject{The “spacebefore” and “spaceafter” keys} +%D +%D \starttyping +%D \setupfancybreak[spacebefore=line,spaceafter=line] +%D +%D The Earth, as a habitat for animal life, is in old age … +%D \fancybreak{$* * *$} +%D The Earth, as a habitat for animal life, is in old age … +%D \stoptyping +%D +%D \start +%D +%D \setupfancybreak[spacebefore=line,spaceafter=line] +%D +%D \input ward +%D \fancybreak{$* * *$} +%D \input ward +%D +%D \stop +%D +%D \subsubject{The argumentless version of the \letterbackslash fancybreak command} +%D +%D \starttyping +%D The Earth, as a habitat for animal life, is in old age … +%D \fancybreak +%D The Earth, as a habitat for animal life, is in old age … +%D \stoptyping +%D +%D \input ward +%D \fancybreak +%D \input ward +%D +%D \subsubject{The “spaceinbetween” key} +%D +%D \starttyping +%D \setupfancybreak[spaceinbetween=3*line] +%D +%D The Earth, as a habitat for animal life, is in old age … +%D \fancybreak +%D The Earth, as a habitat for animal life, is in old age … +%D \stoptyping +%D +%D \start +%D +%D \setupfancybreak[spaceinbetween=3*line] +%D +%D \input ward +%D \fancybreak +%D \input ward +%D +%D \stop +%D +%D \subsubject{The “symbol” key} +%D +%D \starttyping +%D \setupfancybreak[symbol=star] +%D +%D The Earth, as a habitat for animal life, is in old age … +%D \fancybreak +%D The Earth, as a habitat for animal life, is in old age … +%D \stoptyping +%D +%D \start +%D +%D \setupfancybreak[symbol=star] +%D +%D \input ward +%D \fancybreak +%D \input ward +%D +%D \stop +%D +%D \subsubject{How to create new \letterbackslash fancybreak commands} +%D +%D \starttyping +%D \definefancybreak[starbreak] [symbol=star] +%D \definefancybreak[squarebreak][symbol=square] +%D +%D The Earth, as a habitat for animal life, is in old age … +%D \starbreak +%D The Earth, as a habitat for animal life, is in old age … +%D \squarebreak +%D The Earth, as a habitat for animal life, is in old age … +%D \stoptyping +%D +%D \start +%D +%D \definefancybreak[starbreak] [symbol=star] +%D \definefancybreak[squarebreak][symbol=square] +%D +%D \input ward +%D \starbreak +%D \input ward +%D \squarebreak +%D \input ward +%D +%D \stop + +%D \subject{Implementation} + +\writestatus{loading}{ConTeXt User Module / Fancybreak} + +\unprotect + +\startinterface all + \setinterfacevariable {fancybreak} {fancybreak} +\stopinterface + +\def\????fancybreak{@@@@fancybreak} + +\def\fancybreakparameter#1{\csname\????fancybreak\currentfancybreak#1\endcsname} + +%D \macros +%D {setupfancybreak} +%D +%D \subsubject{\letterbackslash setupfancybreak} +%D +%D With the command \type{\setupfancybreak} one can change the settings of +%D a previous created command, the two argument version change only the values +%D of a certain command while the one argument version change the values of +%D all commands. +%D +%D \showsetup{setupfancybreak} + +\unexpanded\def\setupfancybreak + {\dodoubleempty\dosetupfancybreak} + +\def\dosetupfancybreak[#1][#2]% + {\ifsecondargument + \dodoubleargumentwithset\dodosetupfancybreak[#1][#2]% + \else + \dodosetupfancybreak[][#1]% + \fi} + +\def\dodosetupfancybreak[#1][#2]% + {\getparameters[\????fancybreak#1][#2]} + +%D \macros +%D {definefancybreak} +%D +%D \subsubject{\letterbackslash definefancybreak} +%D +%D The command \type{\fancybreak} is not hardcoded in the module but created with +%D \type{\definefancybreak}. The command takes two arguments, the first is the name +%D of the new command and the second parameter to change the style of the commands +%D content and distances to the surrounding text. +%D +%D In \MKII\ users can only change the spacing before and after the content and +%D the alignment of it while \MKIV\ user can also change the style and color of it. +%D +%D \showsetup{definefancybreak} + +\unexpanded\def\definefancybreak + {\dodoubleempty\dodefinefancybreak} + +\def\dodefinefancybreak[#1][#2]% + {\copyparameters + [\????fancybreak#1][\????fancybreak] + [\c!spacebefore,\c!spaceafter,\c!spaceinbetween,\c!align,\c!indentnext,\c!symbol]% + \getparameters[\????fancybreak#1][#2]% + \setvalue {#1}{\dodoubleempty\dofancybreak [#1]}% + \setvalue{\e!start#1}{\dodoubleempty\dostartfancybreak[#1]}% + \setvalue{\e!stop #1}{\dostopfancybreak }} + +%D \macros +%D {fancybreak} +%D +%D \subsubject{\letterbackslash fancybreak} +%D +%D The main macro of the module is the \type{\fancybreak} command (or a user defined +%D variant of it), it takes one argument which can be optional. +%D +%D \showsetup{fancybreak} +%D \showsetup{startfancybreak} + +\def\dofancybreak[#1][#2]% + {\par + \begingroup + \edef\currentfancybreak{#1}% + \ifsecondargument + \doifassignmentelse{#2} + {\getparameters[\????fancybreak\currentfancybreak][#2]} + {\setvalue{\????fancybreak\currentfancybreak\c!spaceinbetween}{#2}}% + \fi + \doifnextbgroupelse\dodofancybreak\nodofancybreak} + +\def\dodofancybreak + {\forgetall % \forgetparindent + \dowithnextboxcontent + {\setupalign[\fancybreakparameter\c!align]} + {\blank[\fancybreakparameter\c!spacebefore]% + \flushnextbox + \blank[\fancybreakparameter\c!spaceafter ]% + \checknextindentation[\fancybreakparameter\c!indentnext]% + \endgroup + \dorechecknextindentation} + \vbox} + +\def\nodofancybreak + {\doifsymboldefinedelse{\fancybreakparameter\c!symbol} + {\dodofancybreak{\symbol[\fancybreakparameter\c!symbol]}} + {\blank[\fancybreakparameter\c!spaceinbetween]% + \checknextindentation[\fancybreakparameter\c!indentnext]% + \endgroup + \dorechecknextindentation}} + +\def\dostartfancybreak[#1][#2]% + {\par + \begingroup + \edef\currentfancybreak{#1}% + \ifsecondargument + \getparameters[\????fancybreak#1][#2]% + \fi + \dodofancybreak\bgroup} + +\def\dostopfancybreak + {\egroup} + +\definefancybreak[\v!fancybreak] + +\setupfancybreak + [ \c!spacebefore=, + \c!spaceafter=\v!nowhite, + \c!spaceinbetween=\v!line, + \c!align=\v!middle, + \c!indentnext=\v!yes, + \c!symbol=] + +\protect \endinput |