diff options
author | Context Git Mirror Bot <phg42.2a@gmail.com> | 2016-01-12 17:15:07 +0100 |
---|---|---|
committer | Context Git Mirror Bot <phg42.2a@gmail.com> | 2016-01-12 17:15:07 +0100 |
commit | 8d8d528d2ad52599f11250cfc567fea4f37f2a8b (patch) | |
tree | 94286bc131ef7d994f9432febaf03fe23d10eef8 /tex/context/base/core-fnt.mkii | |
parent | f5aed2e51223c36c84c5f25a6cad238b2af59087 (diff) | |
download | context-8d8d528d2ad52599f11250cfc567fea4f37f2a8b.tar.gz |
2016-01-12 16:26:00
Diffstat (limited to 'tex/context/base/core-fnt.mkii')
-rw-r--r-- | tex/context/base/core-fnt.mkii | 726 |
1 files changed, 0 insertions, 726 deletions
diff --git a/tex/context/base/core-fnt.mkii b/tex/context/base/core-fnt.mkii deleted file mode 100644 index 542ca062a..000000000 --- a/tex/context/base/core-fnt.mkii +++ /dev/null @@ -1,726 +0,0 @@ -%D \module -%D [ file=core-fnt, -%D version=1995.10.10, -%D title=\CONTEXT\ Core Macros, -%D subtitle=Fonts, -%D author=Hans Hagen, -%D date=\currentdate, -%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] -%C -%C This module is part of the \CONTEXT\ macro||package and is -%C therefore copyrighted by \PRAGMA. See mreadme.pdf for -%C details. - -\writestatus{loading}{ConTeXt Core Macros / Fonts} - -\unprotect - -%D \macros -%D {compound} -%D -%D We will overload the already active \type {|} so we have -%D to save its meaning in order to be able to use this handy -%D macro. -%D -%D \starttyping -%D so test\compound{}test can be used instead of test||test -%D \stoptyping - -\bgroup \catcode`\|=\@@active \gdef\compound#1{|#1|} \egroup - -%D Here we hook some code into the clean up mechanism needed -%D for verbatim data. - -\appendtoks - \disablecompoundcharacters - \disablediscretionaries -\to \everycleanupfeatures - -%D \macros -%D {kap,KAP,Kap,Kaps,nokap,userealcaps,usepseudocaps} -%D -%D We already introduced \type{\cap} as way to capitalize -%D words. This command comes in several versions: -%D -%D \startbuffer -%D \cap {let's put on a \cap{cap}} -%D \cap {let's put on a \nocap{cap}} -%D \CAP {let's put on a \\{cap}} -%D \Cap {let's put on a \\{cap}} -%D \Caps{let's put on a cap} -%D \stopbuffer -%D -%D \typebuffer -%D -%D Note the use of \type{\nocap}, \type{\\} and the nested -%D \type{\cap}. -%D -%D \startvoorbeeld -%D \startlines -%D \getbuffer -%D \stoplines -%D \stopvoorbeeld -%D -%D These macros show te main reason why we introduced the -%D smaller \type{\tx} and \type{\txx}. -%D -%D \starttyping -%D \cap\romannumerals{1995} -%D \stoptyping -%D -%D This at first sight unusual capitilization is completely -%D legal. -%D -%D \showsetup{smallcapped} -%D \showsetup{notsmallcapped} -%D \showsetup{CAPPED} -%D \showsetup{SmallCapped} -%D \showsetup{SmallCaps} -%D -%D The difference between pseudo and real caps is demonstrated -%D below: -%D -%D \startbuffer -%D \usepseudocaps \cap{Hans Hagen} -%D \userealcaps \cap{Hans Hagen} -%D \stopbuffer -%D -%D \typebuffer -%D -%D \getbuffer -%D -%D The \type {\bgroup} trickery below is needed because of -%D \type {\groupedcommand}. - -\def\usepseudocaps - {\def\cap@@uppercase{\the\everyuppercase\uppercased}% - \def\cap@@lowercase{\the\everylowercase\lowercased}% - \def\cap@@visualize{\tx}} - -\def\userealcaps - {\let\cap@@uppercase\relax - %\let\cap@@lowercase\relax % Definitely not! - \def\cap@@visualize{\sc}} - -\usepseudocaps - -\unexpanded\def\smallcapped % else conflict with math - {\futurelet\next\dosmallcapped} - -\def\disablepseudocaps - {\let\smallcapped\donothing} - -\def\dosmallcapped - {\ifx\next\bgroup - \expandafter\dodosmallcapped\expandafter\relax - \else - \expandafter\dodosmallcapped - \fi} - -\def\dodosmallcapped#1#2% - {\ifmmode\hbox\fi - \bgroup - \cap@@visualize - \cap@@uppercase{#1{#2}}% - \egroup} - -\unexpanded\def\notsmallcapped#1% - {\cap@@lowercase{#1}} - -\unexpanded\def\CAPPED#1% - {{\def\\##1{\smallcapped{##1}}#1}} - -\unexpanded\def\SmallCapped#1% - {\CAPPED{\\#1}} - -\unexpanded\def\SmallCaps - {\let\processword\SmallCapped - \processwords} - -%D Sure: - -\def\kap{\smallcapped} % for old times sake - -%D Some precautions for a \PLAIN\ \TEX\ definition. - -\unexpanded\def\normalcap{\dohandlemathtoken{cap}} -\unexpanded\def\normalCap{\dohandlemathtoken{Cap}} - -\def\cap{\mathortext\normalcap\smallcapped} -\def\Cap{\mathortext\normalCap\SmallCapped} - -\appendtoks - \let\cap\firstofoneargument - \let\Cap\firstofoneargument -\to \simplifiedcommands - -%D \macros -%D {setupcapitals} -%D -%D By default we use pseudo small caps in titles. This can be -%D set up with: -%D -%D \showsetup{setupcapitals} - -\let\normalsmallcapped\smallcapped - -\def\setupcapitals - {\dosingleempty\dosetupcapitals} - -\def\dosetupcapitals[#1]% - {\getparameters[\??kk][#1]% - \doifelse\@@kktitle\v!yes - {\definealternativestyle[\v!capital][\normalsmallcapped][\normalsmallcapped]% - \definealternativestyle[\v!smallcaps][\sc][\sc]% - \unexpanded\def\smallcapped{\normalsmallcapped}} - {\definealternativestyle[\v!capital][\normalsmallcapped][\uppercased]% - \definealternativestyle[\v!smallcaps][\sc][\uppercased]% - \unexpanded\def\smallcapped{\doconvertfont\v!capital}}% - \doifelse\@@kksc\v!yes - \userealcaps - \usepseudocaps} - -\ifx\uppercased\undefined \let\uppercased\uppercase \fi -\ifx\lowercased\undefined \let\lowercased\lowercase \fi - -% pretty tricky stuff: -% -% \usemodule[abr-01] \TEX \METAPOST \PPCHTEX \LATEX -% \usemodule[abr-02] \TEX \METAPOST \PPCHTEX \LATEX - -%def\uppercased#1{{\forceunexpanded\xdef\@@globalcrap{\uppercase{#1}}}\@@globalcrap} -%def\lowercased#1{{\forceunexpanded\xdef\@@globalcrap{\lowercase{#1}}}\@@globalcrap} - -\def\uppercased#1{{\forceunexpanded\xdef\@@expanded{\uppercase{#1}}}\@@expanded} -\def\lowercased#1{{\forceunexpanded\xdef\@@expanded{\lowercase{#1}}}\@@expanded} - -\setupcapitals - [\c!title=\v!yes, - \c!sc=\v!no] - -%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 \starttyping -%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 \stoptyping -%D -%D \typebuffer -%D -%D This calls result in: -%D -%D \startvoorbeeld -%D \startlines -%D \getbuffer -%D \stoplines -%D \stopvoorbeeld -%D -%D \showsetup{Word} -%D \showsetup{Words} -%D \showsetup{WORD} -%D \showsetup{WORDS} - -\def\doWord#1% - {\bgroup - \the\everyuppercase - \uppercase{#1}% - \egroup} - -\unexpanded\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} - -\let\processword\relax - -\unexpanded\def\Words - {\let\processword\Word - \processwords} - -\unexpanded\def\WORD#1% - {\bgroup - \let\smallcapped\firstofoneargument - \let\WORD\firstofoneargument - \douppercase{#1}% - \egroup} - -\unexpanded\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 \starttyping -%D \hbox to 5cm{\stretched{murder}} -%D \stoptyping -%D -%D \typebuffer -%D -%D or -%D -%D \startvoorbeeld -%D \getbuffer -%D \stopvoorbeeld -%D -%D \showsetup{stretched} - -\def\stretched#1% - {\ifvmode\hbox to \hsize\else\ifinner\else\hbox\fi\fi - \bgroup\processtokens\relax\hss\relax{\hss\hss}{#1}\egroup} - -%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 \getbuffer -%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 {stretchednormalcase, stretcheduppercase, stretchedlowercase} -%D -%D A convenient alternative is: -%D -%D \starttyping -%D \stretcheduppercase{Is this what you like?} -%D \stoptyping -%D -%D \typebuffer -%D -%D this one uses fixed skips and kerns. -%D -%D \startvoorbeeld -%D \getbuffer -%D \stopvoorbeeld -%D -%D The default skip can be set with: - -% \def\stretchedspacefactor{4} -% \def\stretchedspaceamount{.25em} -% -% \unexpanded\def\stretcheduppercase#1% -% {\bgroup -% \the\everyuppercase -% \uppercase{\def\textstring{#1}}% -% \ifdim\stretchedspaceamount>\zeropoint -% \def\textkern% -% {\kern\stretchedspaceamount}% -% \def\textskip% -% {\scratchdimen=\stretchedspaceamount -% \hskip\stretchedspacefactor\scratchdimen}% -% \@EA\processtokens\@EA\relax\@EA\textkern\@EA\relax\@EA -% \textskip\@EA{\textstring}% -% \else -% \textstring -% \fi -% \egroup} - -%D Given the following settings, the space is 1em by default: - -\def\stretchedspacefactor{4} -\def\stretchedspaceamount{.25em} -\def\stretchedbreaktokens{.@/} - -\unexpanded\def\stretchednormalcase - {\stretchedsomecase\firstofoneargument} - -\unexpanded\def\stretcheduppercase - {\stretchedsomecase{\the\everyuppercase\uppercase}} - -\unexpanded\def\stretchedlowercase - {\stretchedsomecase{\the\everylowercase\lowercase}} - -\def\stretchedsomecase#1#2% - {\bgroup - #1{\def\textstring{#2}}% - \ifdim\stretchedspaceamount=\zeropoint - \textstring - \else - \def\textkern##1% - {% beware: ##1 may not be \box\somebox -) - \determinemidwordbreak{##1}{\stretchedbreaktokens}% - \kern\stretchedspaceamount##1\domidwordbreak}% - \def\textskip - {\scratchdimen\stretchedspaceamount - \hskip\stretchedspacefactor\scratchdimen}% - \@EA\processtokens\@EA\relax\@EA\textkern\@EA\relax\@EA - \textskip\@EA{\textstring}% - \fi - \egroup} - -%D An auxiliary macro, see for usage \type {\stretcheduppercase}. - -\let\domidwordbreak\relax - -\def\setmidwordbreaktoken#1% - {\sfcode`#1=5000\relax} - -\def\determinemidwordbreak#1#2% - {\edef\midwordbreaktokens{#2}% - \ifx\midwordbreaktokens\empty - \global\let\domidwordbreak\relax - \else - \setbox\scratchbox\hbox - {\expandafter\handletokens\midwordbreaktokens\with\setmidwordbreaktoken - a\space \!!dimena\lastskip - #1\space\!!dimenb\lastskip \relax % needed - \ifdim\!!dimena=\!!dimenb - \globallet\domidwordbreak\relax - \else - \globallet\domidwordbreak\allowbreak - \fi}% - \fi} - -%D \macros -%D {underbar,underbars, -%D overbar,overbars, -%D overstrike,overstrikes, -%D 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} but -%D sometimes even \overbar{top lines} come into view.} -%D \stopbuffer -%D -%D \typebuffer -%D -%D \startvoorbeeld -%D \startlines -%D \getbuffer -%D \stoplines -%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{underbar} -%D \showsetup{underbars} -%D \showsetup{overbar} -%D \showsetup{overbars} -%D \showsetup{overstrike} -%D \showsetup{overstrikes} -%D -%D Although underlining is ill advised, we permit some -%D alternatives, that can be set up by: -%D -%D \showsetup{setupunderbar} -%D -%D The alternatives show up as -%D {\setupunderbar [alternative=a]\underbar{alternative a}}, -%D {\setupunderbar [alternative=b]\underbar{alternative b}}, -%D {\setupunderbar [alternative=c]\underbar{alternative c}} -%D and -%D {\setupunderbar [rulethickness=1pt]\underbar{1pt width}}, -%D {\setupunderbar [rulethickness=2pt]\underbar{2pt width}}, -%D or whatever. Because \type{\overstrike} uses the same -%D method, the settings also apply to that macro. - -\newcount\underbarlevel - -\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 - {\dimen4=#3 - \advance\dimen4 .2ex - \hskip-.25em - \xleaders - \hbox{\hskip.25em\lower\dimen4\hbox{.}} - \hfil}} - -\def\dododounderbar#1#2#3% - {\startmathmode - \setbox0\hbox{#3}% - \setbox2\hbox{\color[\@@onrulecolor]{\getvalue{underbarmethod\@@onalternative}{\wd0}{#1}{#2}}}% - \wd0\zeropoint - \ht2\ht0 - \dp2\dp0 - \box0\box2 - \stopmathmode} - -\unexpanded\def\dodounderbar#1% - {\bgroup - \dimen0=\@@onbottomoffset - \dimen0=\underbarlevel\dimen0 - \ifdone \else - \advance\dimen0 -\strutht - \fi - \dimen2\dimen0 - \advance\dimen2 \@@onrulethickness - \dododounderbar{-\dimen0}{\dimen2}{#1}% - \egroup} - -\def\betweenunderbarwords - {\bgroup - \setbox0\hbox{\dodounderbar{\hskip\interwordspace}}% - \nobreak - \hskip\zeropoint\!!minus\interwordshrink - \discretionary{}{}{\box0}% - \egroup} - -\def\betweenunderbarspaces - {\hskip\currentspaceskip} - -% \unexpanded\def\dounderbar#1#2% -% {\let\betweenisolatedwords#1% -% \processisolatedwords{#2}\dodounderbar -% \egroup} - -\unexpanded\def\underbar - {\bgroup - \advance\underbarlevel\plusone - \donetrue - \dounderbar\betweenunderbarwords} - -\unexpanded\def\dounderbar#1% - {\let\betweenisolatedwords#1% - \dosingleempty\redounderbar} - -\unexpanded\def\redounderbar[#1]#2% - {\iffirstargument\setupunderbar[#1]\fi - \processisolatedwords{#2}\dodounderbar - \egroup} - -\unexpanded\def\underbars - {\bgroup - \advance\underbarlevel\plusone - \donetrue - \dounderbar\betweenunderbarspaces} - -\unexpanded\def\overbar - {\bgroup - \advance\underbarlevel\minusone - \donefalse - \dounderbar\betweenunderbarwords} - -\unexpanded\def\overbars - {\bgroup - \advance\underbarlevel\minusone - \donefalse - \dounderbar\betweenunderbarspaces} - -\def\dooverstrike#1% - {\bgroup - \dimen0=\@@ontopoffset - \dimen2=\dimen0 - \advance\dimen2 \@@onrulethickness - \dododounderbar{\dimen2}{-\dimen0}{#1}% - \egroup} - -\def\betweenoverstrikewords - {\bgroup - \setbox0\hbox{\dooverstrike{\hskip\interwordspace}}% - \nobreak - \hskip\zeropoint\!!minus\interwordshrink - \discretionary{}{}{\box0}% - \egroup} - -\unexpanded\def\overstrike#1% - {\bgroup - \let\betweenisolatedwords\betweenoverstrikewords - \processisolatedwords{#1}\dooverstrike - \egroup} - -\unexpanded\def\overstrikes#1% - {\bgroup - \processisolatedwords{#1}\dooverstrike - \egroup} - -\def\underbarparameter#1{\csname\??on#1\csname} - -\def\setupunderbar - {\dodoubleargument\getparameters[\??on]} - -%D \macros -%D {shiftedword, shiftedwords} -%D -%D Used as \type {\shiftedwords {10pt} {some text}} this macro will -%D move - -% \def\shiftedword#1% #2% -% {\raise#1\hbox} % {#2}} % officially: {\ifdim#1>\zeropoint\raise\else\lower\fi#1\hbox{#2}} - -% \def\shiftedwords#1#2% -% {\processisolatedwords{#2}{\shiftedword{#1}}} - -%D \macros -%D {low, high, lohi} -%D -%D Although \TEX\ is pretty well aware of super- and -%D subscripts, its mechanism is mainly tuned for math mode. -%D The next few commands take care of script texts both modes. -%D -%D \startbuffer -%D The higher\high{one goes} the lower\low{one drops}, or\lohi{yes}{no}? -%D \stopbuffer -%D -%D \typebuffer -%D -%D \getbuffer -%D -%D Note the different placement of \type {\lohi}, where we -%D need a bit more space. The implementation looks a bit -%D fuzzy, since some \type {\fontdimen}'s are involved to -%D determine the optimal placement. - -\def\dodohighlow - {\ifx\fontsize\empty - \ifmmode - \ifnum\fam<0 \tx \else \holamathfont \fi - \else - \tx - \fi - \else - \tx - \fi} - -\def\dohighlow#1#2#3#4#5% todo, named fontdimens - {\dontleavehmode - \bgroup - \scratchdimen\ifdim\fontexheight\textfont2=1ex #2\textfont2\else #3ex\fi - \advance\scratchdimen #4ex - \kern.1ex - \setbox\scratchbox\hbox{#1\scratchdimen\hbox{\dodohighlow#5}}% - \ht\scratchbox\strutheight - \dp\scratchbox\strutdepth - \box\scratchbox - \egroup} - -\unexpanded\def\high{\dohighlow\raise\mathsupnormal{.86}{0}} -\unexpanded\def\low {\dohighlow\lower\mathsubnormal{.48}{0}} - -% \unexpanded\def\lohi#1#2% -% {\dontleavehmode -% \hbox -% {\setbox4=\hbox{\dohighlow\lower\mathsubnormal{.48}{.1}{#1}}% -% \setbox6=\hbox{\dohighlow\raise\mathsupnormal{.86}{.1}{#2}}% -% \ifdim\wd4<\wd6 -% \wd4=\zeropoint\box4\box6 -% \else -% \wd6=\zeropoint\box6\box4 -% \fi}} - -\unexpanded\def\lohi - {\dosingleempty\dolohi} - -\def\dolohi[#1]#2#3% - {\dontleavehmode - \hbox - {\setbox4\hbox{\dohighlow\lower\mathsubnormal{.48}{.1}{#2}}% - \setbox6\hbox{\dohighlow\raise\mathsupnormal{.86}{.1}{#3}}% - \doif{#1}{\v!left} - {\ifdim\wd4<\wd6 - \setbox4\hbox to \wd6{\hss\box4}% - \else - \setbox6\hbox to \wd4{\hss\box6}% - \fi}% - \ifdim\wd4<\wd6 - \wd4=\zeropoint\box4\box6 - \else - \wd6=\zeropoint\box6\box4 - \fi}} - -%D You can provide an optional keyword \type {left}, in which -%D case the super and subscripts will be aligned in a way that -%D permits placement at the left of a word (which means that -%D it will be right aligned). -%D -%D \startbuffer -%D \lohi{aha}{ah} test \lohi{aha}{ah} test -%D \lohi[left]{aha}{ah} test \lohi[left]{aha}{ah} test -%D \lohi{aha}{ah} test\lohi{aha}{ah} test -%D \lohi[left]{aha}{ah}test \lohi[left]{aha}{ah}test -%D \stopbuffer -%D -%D \typebuffer -%D -%D \getbuffer - -%D \macros -%D {setupinitial,placeinitial,checkinitial} -%D -%D {\em To be documented.} -%D -%D \starttyping -%D \setupinitial[state=start] \placeinitial \input tufte -%D \stoptyping -%D -%D and -%D -%D \starttyping -%D \def\bpar{\ifvmode\checkinitial\fi} -%D \def\epar{\ifhmode\par\fi\checkinitial} -%D \stoptyping - -% to do: more fine tuning - -\def\setupinitial - {\dodoubleempty\getparameters[\??dc]} - -\definefontsynonym[Initial][Regular] % prefered initial identifier -\definefontsynonym[initial][Initial] % internal but accepted too - -\setupinitial - [\c!state=\v!stop, - \c!location=\v!text, - \c!n=3, - \c!distance=.125em, - \c!command=, - \s!font=initial] - -\def\AutoDroppedCapsCommand{\NiceDroppedCaps\@@dccommand\@@dcfont\@@dcdistance\@@dcn}% - -\def\placeinitial - {\doifelse\@@dclocation\v!margin{\chardef\DropMode\plusone}{\chardef\DropMode\zerocount}% - \doif \@@dcstate\v!start{\ifcase\@@dcn\else\AutoDroppedCaps\fi}} - -\let\checkinitial\CheckDroppedCaps - -%D This module has only a few setups: - -\setupunderbar - [\c!alternative=a, - \c!rulethickness=\linewidth, - \c!bottomoffset=1.5pt, - \c!topoffset=2.5pt, - \c!rulecolor=] - -\protect \endinput |