diff options
author | Hans Hagen <pragma@wxs.nl> | 1999-02-17 00:00:00 +0100 |
---|---|---|
committer | Hans Hagen <pragma@wxs.nl> | 1999-02-17 00:00:00 +0100 |
commit | 9ca92159ee8e762e295fc06fcb22dcb1006707cd (patch) | |
tree | 0c42902fe34cde08f4badaa27ed924fbf9d905c6 /tex/context/base/symb-ini.tex | |
parent | f7ce2124ddf34c4a7c785e1500003921d70118ba (diff) | |
download | context-9ca92159ee8e762e295fc06fcb22dcb1006707cd.tar.gz |
stable 1999.02.17
Diffstat (limited to 'tex/context/base/symb-ini.tex')
-rw-r--r-- | tex/context/base/symb-ini.tex | 336 |
1 files changed, 336 insertions, 0 deletions
diff --git a/tex/context/base/symb-ini.tex b/tex/context/base/symb-ini.tex new file mode 100644 index 000000000..42e950959 --- /dev/null +++ b/tex/context/base/symb-ini.tex @@ -0,0 +1,336 @@ +%D \module +%D [ file=symb-nav, +%D version=1998.07.20, +%D title=\CONTEXT\ Symbol Libraries, +%D subtitle=Navigational Symbols, +%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. + +%D The macros described here used to be part of the \type +%D {core-con} module. I decided to move them here when +%D symbolsets saw the light. Let their light shine. + +\writestatus{loading}{Context Symbol Libraries / Initialization} + +\unprotect + +% TOBIAS + +\startmessages dutch library: symbols + title: symbolen + 1: symboolset -- wordt geladen +\stopmessages + +\startmessages english library: symbols + title: symbols + 1: loading symbolset -- +\stopmessages + +\startmessages german library: symbols + title: symbole + 1: Lade Symboldatei -- +\stopmessages + +%D \macros +%D {definesymbol, symbol} +%D +%D Converting numbers or levels into a character, romannumeral, +%D symbol or something else, is supported by many \CONTEXT\ +%D commands. Therefore we need a mechanism for linking such +%D numbers to their counterparts. +%D +%D First we take care of symbols. These are for instance used +%D in enumerations and itemizations. We have: +%D +%D \showsetup{\y!definesymbol} +%D \showsetup{\y!symbol} +%D +%D Symbols are simply linked to a tag. Such tags can be numbers +%D or strings. +%D +%D \starttypen +%D \definesymbol [1] [$\bullet$] +%D \definesymbol [level 5] [$\star$] +%D \stoptypen + +\def\dodefinesymbol[#1][#2]% + {\ifx\currentsymbolset\empty + \setvalue{\??ss#1}{#2}% + \else + \doifundefinedelse{\??ss:\currentsymbolset} + {\let\currentsymbollist\empty} + {\edef\currentsymbollist{\csname\??ss:\currentsymbolset\endcsname}}% + \addtocommalist{#1}\currentsymbollist + \setvalue{\??ss\currentsymbolset#1}{#2}% + \letvalue{\??ss:\currentsymbolset}\currentsymbollist + \fi} + +\def\definesymbol% + {\dodoubleargument\dodefinesymbol} + +\def\dosymbol[#1][#2]% + {\ifsecondargument + \doifdefinedelse{\??ss#1#2} + {\getvalue{\??ss#1#2}} + {\doifdefinedelse{\??ss#2}{\getvalue{\??ss#2}}{#2}}% + \else + \doifdefinedelse{\??ss\currentsymbolset#1} + {\getvalue{\??ss\currentsymbolset#1}} + {\doifdefinedelse{\??ss#1}{\getvalue{\??ss#1}}{#1}}% + \fi} + +\unexpanded\def\symbol% + {\dodoubleempty\dosymbol} + +%D \macros +%D {definefiguresymbol} +%D +%D To simplify defining figure symbols, we offer: +%D +%D \showsetup{\y!definesymbol} +%D +%D By default, such symbols scale along the current bodyfont +%D size. + +\def\defaultsymbolfactor{10} + +\def\dodefinefiguresymbol[#1][#2][#3]% + {\ifsecondargument + \definesymbol[#1][{\externalfigure[#2][\c!symbool=\v!ja,\c!hfactor=\defaultsymbolfactor,#3]}]% + \fi} + +\def\definefiguresymbol% + {\dotripleempty\dodefinefiguresymbol} + +%\def\objectsymbol[#1]% +% {\dopresetfieldsymbol{#1}\dogetfieldsymbol{#1}} + +%D \macros +%D {doifsymboldefinedelse} +%D +%D A handy private one: + +\def\doifsymboldefinedelse#1#2#3% + {\doifdefinedelse{\??ss\currentsymbolset#1} + {#2}{\doifdefinedelse{\??ss#1}{#2}{#3}}} + +%D \macros +%D {setupsymbolset,startsymbolset} +%D +%D From these macro definitions one can deduce that symbols can +%D be grouped in symbol sets: +%D +%D \starttypen +%D \startsymbolset [navigation 1] +%D \definefiguresymbol [Next] [mp-symb.1] +%D \definefiguresymbol [Prev] [mp-symb.2] +%D \stopsymbolset +%D \stoptypen +%D +%D Such a symbol can be typeset with: +%D +%D \starttypen +%D \setupsymbolset[navigation 1]\symbol[Next] +%D \stoptypen +%D +%D or simply: +%D +%D \starttypen +%D \symbol[navigation 1][Next] +%D \stoptypen +%D +%D Formally: +%D +%D \showsetup{\y!setupsymbolset} +%D \showsetup{\y!startsymbolset} + +\let\currentsymbolset\empty + +\def\startsymbolset[#1]% + {\def\currentsymbolset{:#1:}} + +\def\stopsymbolset% + {\let\currentsymbolset\empty} + +\let\setupsymbolset\startsymbolset + +%D \macros +%D {showsymbolset} +%D +%D \showsetup{\y!showsymbolset} + +\def\doshowsymbolset[#1][#2]% looks like \showexternalfigureb + {\vbox\bgroup + \blanko + \getparameters[\??ss][\c!n=5,#2]% + \setupsymbolset[#1]% + \doifdefined{\??ss:\currentsymbolset} + {\global\let\allfigures=\empty + \doglobal\newcounter\figurecounter + \setupcolors[\c!status=\v!start]% to prevent mps color conversion + \mindermeldingen + \def\doshowsymbols% + {\expanded{\globalprocesscommalist[\getvalue{\??ss:\currentsymbolset}]\noexpand\docommando}}% + \def\docommando##1% + {\vbox + {\forgetall + \tttf + \halign + {\hss\quad####\strut\quad\hss\cr + \symbol[##1]\quad{\red\ruledhbox{\black\symbol[##1]}}\cr + \tfx##1\cr}}% + \doglobal\increment\figurecounter + \ifnum\figurecounter=\@@ssn + \doglobal\newcounter\figurecounter + \def\next{\crcr\noalign{\vskip1ex}}% + \else + \def\next{&}% + \fi + \next}% + \tabskip=\!!zeropoint \!!plus 1fill + \halign to \hsize + {&\hss##\hss\cr\doshowsymbols\crcr}}% + \blanko + \egroup} + +\def\showsymbolset% + {\dodoubleempty\doshowsymbolset} + +%D \macros +%D {usesymbols} +%D +%D \showsetup{\y!usesymbols} + +\def\dousesymbols#1% + {\makeshortfilename[\f!symbolprefix#1]% + \showmessage{\m!symbols}{1}{#1}% + \startreadingfile + \readsysfile{\shortfilename}{}{}% + \stopreadingfile} + +\def\usesymbols[#1]% + {\processcommalist[#1]\dousesymbols} + +%D As longs as symbols are linked to levels or numbers, we can +%D also use the conversion mechanism, but in for instance the +%D itemization macros, we prefer symbols because they can more +%D easier be (partially) redefined. + +%D We predefine some common symbols and conversions that will +%D be understood by many commands. + +% \definesymbol [1] [$\bullet$] +% \definesymbol [2] [$-$] +% \definesymbol [3] [$\star$] +% \definesymbol [4] [$\triangleright$] +% \definesymbol [5] [$\circ$] +% \definesymbol [6] [\hbox{\setsmallbodyfont\raise\!!onepoint\hbox{$\bigcirc$}}] +% \definesymbol [7] [$\bigcirc$] +% \definesymbol [8] [\hbox{\hsmash{$\sqcup$}$\sqcap$}] + +\definesymbol [\v!geen] [] +\definesymbol [bullet] [$\bullet$] +\definesymbol [dash] [$-$] +\definesymbol [star] [$\star$] +\definesymbol [triangle] [$\triangleright$] +\definesymbol [circle] [$\circ$] +\definesymbol [medcircle] [\hbox{\setsmallbodyfont\raise\!!onepoint\hbox{$\bigcirc$}}] +\definesymbol [bigcircle] [$\bigcirc$] +\definesymbol [square] [\hbox{\hsmash{$\sqcup$}$\sqcap$}] + +\definesymbol [1] [{\symbol[bullet]}] +\definesymbol [2] [{\symbol[dash]}] +\definesymbol [3] [{\symbol[star]}] +\definesymbol [4] [{\symbol[triangle]}] +\definesymbol [5] [{\symbol[circle]}] +\definesymbol [6] [{\symbol[medcircle]}] +\definesymbol [7] [{\symbol[bigcircle]}] +\definesymbol [8] [{\symbol[square]}] + +%D Special hyperlinks, namely those to pages or navigational +%D properties, are associated with symbols. + +\definesymbol [\v!eerstepagina] [\gotobegincharacter] +\definesymbol [\v!vorigepagina] [\gobackwardcharacter] +\definesymbol [\v!volgendepagina] [\goforwardcharacter] +\definesymbol [\v!laatstepagina] [\gotoendcharacter] +\definesymbol [\v!eerstesubpagina] [\gotobegincharacter] +\definesymbol [\v!vorigesubpagina] [\gobackwardcharacter] +\definesymbol [\v!volgendesubpagina] [\goforwardcharacter] +\definesymbol [\v!laatstesubpagina] [\gotoendcharacter] +\definesymbol [\v!PreviousJump] [\gobackjumpcharacter] +\definesymbol [\v!NextJump] [\goforjumpcharacter] +\definesymbol [\v!CloseDocument] [\closecharacter] + +\definesymbol [\v!eerste] [{\symbol[\v!eerstepagina]}] +\definesymbol [\v!vorige] [{\symbol[\v!vorigepagina]}] +\definesymbol [\v!volgende] [{\symbol[\v!volgendepagina]}] +\definesymbol [\v!laatste] [{\symbol[\v!laatstepagina]}] +\definesymbol [\v!ergens] [\gotosomewherecharacter] +\definesymbol [\v!nergens] [\gonowherecharacter] + +\definesymbol [\v!achteruit] [{\symbol[\v!vorigepagina]}] +\definesymbol [\v!vooruit] [{\symbol[\v!volgendepagina]}] + +%D These symbols are taken from the Computer Moders Roman +%D symbol set or, when present, from the additional symbols of +%D the American Mathematical Society. Of course one can use +%D his or her own symbols by redefining them. + +\def\dogotocharacter#1#2#3% + {\ifx#1\undefined#2\else#3\fi} + +\def\gotobegincharacter% + {\hbox + {\dogotocharacter\blacktriangleleft + {\setbox0=\hbox{$\triangleleft$}% + \vrule\!!width.085ex\!!height1.075\ht0\!!depth\dp0 + \kern-.11ex\box0} + {\setbox0=\hbox{$\blacktriangleleft$}% + \setbox2=\hbox{\vrule\!!height\ht0\!!depth\dp0\!!width.25ex}% + \hbox{\lower.03ex\box2\kern-.35ex\box0}}}} + +\def\gotoendcharacter% + {\hbox + {\dogotocharacter\blacktriangleright + {\setbox0=\hbox{\mathematics{\triangleright}}% + \copy0\kern-.11ex + \vrule\!!width.085ex\!!height1.075\ht0\!!depth\dp0} + {\setbox0=\hbox{$\blacktriangleright$}% + \setbox2=\hbox{\vrule\!!height\ht0\!!depth\dp0\!!width.25ex}% + \hbox{\box0\kern-.35ex\lower.03ex\box2}}}} + +\def\gobackwardcharacter% + {\mathematics{\dogotocharacter\blacktriangleright\triangleleft\blacktriangleleft}} + +\def\goforwardcharacter% + {\mathematics{\dogotocharacter\blacktriangleleft\triangleright\blacktriangleright}} + +\def\gonowherecharacter% + {\mathematics{\bullet}} + +%\def\gotosomewherecharacter% {} permits ^\... +% {{\hbox{\hsmash{\gobackwardcharacter}\goforwardcharacter}}} + +\def\gotosomewherecharacter% + {{\hbox{\hsmash{\symbol[\v!vorige]}\symbol[\v!volgende]}}} + +\unexpanded\def\closecharacter% + {\dogotocharacter\boxtimes + {\ruledhbox{\mathematics{\times}}} + {\mathematics{\boxtimes}}} + +\def\goforjumpcharacter% + {\hbox{\goforwardcharacter \kern-.5em\goforwardcharacter}} + +\def\gobackjumpcharacter% + {\hbox{\gobackwardcharacter\kern-.5em\gobackwardcharacter}} + +\protect + +\endinput |