diff options
Diffstat (limited to 'tex/context/base/core-fnt.tex')
-rw-r--r-- | tex/context/base/core-fnt.tex | 661 |
1 files changed, 331 insertions, 330 deletions
diff --git a/tex/context/base/core-fnt.tex b/tex/context/base/core-fnt.tex index 0984781da..4df92a5a4 100644 --- a/tex/context/base/core-fnt.tex +++ b/tex/context/base/core-fnt.tex @@ -1,330 +1,331 @@ -%D \module -%D [ file=core-fnt, -%D version=1995.10.10, -%D title=\CONTEXT\ Core Macros, -%D subtitle=Font Support, -%D author=Hans Hagen, -%D date=\currentdate, -%D copyright={PRAGMA / Hans Hagen \& Ton Otten}] -%C -%C This module is part of the \CONTEXT\ macro||package and is -%C therefore copyrighted by \PRAGMA. Non||commercial use is -%C granted. - -\writestatus{loading}{Context Core Macros / Font Support} - -\unprotect - -%D \macros -%D {kap,KAP,Kap,Kaps,nokap} -%D -%D We already introduced \type{\kap} as way to capitalize -%D words. This command comes in several versions: -%D -%D \startbuffer -%D \kap {let's put on a \kap{cap}} -%D \kap {let's put on a \nokap{cap}} -%D \KAP {let's put on a \\{cap}} -%D \Kap {let's put on a \\{cap}} -%D \Kaps{let's put on a cap} -%D \stopbuffer -%D -%D \typebuffer -%D -%D Note the use of \type{\nokap}, \type{\\} and the nested -%D \type{\kap}. -%D -%D \startvoorbeeld -%D \startregels -%D \haalbuffer -%D \stopregels -%D \stopvoorbeeld -%D -%D These macros show te main reason why we introduced the -%D smaller \type{\tx} and \type{\txx}. -%D -%D \starttypen -%D \kap\romeins{1995} -%D \stoptypen -%D -%D This at first sight unusual capitilization is completely -%D legal. -%D -%D \showsetup{\y!kap} -%D \showsetup{\y!Kap} -%D \showsetup{\y!KAP} -%D \showsetup{\y!Kaps} -%D \showsetup{\y!nokap} - -\unexpanded\def\kap% - {\futurelet\next\dokap} - -% \def\dokap% -% {\ifx\next\bgroup -% \def\next{\dodokap\relax}% -% \else -% \def\next{\dodokap}% -% \fi -% \next} - -\def\dokap% - {\ifx\next\bgroup - \expandafter\dodokap\expandafter\relax - \else - \expandafter\dodokap - \fi} - -\def\dodokap#1#2% - {\ifmmode\hbox\fi - \bgroup - \tx - \the\everyuppercase - \uppercase{#1{#2}}% - \egroup} - -\unexpanded\def\KAP#1% - {{\def\\##1{\kap{##1}}#1}} - -\unexpanded\def\Kap#1% - {\KAP{\\#1}} - -\def\nokap#1% - {\lowercase{#1}} - -\def\Kaps% - {\let\processword=\Kap - \processwords} - -%D \macros -%D {Word, Words, WORD, WORDS, doprocesswords} -%D -%D This is probably not the right place to present the next set -%D of macros. -%D -%D \starttypen -%D \Word {far too many words} -%D \Words{far too many words} -%D \WORD {far too many words} -%D \WORDS{far too many words} -%D \stoptypen -%D -%D \typebuffer -%D -%D This calls result in: -%D -%D \startvoorbeeld -%D \startregels -%D \haalbuffer -%D \stopregels -%D \stopvoorbeeld -%D -%D \showsetup{\y!Word} -%D \showsetup{\y!Words} -%D \showsetup{\y!WORD} -%D \showsetup{\y!WORDS} - -\def\doWord#1% - {\bgroup - \the\everyuppercase - \uppercase{#1}% - \egroup} - -\def\Word#1% - {\doWord#1} - -\def\doprocesswords#1 #2\od% - {\ConvertToConstant\doifnot{#1}{} - {\processword{#1} % - \doprocesswords#2 \od}} - -\def\processwords#1% - {\doprocesswords#1 \od\unskip} - -\def\Words% - {\let\processwords=\Word - \processwords} - -\def\WORD#1% - {\bgroup - \def\kap#1{#1}% - \edef\next{#1}% - \the\everyuppercase - \uppercase\expandafter{\next}% - \egroup} - -\def\WORDS#1% - {\WORD{#1}} - -%D \macros -%D {stretched} -%D -%D Stretching characters in a word is a sort of typographical -%D murder. Nevertheless we support this manipulation for use in -%D for instance titles. -%D -%D \starttypen -%D \hbox to 5cm{\stretched{murder}} -%D \stoptypen -%D -%D \typebuffer -%D -%D or -%D -%D \startvoorbeeld -%D \haalbuffer -%D \stopvoorbeeld -%D -%D \showsetup{\y!stretched} - -\def\stretched% - {\ifvmode\hbox to \hsize\else\ifinner\else\hbox\fi\fi - \processtokens\relax\hss\relax\normalspace} - -%D \startbuffer -%D \stretched{Unknown Box} -%D \hbox to .5\hsize{\stretched{A Horizontal Box}} -%D \vbox to 2cm{\stretched{A Vertical Box}} -%D \hbox to 3cm{\stretched{sp{\'e}c{\`\i}{\"a}l}} -%D \stopbuffer -%D -%D \haalbuffer -%D -%D The first line of this macros takes care of boxing. Normally -%D one will use an \type{\hbox} specification. The last line -%D shows how special characters should be passed. -%D -%D \typebuffer - -%D \macros -%D {underbar,underbars,overstrike,overstrikes,setupunderbar} -%D -%D In the rare case that we need undelined words, for instance -%D because all font alternatives are already in use, one can -%D use \type{\underbar} and \type{\overstrike} and their plural -%D forms. -%D -%D \startbuffer -%D \underbars{drawing \underbar{bars} under words is a typewriter leftover} -%D \overstrikes{striking words makes them \overstrike{unreadable}} -%D \stopbuffer -%D -%D \typebuffer -%D -%D \startvoorbeeld -%D \startregels -%D \haalbuffer -%D \stopregels -%D \stopvoorbeeld -%D -%D The next macros are derived from the \PLAIN\ \TEX\ one, but -%D also supports nesting. The \type{$} keeps us in horizontal -%D mode and at the same time applies grouping. -%D -%D \showsetup{\y!underbar} -%D \showsetup{\y!underbars} -%D \showsetup{\y!overstrike} -%D \showsetup{\y!overstrikes} -%D -%D Although underlining is ill advised, we permit some -%D alternatives, that can be set up by: -%D -%D \showsetup{\y!setupunderbar} -%D -%D The alternatives show up as -%D {\setupunderbar [variant=a]{alternative a}, -%D {\setupunderbar [variant=b]{alternative b}, -%D {\setupunderbar [variant=c]{alternative c} -%D and -%D {\setupunderbar [lijndikte=1pt]{1pt width}, -%D {\setupunderbar [lijndikte=2pt]{2pt width}, -%D or whatever. Because \type{\overstrike} uses the same -%D method, the settings also apply to that macro. - -\newcounter\underbarlevel -\newbox\underbarbox - -\def\underbarmethoda#1#2#3% RULE - {\hbox to #1{\vrule\!!width#1\!!height#2\!!depth#3}} - -\def\underbarmethodb#1#2#3% DASH - {\hbox to #1 - {\hskip-.25em - \xleaders - \hbox{\hskip.25em\vrule\!!width.25em\!!height#2\!!depth#3} - \hfil}} - -\def\underbarmethodc#1#2#3% PERIOD - {\hbox to #1 - {\dimen0=#3 - \advance\dimen0 by .2ex - \hskip-.25em - \xleaders - \hbox{\hskip.25em\lower\dimen0\hbox{.}} - \hfil}} - -\def\dodounderbar#1#2#3% - {\bmath - \setbox0=\hbox{#3}% - \setbox2=\getvalue{underbarmethod\@@onvariant}{\wd0}{#1}{#2}% - \wd0=\!!zeropoint - \box0\box2 - \emath} - -\unexpanded\def\dounderbar#1% - {\bgroup - \increment\underbarlevel - \dimen0=1.5\normallineskip % was \dimen0=1.5\lineskip - \dimen0=\underbarlevel\dimen0 - \dimen2=\dimen0 - \advance\dimen2 by \@@onlijndikte - \dodounderbar{-\dimen0}{\dimen2}{#1}% - \egroup} - -\unexpanded\def\underbar#1% - {\bgroup - \setbox\underbarbox=\hbox - {\dounderbar{\hskip\fontdimen2\font}}% - \def\betweenisolatedwords% - {\nobreak - \hskip\!!zeropoint\!!minus\fontdimen4\font - \discretionary{}{}{\copy\underbarbox}}% - \processisolatedwords{#1}\dounderbar - \egroup} - -\unexpanded\def\underbars#1% - {\processisolatedwords{#1}\dounderbar} - -\unexpanded\def\dooverstrike#1% - {\bgroup - \dimen0=2.5\lineskip - \dimen2=\dimen0 - \advance\dimen2 by \@@onlijndikte - \dodounderbar{\dimen2}{-\dimen0}{#1}% - \egroup} - -\unexpanded\def\overstrike#1% - {\bgroup - \setbox\underbarbox=\hbox - {\dooverstrike{\hskip\fontdimen2\font}}% - \def\betweenisolatedwords% - {\nobreak - \hskip\!!zeropoint\!!minus\fontdimen4\font - \discretionary{}{}{\copy\underbarbox}}% - \processisolatedwords{#1}\dooverstrike - \egroup} - -\unexpanded\def\overstrikes#1% - {\processisolatedwords{#1}\dooverstrike} - -\def\setupunderbar% - {\dodoubleargument\getparameters[\??on]} - -%D This module has only a few setups: - -\setupunderbar - [\c!variant=a, - \c!lijndikte=\linewidth] - -\protect - -\endinput +%D \module
+%D [ file=core-fnt,
+%D version=1995.10.10,
+%D title=\CONTEXT\ Core Macros,
+%D subtitle=Font Support,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. Non||commercial use is
+%C granted.
+
+\writestatus{loading}{Context Core Macros / Font Support}
+
+\unprotect
+
+%D \macros
+%D {kap,KAP,Kap,Kaps,nokap}
+%D
+%D We already introduced \type{\kap} as way to capitalize
+%D words. This command comes in several versions:
+%D
+%D \startbuffer
+%D \kap {let's put on a \kap{cap}}
+%D \kap {let's put on a \nokap{cap}}
+%D \KAP {let's put on a \\{cap}}
+%D \Kap {let's put on a \\{cap}}
+%D \Kaps{let's put on a cap}
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D Note the use of \type{\nokap}, \type{\\} and the nested
+%D \type{\kap}.
+%D
+%D \startvoorbeeld
+%D \startregels
+%D \haalbuffer
+%D \stopregels
+%D \stopvoorbeeld
+%D
+%D These macros show te main reason why we introduced the
+%D smaller \type{\tx} and \type{\txx}.
+%D
+%D \starttypen
+%D \kap\romeins{1995}
+%D \stoptypen
+%D
+%D This at first sight unusual capitilization is completely
+%D legal.
+%D
+%D \showsetup{\y!kap}
+%D \showsetup{\y!Kap}
+%D \showsetup{\y!KAP}
+%D \showsetup{\y!Kaps}
+%D \showsetup{\y!nokap}
+
+\unexpanded\def\kap%
+ {\futurelet\next\dokap}
+
+% \def\dokap%
+% {\ifx\next\bgroup
+% \def\next{\dodokap\relax}%
+% \else
+% \def\next{\dodokap}%
+% \fi
+% \next}
+
+\def\dokap%
+ {\ifx\next\bgroup
+ \expandafter\dodokap\expandafter\relax
+ \else
+ \expandafter\dodokap
+ \fi}
+
+\def\dodokap#1#2%
+ {\ifmmode\hbox\fi
+ \bgroup
+ \tx
+ \the\everyuppercase
+ \uppercase{#1{#2}}%
+ \egroup}
+
+\unexpanded\def\KAP#1%
+ {{\def\\##1{\kap{##1}}#1}}
+
+\unexpanded\def\Kap#1%
+ {\KAP{\\#1}}
+
+\def\nokap#1%
+ {\lowercase{#1}}
+
+\def\Kaps%
+ {\let\processword=\Kap
+ \processwords}
+
+%D \macros
+%D {Word, Words, WORD, WORDS, doprocesswords}
+%D
+%D This is probably not the right place to present the next set
+%D of macros.
+%D
+%D \starttypen
+%D \Word {far too many words}
+%D \Words{far too many words}
+%D \WORD {far too many words}
+%D \WORDS{far too many words}
+%D \stoptypen
+%D
+%D \typebuffer
+%D
+%D This calls result in:
+%D
+%D \startvoorbeeld
+%D \startregels
+%D \haalbuffer
+%D \stopregels
+%D \stopvoorbeeld
+%D
+%D \showsetup{\y!Word}
+%D \showsetup{\y!Words}
+%D \showsetup{\y!WORD}
+%D \showsetup{\y!WORDS}
+
+\def\doWord#1%
+ {\bgroup
+ \the\everyuppercase
+ \uppercase{#1}%
+ \egroup}
+
+\def\Word#1%
+ {\doWord#1}
+
+\def\doprocesswords#1 #2\od%
+ {\ConvertToConstant\doifnot{#1}{}
+ {\processword{#1} %
+ \doprocesswords#2 \od}}
+
+\def\processwords#1%
+ {\doprocesswords#1 \od\unskip}
+
+\def\Words%
+ {\let\processwords=\Word
+ \processwords}
+
+\def\WORD#1%
+ {\bgroup
+ \def\kap#1{#1}%
+ \edef\next{#1}%
+ \the\everyuppercase
+ \uppercase\expandafter{\next}%
+ \egroup}
+
+\def\WORDS#1%
+ {\WORD{#1}}
+
+%D \macros
+%D {stretched}
+%D
+%D Stretching characters in a word is a sort of typographical
+%D murder. Nevertheless we support this manipulation for use in
+%D for instance titles.
+%D
+%D \starttypen
+%D \hbox to 5cm{\stretched{murder}}
+%D \stoptypen
+%D
+%D \typebuffer
+%D
+%D or
+%D
+%D \startvoorbeeld
+%D \haalbuffer
+%D \stopvoorbeeld
+%D
+%D \showsetup{\y!stretched}
+
+\def\stretched%
+ {\ifvmode\hbox to \hsize\else\ifinner\else\hbox\fi\fi
+ \processtokens\relax\hss\relax\normalspace}
+
+%D \startbuffer
+%D \stretched{Unknown Box}
+%D \hbox to .5\hsize{\stretched{A Horizontal Box}}
+%D \vbox to 2cm{\stretched{A Vertical Box}}
+%D \hbox to 3cm{\stretched{sp{\'e}c{\`\i}{\"a}l}}
+%D \stopbuffer
+%D
+%D \haalbuffer
+%D
+%D The first line of this macros takes care of boxing. Normally
+%D one will use an \type{\hbox} specification. The last line
+%D shows how special characters should be passed.
+%D
+%D \typebuffer
+
+%D \macros
+%D {underbar,underbars,overstrike,overstrikes,setupunderbar}
+%D
+%D In the rare case that we need undelined words, for instance
+%D because all font alternatives are already in use, one can
+%D use \type{\underbar} and \type{\overstrike} and their plural
+%D forms.
+%D
+%D \startbuffer
+%D \underbars{drawing \underbar{bars} under words is a typewriter leftover}
+%D \overstrikes{striking words makes them \overstrike{unreadable}}
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D \startvoorbeeld
+%D \startregels
+%D \haalbuffer
+%D \stopregels
+%D \stopvoorbeeld
+%D
+%D The next macros are derived from the \PLAIN\ \TEX\ one, but
+%D also supports nesting. The \type{$} keeps us in horizontal
+%D mode and at the same time applies grouping.
+%D
+%D \showsetup{\y!underbar}
+%D \showsetup{\y!underbars}
+%D \showsetup{\y!overstrike}
+%D \showsetup{\y!overstrikes}
+%D
+%D Although underlining is ill advised, we permit some
+%D alternatives, that can be set up by:
+%D
+%D \showsetup{\y!setupunderbar}
+%D
+%D The alternatives show up as
+%D {\setupunderbar [variant=a]{alternative a},
+%D {\setupunderbar [variant=b]{alternative b},
+%D {\setupunderbar [variant=c]{alternative c}
+%D and
+%D {\setupunderbar [lijndikte=1pt]{1pt width},
+%D {\setupunderbar [lijndikte=2pt]{2pt width},
+%D or whatever. Because \type{\overstrike} uses the same
+%D method, the settings also apply to that macro.
+
+\newcounter\underbarlevel
+\newbox\underbarbox
+
+\def\underbarmethoda#1#2#3% RULE
+ {\hbox to #1{\vrule\!!width#1\!!height#2\!!depth#3}}
+
+\def\underbarmethodb#1#2#3% DASH
+ {\hbox to #1
+ {\hskip-.25em
+ \xleaders
+ \hbox{\hskip.25em\vrule\!!width.25em\!!height#2\!!depth#3}
+ \hfil}}
+
+\def\underbarmethodc#1#2#3% PERIOD
+ {\hbox to #1
+ {\dimen0=#3
+ \advance\dimen0 by .2ex
+ \hskip-.25em
+ \xleaders
+ \hbox{\hskip.25em\lower\dimen0\hbox{.}}
+ \hfil}}
+
+\def\dodounderbar#1#2#3%
+ {\bmath
+ \setbox0=\hbox{#3}%
+ \setbox2=\getvalue{underbarmethod\@@onvariant}{\wd0}{#1}{#2}%
+ \wd0=\!!zeropoint
+ \box0\box2
+ \emath}
+
+\unexpanded\def\dounderbar#1%
+ {\bgroup
+ \increment\underbarlevel
+ \dimen0=1.5\normallineskip % was \dimen0=1.5\lineskip
+ \dimen0=\underbarlevel\dimen0
+ \dimen2=\dimen0
+ \advance\dimen2 by \@@onlijndikte
+ \dodounderbar{-\dimen0}{\dimen2}{#1}%
+ \egroup}
+
+\unexpanded\def\underbar#1%
+ {\bgroup
+ \setbox\underbarbox=\hbox
+ {\dounderbar{\hskip\fontdimen2\font}}%
+ \def\betweenisolatedwords%
+ {\nobreak
+ \hskip\!!zeropoint\!!minus\fontdimen4\font
+ \discretionary{}{}{\copy\underbarbox}}%
+ \processisolatedwords{#1}\dounderbar
+ \egroup}
+
+\unexpanded\def\underbars#1%
+ {\processisolatedwords{#1}\dounderbar}
+
+\unexpanded\def\dooverstrike#1%
+ {\bgroup
+ \dimen0=2.5\lineskip
+ \dimen2=\dimen0
+ \advance\dimen2 by \@@onlijndikte
+ \dodounderbar{\dimen2}{-\dimen0}{#1}%
+ \egroup}
+
+\unexpanded\def\overstrike#1%
+ {\bgroup
+ \setbox\underbarbox=\hbox
+ {\dooverstrike{\hskip\fontdimen2\font}}%
+ \def\betweenisolatedwords%
+ {\nobreak
+ \hskip\!!zeropoint\!!minus\fontdimen4\font
+ \discretionary{}{}{\copy\underbarbox}}%
+ \processisolatedwords{#1}\dooverstrike
+ \egroup}
+
+\unexpanded\def\overstrikes#1%
+ {\processisolatedwords{#1}\dooverstrike}
+
+\def\setupunderbar%
+ {\dodoubleargument\getparameters[\??on]}
+
+%D This module has only a few setups:
+
+\setupunderbar
+ [\c!variant=a,
+ \c!lijndikte=\linewidth]
+
+\protect
+
+\endinput
+
\ No newline at end of file |