diff options
Diffstat (limited to 'tex')
45 files changed, 1127 insertions, 579 deletions
diff --git a/tex/context/base/cont-new.tex b/tex/context/base/cont-new.tex index 42faa8da3..8b21feee7 100644 --- a/tex/context/base/cont-new.tex +++ b/tex/context/base/cont-new.tex @@ -23,6 +23,13 @@ \ifx\normalcompound\undefined \let\normalcompound=| \fi +\def\defXMLattributestring#1#2#3#4% + {\ifcsname\@@XMLvariable:#2:#3\endcsname + \@EA\convertcommand\csname\@@XMLvariable:#2:#3\endcsname\to#1% + \else + \convertargument#4\to#1% + \fi} + \bgroup \catcode`\<=\active % usage: \expanded{\rescanXMLatttributes{fo:table-cell}} diff --git a/tex/context/base/context.tex b/tex/context/base/context.tex index f5b5b81f5..05033cb1b 100644 --- a/tex/context/base/context.tex +++ b/tex/context/base/context.tex @@ -31,7 +31,7 @@ %D 2004.8.30 the low level interface is english. Watch out and adapt %D your styles an modules. -\def\contextversion{2004.12.06} +\def\contextversion{2004.12.17} %D Welcome to the main module. When this module is ran through %D \type{initex} or \type {tex -i} or \type {whatevertex} using diff --git a/tex/context/base/core-fld.tex b/tex/context/base/core-fld.tex index 8f8c5f263..b926b8a7a 100644 --- a/tex/context/base/core-fld.tex +++ b/tex/context/base/core-fld.tex @@ -486,7 +486,7 @@ {\def\@@DriverFieldValues{yes,no}} {\def\@@DriverFieldValues{#4}}% \doifelsenothing{#5} - {\dogetcommacommandelement2\from\@@DriverFieldValues\to\@@DriverFieldDefault + {\dogetcommacommandelement2\from\@@DriverFieldValues \to\@@DriverFieldDefault \dogetcommacommandelement1\from\@@DriverFieldDefault\to\@@DriverFieldDefault} {\def\@@DriverFieldDefault{#5}}% \setfield{#1}{#2}{}{}{\@@DriverFieldKids}{#3}{\@@DriverFieldMode\@@DriverFieldFree\@@DriverFieldAuto}{\@@DriverFieldValues}{\@@DriverFieldDefault}} diff --git a/tex/context/base/core-fnt.tex b/tex/context/base/core-fnt.tex index 5315f4d88..47c08451b 100644 --- a/tex/context/base/core-fnt.tex +++ b/tex/context/base/core-fnt.tex @@ -143,14 +143,11 @@ %D Some precautions for a \PLAIN\ \TEX\ definition. -\let\normalcap\cap +\unexpanded\def\normalcap{\dohandlemathtoken{cap}} +\unexpanded\def\normalCap{\dohandlemathtoken{Cap}} -\def\cap - {\ifmmode - \expandafter\normalcap - \else - \expandafter\smallcapped - \fi} +\def\cap{\mathortext\normalcap\smallcapped} +\def\Cap{\mathortext\normalCap\SmallCapped} %D \macros %D {setupcapitals} @@ -501,17 +498,26 @@ \def\betweenunderbarspaces {\hskip\currentspaceskip} -\unexpanded\def\dounderbar#1#2% +% \unexpanded\def\dounderbar#1#2% +% {\let\betweenisolatedwords#1% +% \processisolatedwords{#2}\dodounderbar +% \egroup} + +% \unexpanded\def\underbar +% {\bgroup +% \increment\underbarlevel +% \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\underbar - {\bgroup - \increment\underbarlevel - \donetrue - \dounderbar\betweenunderbarwords} - \unexpanded\def\underbars {\bgroup \increment\underbarlevel @@ -557,6 +563,8 @@ \processisolatedwords{#1}\dooverstrike \egroup} +\def\underbarparameter#1{\csname\??on#1\csname} + \def\setupunderbar {\dodoubleargument\getparameters[\??on]} diff --git a/tex/context/base/core-ini.tex b/tex/context/base/core-ini.tex index 3dde16abc..a63b0c74e 100644 --- a/tex/context/base/core-ini.tex +++ b/tex/context/base/core-ini.tex @@ -40,6 +40,7 @@ \appendtoks \insertparagraphintro \to \everypar \appendtoks \flushpostponedbookmark \to \neverypar +\appendtoks \flushpostponedbookmark \to \everylistentry \appendtoks \flushnotes \to \everydisplay \appendtoks \adjustsidefloatdisplaylines \to \everydisplay diff --git a/tex/context/base/core-lst.tex b/tex/context/base/core-lst.tex index b3283bb65..9f7fec285 100644 --- a/tex/context/base/core-lst.tex +++ b/tex/context/base/core-lst.tex @@ -39,6 +39,7 @@ \def\dodowritetolist#1#2#3#4% {\begingroup + \expanded{\everylistentry\emptytoks\the\everylistentry}% \emptytoks, else loop \def\currentlist{#1}% \convertexpanded{\??li\currentlist}{#3}\asciilistentry \makesectionformat diff --git a/tex/context/base/core-ltb.tex b/tex/context/base/core-ltb.tex index ba0ba862d..ee00501a1 100644 --- a/tex/context/base/core-ltb.tex +++ b/tex/context/base/core-ltb.tex @@ -482,8 +482,8 @@ {\setuplinetable[\c!maxwidth=\zeropoint]}% \processaction [\linetableparameter\c!stretch] - [\v!no=>{\setuplinetable[\c!stretch=\maxdimen]},% no stretch - \v!yes=>{\setuplinetable[\c!stretch=\zeropoint]}]% max stretch + [ \v!no=>{\setuplinetable[\c!stretch=\maxdimen]},% no stretch + \v!yes=>{\setuplinetable[\c!stretch=\zeropoint]}]% max stretch \chardef\linetablerepeat\linetableparameter\c!nleft \chardef\linetablesplitstate % = \ifdim\linetableparameter\c!maxwidth>\zeropoint @@ -754,14 +754,12 @@ \doifnotmode{demo}{\endinput} -% to be documented, see stan's ledger styles for an example +\setuplinetable[n=6,m={2,2,2},lines=25] % m ? -\setuplinetable[n=6,m={2,2,2},regels=25] - -\setuplinetable[c][1][width=2cm,background=color,backgroundcolor=red] -\setuplinetable[c][4][width=3cm,background=color,backgroundcolor=yellow] -\setuplinetable[c][6][width=3cm,background=color,backgroundcolor=magenta] -\setuplinetable[r][odd][background=color,backgroundcolor=gray] +\setuplinetable[c][1] [width=2cm,background=color,backgroundcolor=red] +\setuplinetable[c][4] [width=3cm,background=color,backgroundcolor=yellow] +\setuplinetable[c][6] [width=3cm,background=color,backgroundcolor=magenta] +\setuplinetable[r][odd] [background=color,backgroundcolor=gray] \setuplinetable[r][even][background=color,backgroundcolor=green] \starttext @@ -774,15 +772,20 @@ \startlinetable \NC aaa\crlf aaa \NC bb \NC c \NC ddddd \NC eeee \NC ff \NC \NR -\dorecurse{100} - {\NC aaa \NC bb \NC c \NC ddddd \NC eeee \NC ff \NC \NR} +\dorecurse{100}{\NC aaa \NC bb \NC c \NC ddddd \NC eeee \NC ff \NC \NR} \stoplinetable \startlinetable \NC[style=slanted,color=green,background=color,backgroundcolor=darkred,nx=2,uitlijnen=middle] xxx \NC yy \NC ddddd \NC eeee \NC ff \NC \NR -\dorecurse{100} - {\NC aaa \NC bb \NC c \NC ddddd \NC eeee \NC ff \NC \NR} +\dorecurse{100}{\NC aaa \NC bb \NC c \NC ddddd \NC eeee \NC ff \NC \NR} \stoplinetable +% \startbuffer[lt] +% \NC aaa\crlf aaa \NC bb \NC c \NC ddddd \NC ee \NC ff \NC \NR +% \NC aaa\crlf aaa \NC b \NC cc \NC ddd \NC eeee \NC f \NC \NR +% \stopbuffer +% +% \processlinetablebuffer[lt] + \stoptext diff --git a/tex/context/base/core-mis.tex b/tex/context/base/core-mis.tex index c86df8716..701da14f6 100644 --- a/tex/context/base/core-mis.tex +++ b/tex/context/base/core-mis.tex @@ -778,6 +778,9 @@ \c!before=\startnarrower, \c!after=\stopnarrower] +\appendtoks\def\quotation#1{"#1"}\to\simplifiedcommands +\appendtoks\def\quote #1{'#1'}\to\simplifiedcommands + %D The next features was so desperately needed by Giuseppe %D Bilotta that he made a module for it. Since this is a %D typical example of core functionality, I decided to extend @@ -2358,9 +2361,9 @@ {\getparameters[\??ro][#1]% \processaction [\@@rolocation] - [\v!depth=>\!!counta\plusthree\donefalse,% depth fit - raw box - \v!fit=>\!!counta\plustwo \donefalse,% depth tight - raw box - \v!broad=>\!!counta\plusone \donefalse,% nodepth fit - raw box + [ \v!depth=>\!!counta\plusthree\donefalse,% depth fit - raw box + \v!fit=>\!!counta\plustwo \donefalse,% depth tight - raw box + \v!broad=>\!!counta\plusone \donefalse,% nodepth fit - raw box \v!high=>\!!counta\plusone \donetrue,% nodepth fit - framed \s!default=>\!!counta\plusthree\donetrue,% depth fit - framed \s!unknown=>\!!counta\plusthree\donetrue]% depth fit - framed diff --git a/tex/context/base/core-not.tex b/tex/context/base/core-not.tex index 9d06c0567..93122ec99 100644 --- a/tex/context/base/core-not.tex +++ b/tex/context/base/core-not.tex @@ -635,25 +635,6 @@ \egroup \kern\notesignal\relax} % \relax is needed to honor spaces -% \def\dolastnotesymbol -% {\unskip\unskip -% \ifdim\lastkern=\notesignal -% \high{\kern\noteparameter\c!afstand}% gets the font right, hack ! -% \fi -% \nobreak -% \iflocation -% \naarbox -% {\high{\tx\lastnotenumber\domovednote\v!vorigepagina\v!volgendepagina}}% -% [\s!fnt:t:\internalfootreference]% -% \rawreference\s!fnt{\s!fnt:f:\internalfootreference}{}% -% \else -% \high{\tx\lastnotenumber\domovednote\v!vorigepagina\v!volgendepagina}% -% \ifconditional\pagewisenotes -% \rawreference\s!fnt{\s!fnt:f:\internalfootreference}{}% -% \fi -% \fi -% \globallet\lastnotesymbol\relax} - \def\dolastnotesymbol {\unskip\unskip \ifdim\lastkern=\notesignal diff --git a/tex/context/base/core-sec.tex b/tex/context/base/core-sec.tex index caf59baa0..9b07ba067 100644 --- a/tex/context/base/core-sec.tex +++ b/tex/context/base/core-sec.tex @@ -1580,7 +1580,7 @@ {\setglobalsystemreference\rt!list {\e!previous#1}{\getvalue{\e!previouslocal#1}}}% % -% {\definereference[\e!vorige#1][\getvalue{\e!vorigelokale#1}]% +% {\definereference[\e!previous#1][\getvalue{\e!previouslocal#1}]% % \def\stoplistreferences{\dostoplistreferences}} @@ -1594,7 +1594,7 @@ {\setglobalsystemreference\rt!list {\e!previous####1}{\getvalue{\e!currentlocal####1}}}% % -% {\definereference[\e!vorige####1][\getvalue{\e!huidigelokale####1}]% +% {\definereference[\e!previous####1][\getvalue{\e!currentlocal####1}]% % \processcommacommand[\updatedlistreferences]\docommando \globallet\updatelistreferences\relax diff --git a/tex/context/base/core-var.tex b/tex/context/base/core-var.tex index 7e67be23a..b181067fc 100644 --- a/tex/context/base/core-var.tex +++ b/tex/context/base/core-var.tex @@ -43,6 +43,7 @@ \newevery \everyendoftextbody \relax \newevery \everybeginofpar \relax \newevery \everyendofpar \relax +\newevery \everylistentry \relax %D For shared \type {\everymath} and \type {\everydisplay}: diff --git a/tex/context/base/core-ver.tex b/tex/context/base/core-ver.tex index f5b477849..cc6816a4b 100644 --- a/tex/context/base/core-ver.tex +++ b/tex/context/base/core-ver.tex @@ -61,7 +61,7 @@ \def\prettyidentifier {TEX} \def\prettypalet {} -\def\installprettytype% +\def\installprettytype {\dodoubleargument\doinstallprettytype} \def\doinstallprettytype[#1][#2]% map #1 onto #2 @@ -213,11 +213,15 @@ %D set the catcodes of \type{<} and \type{>} and then we start %D looking ahead. -%\unexpanded\def\type% -% {\bgroup -% \catcode`\<=\@@other -% \catcode`\>=\@@other -% \futurelet\next\dotype} +% \starttyping +% normal: \par \type{xx<<..xx..<<xx <<xx>> >>..>>xx} \par \type<<....>> \par \type<<..<<xx>>..>> \par +% normal: \par \type{xx<..xx..<xx <slanted> >..>xx} \par \type{<....>} \par \type{<..<xx>..>} +% \setuptype[option=slanted] +% slanted: \par \type{xx<<..sl..<<xx <<sl>> xx>>..sl..>>xx} \par \type<<..xx..>> \par \type<<..<<sl>>..>> \par +% slanted: \par \type{xx<<..sl..<xx <sl> xx>..sl..>>xx} \par \type<<..xx..>> \par \type<<..<sl>..>> \par +% \setuptype[option=none] +% none: \par \type{xx<<..xx..<<xx <<xx>> >>..>>xx} \par \type<<....>> \par \type<<..<<xx>>..>> \par +% \stoptyping \unexpanded\def\type {\dotype\empty} @@ -233,63 +237,6 @@ %D Next we distinguish between the three alternatives and call %D for the appropriate macros. -% \def\dotype% -% {\ifx\next\bgroup -% \initializetype -% \initializetypegrouping -% \def\next% -% {\afterassignment\protectfirsttype\let\next=}% -% \else\if\next<% -% \doifelse{\@@tyoptie}{\v!geen} -% {\initializetype -% \setupnotypegrouping -% \def\next% -% {\let\next=}} -% {\def\next<##1% -% {\initializetype -% \if##1<% -% \else -% \setupalternativetypegrouping -% ##1% -% \fi}}% -% \else -% \def\next##1% -% {\initializetype -% \catcode`##1=\@@endgroup}% -% \fi\fi -% \verbatimcolor -% \next} -% -% \def\dodotype% -% {\ifx\next\bgroup -% \initializetype -% \verbatimcolor -% \initializetypegrouping -% \def\next% -% {\afterassignment\protectfirsttype\let\next=}% -% \else\if\next<% -% \doifelsevalue{\??ty\@@currenttype\c!optie}{\v!geen} -% {\initializetype -% \verbatimcolor -% \setupnotypegrouping -% \def\next% -% {\let\next=}} -% {\def\next<##1% -% {\initializetype -% \verbatimcolor -% \if##1<% -% \else -% \setupalternativetypegrouping -% ##1% -% \fi}}% -% \else -% \def\next##1% -% {\initializetype -% \verbatimcolor -% \catcode`##1=\@@endgroup}% -% \fi\fi -% \next} - \def\dodotypeA {\initializetype \initializetypegrouping @@ -305,8 +252,10 @@ \def\dodotypeC<#1% {\initializetype \verbatimcolor - \if#1<\else - \setupalternativetypegrouping#1% + \if#1<% + \@EA\setupalternativetypegrouping + \else + \@EA#1% \fi} \def\dodotypeD#1% @@ -349,8 +298,26 @@ \gdef\setupalternativetypegrouping {\catcode`\<=\@@active \catcode`\>=\@@active - \def<{\bgroup\switchslantedtype}% - \def>{\egroup}} + \def\doless + {\ifx<\next + \def\next + {\bgroup\switchslantedtype + \let\next=}% + \else + \let\next\lesscharacter + \fi + \next}% + \def\domore + {\ifx>\next + \def\next + {\egroup + \let\next=}% + \else + \let\next\morecharacter + \fi + \next}% + \def<{\futurelet\next\doless}% + \def>{\futurelet\next\domore}} \egroup \def\setupnotypegrouping @@ -376,7 +343,7 @@ %D {\ifx\next<% %D \def\next{\bgroup\switchslantedtype\let\next=}% %D \else -%D \let\next=\lesscharacter +%D \let\next\lesscharacter %D \fi %D \next}% %D \futurelet\next\do}% @@ -385,7 +352,7 @@ %D {\ifx\next>% %D \def\next{\egroup\let\next=}% %D \else -%D \let\next=\morecharacter +%D \let\next\morecharacter %D \fi %D \next}% %D \futurelet\next\do}} @@ -394,12 +361,12 @@ %D %D The final implementation looks a bit further and treats the %D lone \type{<<} and \type{>>} a bit different. The \type -%D {\hbox{}} prevents ligatures, which unfortunately turn up +%D {\null} prevents ligatures, which unfortunately turn up %D in Lucida fonts. \def\doenterdoublelesstype {\ifx\next\egroup - \lesscharacter\hbox{}\lesscharacter + \lesscharacter\null\lesscharacter \else \bgroup\switchslantedtype \let\doenterdoublemoretype\egroup @@ -408,7 +375,7 @@ \def\doenterdoublemoretype {\def\doenterdoubletype {\ifx\next\egroup - \morecharacter\hbox{}\morecharacter + \morecharacter\null\morecharacter \fi}} \bgroup @@ -420,19 +387,17 @@ \def\doless {\ifx<\next \def\next - {\def\enterdoubletype - {\futurelet\next\doenterdoublelesstype}% + {\def\enterdoubletype{\futurelet\next\doenterdoublelesstype}% \afterassignment\enterdoubletype \let\next=}% \else - \let\next=\lesscharacter + \let\next\lesscharacter \fi \next}% \def\domore {\ifx>\next \def\next - {\def\enterdoubletype - {\futurelet\next\doenterdoublemoretype}% + {\def\enterdoubletype{\futurelet\next\doenterdoublemoretype}% \afterassignment\enterdoubletype \let\next=}% \else @@ -455,11 +420,6 @@ \fi \fi} -%\def\setupcommandsintype#1% -% {\setupgroupedtype -% \edef\!!stringa{\getvalue{#1\c!escape}}% -% \@EA\catcode\@EA`\!!stringa=\@@escape} - \def\setupcommandsintype#1% can also be \string\ {\setupgroupedtype \edef\\{\getvalue{#1\c!escape}}% @@ -515,11 +475,6 @@ %D \type{\initializetype} which in return calls for the support %D macro \type{\setupinlineverbatim}. -%\def\initializetype% -% {\let\obeylines=\ignorelines -% \setupcommonverbatim\??ty -% \setupinlineverbatim} - \let\@@currenttype\empty \def\initializetype @@ -548,13 +503,13 @@ %D The setups for inline verbatim default to: \setuptype - [\c!space=\v!off, + [ \c!space=\v!off, \c!color=, - \c!style=\tt\tf, % \tttf gives problems with {\tx \type...} - \c!page=\v!no, + \c!style=\tt\tf, % \tttf gives problems with {\tx \type...} + \c!page=\v!no, \c!tab=\v!no, \c!palet=colorpretty, - \c!option=\v!normal] + \c!option=\v!normal] %D \macros %D {typ,obeyhyphens,obeybreakpoints} diff --git a/tex/context/base/font-bfm.tex b/tex/context/base/font-bfm.tex index e7f510aad..a7bf398ef 100644 --- a/tex/context/base/font-bfm.tex +++ b/tex/context/base/font-bfm.tex @@ -111,9 +111,7 @@ \appendtoks \dosetmathfamily\mrbffam\textface\scriptface\scriptscriptface\c!mrbf\mrfallback \dosetmathfamily\mibffam\textface\scriptface\scriptscriptface\c!mibf\empty - \dosetskewchar\defaultskewcharmi \dosetmathfamily\sybffam\textface\scriptface\scriptscriptface\c!sybf\empty - \dosetskewchar\defaultskewcharsy \dosetmathfamily\exbffam\textface\textface \textface \c!exbf\empty \dosetmathfamily\mabffam\textface\scriptface\scriptscriptface\c!mabf\empty \dosetmathfamily\mbbffam\textface\scriptface\scriptscriptface\c!mbbf\empty @@ -121,6 +119,11 @@ \to \boldmathstrategies \appendtoks + \dosetskewchar\mifam\defaultskewcharmi + \dosetskewchar\syfam\defaultskewcharsy +\to \boldmathstrategies + +\appendtoks \dosetsymbfamily\mrbffam\textface\scriptface\scriptscriptface\c!mrbf \dosetsymbfamily\mibffam\textface\scriptface\scriptscriptface\c!mibf \dosetsymbfamily\sybffam\textface\scriptface\scriptscriptface\c!sybf diff --git a/tex/context/base/font-ini.tex b/tex/context/base/font-ini.tex index 7805654ff..fc07a4d52 100644 --- a/tex/context/base/font-ini.tex +++ b/tex/context/base/font-ini.tex @@ -3106,8 +3106,8 @@ {\edef\fontstyle{#1}% \setcurrentfontstyle\normalizedbodyfontsize} -\chardef\defaultskewcharmi='177 -\chardef\defaultskewcharsy='60 +\chardef\defaultskewcharmi=127 % '177 +\chardef\defaultskewcharsy= 48 % '60 % \def\dosetskewchar#1% % {\skewchar\font\ifx\@@fontskewchar\empty#1\else\@@fontskewchar\fi} @@ -3345,27 +3345,32 @@ \the\everybodyfont} % needed ? %D \macros -%D {os} +%D {os,frak, goth, cal} %D %D Old style numerals can be typeset with \type{\os} and look %D like {\os 1234567890} instead of the more common looking %D 1234567890. - -\definefont[os][OldStyle sa *] % \currentfontscale] - -\definefontsynonym[OldStyle][Serif] - -%D \macros -%D {frak, goth, cal} %D %D On behalf of {\frac Tobias Burnus}, we define some more of %D these. Later we will link these names to real file names. -\definefont [frak] [Fraktur sa *] -\definefont [goth] [Gothic sa *] -\definefont [cal] [Calligraphic sa *] -\definefont [bbd] [Blackboard sa *] +% older +% +% \definefont [os] [OldStyle sa *] +% \definefont [frak] [Fraktur sa *] +% \definefont [goth] [Gothic sa *] +% \definefont [cal] [Calligraphic sa *] +% \definefont [bbd] [Blackboard sa *] +% +% newer + +\def\os {\mathortext{\fam\purefamily {oldstyle}}{\symbolicfont {OldStyle}}} +\def\frak{\mathortext{\fam\purefamily {fraktur}}{\symbolicfont {Fraktur}}} +\def\goth{\mathortext{\fam\purefamily {gothic}}{\symbolicfont {Gothic}}} +\def\cal {\mathortext{\fam\purefamily{calligraphic}}{\symbolicfont{Calligraphic}}} +\def\bbd {\mathortext{\fam\purefamily {blackboard}}{\symbolicfont {Blackboard}}} +\definefontsynonym [OldStyle] [Serif] \definefontsynonym [Fraktur] [Serif] \definefontsynonym [Gothic] [Serif] \definefontsynonym [Calligraphic] [Serif] @@ -3377,17 +3382,37 @@ %D These macros assume that we use text fonts, and not math %D families. -% \def\fraktur #1{\mathematics{\frak#1}} -% \def\gothic #1{\mathematics{\goth#1}} -% \def\calligraphic#1{\mathematics{\cal #1}} -% \def\blackboard #1{\mathematics{\bbd #1}} - \ifx\mathtext\undefined \let\mathtext\hbox \fi -\def\fraktur #1{\mathortext\mathtext\donothing{\frak#1}} -\def\gothic #1{\mathortext\mathtext\donothing{\goth#1}} -\def\calligraphic#1{\mathortext\mathtext\donothing{\cal #1}} -\def\blackboard #1{\mathortext\mathtext\donothing{\bbd #1}} +\def\fraktur #1{\mathortext\domathtext\donothing{\frak#1}} +\def\gothic #1{\mathortext\domathtext\donothing{\goth#1}} +\def\calligraphic#1{\mathortext\domathtext\donothing{\cal #1}} +\def\blackboard #1{\mathortext\domathtext\donothing{\bbd#1}} + +%D Torture test: +%D +%D \starttyping +%D \usetypescript[modern] [texnansi] +%D \usetypescript[lucida] [texnansi] +%D \usetypescript[palatino][texnansi] +%D \usetypescript[times] [texnansi] +%D \usetypescript[fourier] [ec] +%D +%D \startbuffer +%D \section{\blackboard{T\high{\blackboard{T}}} \blackboard{E}\high{\blackboard{E}} \blackboard{X}\high{\blackboard{X}}} +%D +%D {\fontclass: 123 \os123 \cal TEX $\os 123$} +%D +%D $\blackboard{T}^{\blackboard{T}} \blackboard{E}^{\blackboard{E}} \blackboard{X}^{\blackboard{X}}$ +%D \blackboard{T}\high{\blackboard{T}} \blackboard{E}\high{\blackboard{E}} \blackboard{X}\high{\blackboard{X}} +%D \stopbuffer +%D +%D {\setupbodyfont[lucida] \getbuffer} +%D {\setupbodyfont[modern] \getbuffer} +%D {\setupbodyfont[palatino] \getbuffer} +%D {\setupbodyfont[times] \getbuffer} +%D {\setupbodyfont[fourier] \getbuffer} +%D \stoptyping %D \macros %D {definebodyfontswitch} diff --git a/tex/context/base/font-run.tex b/tex/context/base/font-run.tex index a30776cb8..0cb5ecdd5 100644 --- a/tex/context/base/font-run.tex +++ b/tex/context/base/font-run.tex @@ -22,7 +22,7 @@ \parindent\zeropoint \setlocalhsize \doifelsenothing{#1} - {\def\title{[\the\korpsgrootte]}} + {\def\title{[\the\bodyfontsize]}} {\switchtobodyfont[#1]\def\title{[#1]}} \doifsomething\fontclass {\doifnot{[\fontclass]}\title @@ -111,6 +111,7 @@ \gdef\doshowfont[#1]% {\bgroup + \boxrulewidth=.1pt \setupcolors[\c!state=\v!local]% \iffirstargument \definefont[\s!dummy][#1]\dummy diff --git a/tex/context/base/java-exa.tex b/tex/context/base/java-exa.tex index 21b366174..0617f5e56 100644 --- a/tex/context/base/java-exa.tex +++ b/tex/context/base/java-exa.tex @@ -209,7 +209,8 @@ } % exa_filename = exa_filename.replace(/\\\\/g,'/') ; % exa_filelist = exa_filelist.replace(/\\\\/g,'/') ; - str = "<exa:request><exa:application>" ; + str = "<?xml version='1.0' ?>\\n" ; + str = str+"<exa:request xmlns:exa='http://www.pragma-ade.com/schemas/example.rng'><exa:application>" ; if (exa_filelist == "") { exa_filelist = exa_registered ; } else { if (exa_registered != "") { diff --git a/tex/context/base/math-ams.tex b/tex/context/base/math-ams.tex index 866228324..3df63ff48 100644 --- a/tex/context/base/math-ams.tex +++ b/tex/context/base/math-ams.tex @@ -15,9 +15,9 @@ % maybe we should just include these into the default tex one -%definefamilysynonym [ams] [blackboard] [mb] +\definefamilysynonym [default] [blackboard] [mb] -\startmathcollection [default] % [ams] +\startmathcollection [default] \definemathsymbol [varGamma] [ord] [letters] ["00] \definemathsymbol [varDelta] [ord] [letters] ["01] @@ -33,13 +33,13 @@ \stopmathcollection -\startmathcollection[default] % [ams] +\startmathcollection[default] \definemathsymbol [internalAnd] [rel] [operators] ["26] \stopmathcollection -\startmathcollection [default] % [ams] +\startmathcollection [default] \definemathsymbol [boxdot] [bin] [ma] ["00] \definemathsymbol [boxplus] [bin] [ma] ["01] @@ -180,7 +180,7 @@ \stopmathcollection -\startmathcollection [default] % [ams] +\startmathcollection [default] \definemathcommand [integers] {\blackboard{Z}} \definemathcommand [reals] {\blackboard{R}} @@ -191,7 +191,7 @@ \stopmathcollection -\startmathcollection [default] % [ams] +\startmathcollection [default] \definemathsymbol [lvertneqq] [rel] [mb] ["00] \definemathsymbol [gvertneqq] [rel] [mb] ["01] @@ -289,12 +289,17 @@ \stopmathcollection -\startmathcollection [default] % [ams] +\startmathcollection [default] \definemathcommand [yen] [nothing] {\mathhexbox{\hexmafam}55} \definemathcommand [checkmark] [nothing] {\mathhexbox{\hexmafam}58} \definemathcommand [circledR] [nothing] {\mathhexbox{\hexmafam}72} \definemathcommand [maltese] [nothing] {\mathhexbox{\hexmafam}7A} + +\stopmathcollection + +\startmathcollection [default] + \definemathcommand [dashrightarrow] [rel] {\dabar@\dabar@ \mathchar"0C4B}% \definemathcommand [dashleftarrow] [rel] {\mathchar"0C4C\dabar@ \dabar@}% \definemathcommand [dasharrow] [rel] {\dabar@\dabar@ \mathchar"0C4B}% @@ -321,7 +326,7 @@ \mathaccent"0\purefamilyhex{ex}65{#1}% \fi} -\startmathcollection [default] % [ams] +\startmathcollection [default] \definemathcommand [widehat] {\AMSwidehat} \definemathcommand [widetilde] {\AMSwidetilde} diff --git a/tex/context/base/math-eul.tex b/tex/context/base/math-eul.tex index 75dec7156..b3f4535dd 100644 --- a/tex/context/base/math-eul.tex +++ b/tex/context/base/math-eul.tex @@ -1,6 +1,6 @@ %D \module %D [ file=math-eul, -%D version=2003.02.03, +%D version=2003.02.03, %D title=\CONTEXT\ Math Macros, %D subtitle=Virtual Euler Specials, %D author={Hans Hagen \& Taco Hoekwater \& Adam Lindsay}, @@ -11,93 +11,237 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. Further modified by Adam Lindsay. -\unprotect +\unprotect %D We follow the following mappings from type-eul: +%D %D mr [MathRoman] [Euler-Roman] [zeurm10] -%D mi [MathItalic] [Euler-Italic] [zeurm10] + +%D mi [MathItalic] [Euler-Italic] [eufm10] + %D ex [MathExtension] [Euler-Extension] [zeuex10] %D sy [MathSymbol] [Euler-Symbol] [zeusm10] -%D mb [MathBeta] [Charter-Roman] [bchr8r] -%D mc [MathGamma] [Euler-Fraktur] [eufm10] + +%D mb [MathBeta] [Charter-Roman] [bchr8r] XXX +%D mc [MathGamma] [Euler-Fraktur] [eufm10] XXX %D %D The inclusion of Bitstream Charter was originally for the text accents. %D Obviously, it's not a proper ``MathBeta'' font. - -%D The varrho and varsigma characters don't exist in eulervm, +%D The varrho and varsigma characters don't exist in eulervm, %D so we point at the normal types. + +\definefamilysynonym [eul] [calligraphic] [sy] +\definefamilysynonym [eul] [oldstyle] [mi] +\definefamilysynonym [eul] [gothic] [mi] +\definefamilysynonym [eul] [fraktur] [mi] + +\definefamilysynonym [eul] [lcgreek] [mr] +\definefamilysynonym [eul] [ucgreek] [mr] +\definefamilysynonym [eul] [vargreek] [mr] + +%% Well, you don't know until you try! +%\definefamilysynonym [eul] [accents] [Serif] + +\startmathcollection [eul] + +\definemathsymbol [varrho] [nothing] [vargreek] ["1A] +\definemathsymbol [varsigma] [nothing] [vargreek] ["1B] + +%D Changes necessitated by collapsing mr \& mi into one: +\definemathsymbol [imath] [nothing] [mr] ["7B] +\definemathsymbol [jmath] [nothing] [mr] ["7C] +\definemathsymbol [ell] [nothing] [mr] ["60] +\definemathsymbol [wp] [nothing] [mr] ["7D] +\definemathsymbol [partial] [nothing] [mr] ["40] + +\definemathsymbol [flat] [ord] [mr] ["5B] +\definemathsymbol [natural] [ord] [mr] ["5C] +\definemathsymbol [sharp] [ord] [mr] ["5D] + +\definemathsymbol [triangleleft] [bin] [mr] ["2F] +\definemathsymbol [triangleright][bin] [mr] ["2E] + +\definemathsymbol [star] [bin] [mr] ["3F] + +\definemathsymbol [smile] [rel] [mr] ["5E] +\definemathsymbol [frown] [rel] [mr] ["5F] +\definemathsymbol [leftharpoonup] [rel] [mr] ["28] +\definemathsymbol [leftharpoondown] [rel] [mr] ["29] +\definemathsymbol [rightharpoonup] [rel] [mr] ["2A] +\definemathsymbol [rightharpoondown] [rel] [mr] ["2B] +\definemathsymbol [lhook] [rel] [mr] ["2C] +\definemathsymbol [rhook] [rel] [mr] ["2D] + +\definemathsymbol [mathperiod] [ord] [mr] ["3A] +\definemathsymbol [textperiod] [punct] [mr] ["3A] + +\definemathsymbol [mathcomma] [ord] [mr] ["3B] +\definemathsymbol [textcomma] [punct] [mr] ["3B] + +\definemathsymbol [ldotp] [punct] [mr] ["3A] + +% extras from AMS: +\definemathsymbol [hslash] [ord] [mr] ["80] %beauty over truth + +\stopmathcollection + \startmathcollection [eul] -\definemathsymbol [varrho] [nothing] [vargreek] ["1A] -\definemathsymbol [varsigma] [nothing] [vargreek] ["1B] +% Ugh. no way around this to keep it compact in the font defs. + +\definemathcharacter [a] [nothing] [mr] ["61] +\definemathcharacter [b] [nothing] [mr] ["62] +\definemathcharacter [c] [nothing] [mr] ["63] +\definemathcharacter [d] [nothing] [mr] ["65] +\definemathcharacter [e] [nothing] [mr] ["65] +\definemathcharacter [f] [nothing] [mr] ["66] +\definemathcharacter [g] [nothing] [mr] ["67] +\definemathcharacter [h] [nothing] [mr] ["68] +\definemathcharacter [i] [nothing] [mr] ["69] +\definemathcharacter [j] [nothing] [mr] ["6A] +\definemathcharacter [k] [nothing] [mr] ["6B] +\definemathcharacter [l] [nothing] [mr] ["6C] +\definemathcharacter [m] [nothing] [mr] ["6D] +\definemathcharacter [n] [nothing] [mr] ["6E] +\definemathcharacter [o] [nothing] [mr] ["6F] +\definemathcharacter [p] [nothing] [mr] ["70] +\definemathcharacter [q] [nothing] [mr] ["71] +\definemathcharacter [r] [nothing] [mr] ["72] +\definemathcharacter [s] [nothing] [mr] ["73] +\definemathcharacter [t] [nothing] [mr] ["74] +\definemathcharacter [u] [nothing] [mr] ["75] +\definemathcharacter [v] [nothing] [mr] ["76] +\definemathcharacter [w] [nothing] [mr] ["77] +\definemathcharacter [x] [nothing] [mr] ["78] +\definemathcharacter [y] [nothing] [mr] ["79] +\definemathcharacter [z] [nothing] [mr] ["7A] + +\definemathcharacter [A] [nothing] [mr] ["41] +\definemathcharacter [B] [nothing] [mr] ["42] +\definemathcharacter [C] [nothing] [mr] ["43] +\definemathcharacter [D] [nothing] [mr] ["45] +\definemathcharacter [E] [nothing] [mr] ["45] +\definemathcharacter [F] [nothing] [mr] ["46] +\definemathcharacter [G] [nothing] [mr] ["47] +\definemathcharacter [H] [nothing] [mr] ["48] +\definemathcharacter [I] [nothing] [mr] ["49] +\definemathcharacter [J] [nothing] [mr] ["4A] +\definemathcharacter [K] [nothing] [mr] ["4B] +\definemathcharacter [L] [nothing] [mr] ["4C] +\definemathcharacter [M] [nothing] [mr] ["4D] +\definemathcharacter [N] [nothing] [mr] ["4E] +\definemathcharacter [O] [nothing] [mr] ["4F] +\definemathcharacter [P] [nothing] [mr] ["50] +\definemathcharacter [Q] [nothing] [mr] ["51] +\definemathcharacter [R] [nothing] [mr] ["52] +\definemathcharacter [S] [nothing] [mr] ["53] +\definemathcharacter [T] [nothing] [mr] ["54] +\definemathcharacter [U] [nothing] [mr] ["55] +\definemathcharacter [V] [nothing] [mr] ["56] +\definemathcharacter [W] [nothing] [mr] ["57] +\definemathcharacter [X] [nothing] [mr] ["58] +\definemathcharacter [Y] [nothing] [mr] ["59] +\definemathcharacter [Z] [nothing] [mr] ["5A] + \stopmathcollection \startmathcollection [eul] -\definemathcharacter [!] [close] [mc] ["21] -\definemathcharacter [(] [open] [mc] ["28] -\definemathcharacter [)] [close] [mc] ["29] -\definemathcharacter [+] [bin] [mc] ["2B] + +\definemathcharacter [!] [close] [sy] ["A1] +\definemathcharacter [(] [open] [sy] ["A8] +\definemathcharacter [)] [close] [sy] ["A9] +\definemathcharacter [+] [bin] [sy] ["AB] \definemathcharacter [:] [rel] [sy] ["BA] \definemathcharacter [;] [punct] [sy] ["BB] -\definemathcharacter [=] [rel] [mi] ["82] +\definemathcharacter [=] [rel] [sy] ["BD] \definemathcharacter [?] [close] [sy] ["BF] \definemathcharacter [91] [open] [sy] ["DB] % [ \definemathcharacter [93] [close] [sy] ["DD] % ] + +\definemathcharacter [,] [punct] [mr] ["3B] +\definemathcharacter [.] [ord] [mr] ["3A] +\definemathcharacter [/] [ord] [mr] ["3D] +\definemathcharacter [<] [rel] [mr] ["3C] +\definemathcharacter [>] [rel] [mr] ["3E] + \stopmathcollection \startmathcollection [eul] + \definemathcharacter [(] [nothing] [sy] ["A8] [ex] ["00] \definemathcharacter [)] [nothing] [sy] ["A9] [ex] ["01] \definemathcharacter [91] [nothing] [sy] ["DB] [ex] ["02] % [ \definemathcharacter [93] [nothing] [sy] ["DD] [ex] ["03] % ] -\definemathcharacter [/] [nothing] [mi] ["3D] [ex] ["0E] +\definemathcharacter [/] [nothing] [mr] ["3D] [ex] ["0E] + \stopmathcollection \startmathcollection [eul] -\definemathsymbol [hbar] [nothing] [mi] ["80] + +\definemathsymbol [hbar] [nothing] [mr] ["80] + \stopmathcollection -%D I used my discretion in substituting Charter here for the CM glyphs -%D brought in by the eulervm virtual font \startmathcollection [eul] -\definemathsymbol [ddagger] [bin] [mb] ["87] -\definemathsymbol [dagger] [bin] [mb] ["86] + +\definemathsymbol [ddagger] [bin] [sy] ["7A] +\definemathsymbol [dagger] [bin] [sy] ["79] + \stopmathcollection \startmathcollection [eul] + \definemathsymbol [colon] [punct] [sy] ["BA] + \stopmathcollection -%D This is very hackish; it brings in text accents from the -%D well-matched Bitstream Charter. +%D This used to be very hackish; it brought in text +%D accents from the well-matched Bitstream Charter. + +%D But now, these characters don't exist. I would prefer to pull +%D them from the text font, but I don't know how. +%D Instead, I'm just pointing to null characters! + \startmathcollection [eul] -\definemathsymbol [acute] [accent] [mb] ["B4] -\definemathsymbol [grave] [accent] [mb] ["1E] -\definemathsymbol [ddot] [accent] [mb] ["A8] -\definemathsymbol [tilde] [accent] [mb] ["98] -\definemathsymbol [bar] [accent] [mb] ["AF] -\definemathsymbol [breve] [accent] [mb] ["0B] -\definemathsymbol [check] [accent] [mb] ["10] -%\definemathsymbol [hat] [accent] [mc] ["5E] -\definemathsymbol [hat] [accent] [mb] ["88] -\definemathsymbol [dot] [accent] [mb] ["01] + +\definemathsymbol [acute] [accent] [mr] ["90] +\definemathsymbol [grave] [accent] [mr] ["91] +\definemathsymbol [ddot] [accent] [mr] ["92] +\definemathsymbol [tilde] [accent] [mr] ["93] +\definemathsymbol [bar] [accent] [mr] ["94] +\definemathsymbol [breve] [accent] [mr] ["95] +\definemathsymbol [check] [accent] [mr] ["96] +\definemathsymbol [hat] [accent] [mr] ["97] +\definemathsymbol [dot] [accent] [mr] ["98] +%\definemathsymbol [acute] [accent] [accents] ["B4] +%\definemathsymbol [grave] [accent] [accents] ["1E] +%\definemathsymbol [ddot] [accent] [accents] ["A8] +%\definemathsymbol [tilde] [accent] [accents] ["98] +%\definemathsymbol [bar] [accent] [accents] ["AF] +%\definemathsymbol [breve] [accent] [accents] ["0B] +%\definemathsymbol [check] [accent] [accents] ["10] +%\definemathsymbol [hat] [accent] [accents] ["5E] +%\definemathsymbol [dot] [accent] [accents] ["01] + +\definemathsymbol [vec] [accent] [mr] ["7E] % [ord] +\definemathsymbol [hat] [accent] [sy] ["DE] + \stopmathcollection \startmathcollection [eul] -\definemathsymbol [lgroup] [open] [sy] ["A8] [ex] ["3A] % ? -\definemathsymbol [rgroup] [close] [sy] ["A9] [ex] ["3B] % ? + +\definemathsymbol [lgroup] [open] [sy] ["A8] [ex] ["3A] % ? +\definemathsymbol [rgroup] [close] [sy] ["A9] [ex] ["3B] % ? + \stopmathcollection \startmathcollection [eul] -\definemathsymbol [dag] [box] [mb] ["86] -\definemathsymbol [ddag] [box] [mb] ["87] -\definemathsymbol [S] [box] [mb] ["A7] -\definemathsymbol [P] [box] [mb] ["B6] -%%% originals before substituting Charter characters -%\definemathsymbol [dag] [box] [sy] ["79] -%\definemathsymbol [ddag] [box] [sy] ["7A] -%\definemathsymbol [S] [box] [sy] ["78] -%\definemathsymbol [P] [box] [sy] ["7B] + +\definemathsymbol [dag] [box] [sy] ["79] +\definemathsymbol [ddag] [box] [sy] ["7A] +\definemathsymbol [S] [box] [sy] ["78] +\definemathsymbol [P] [box] [sy] ["7B] + \stopmathcollection -\protect \endinput +\protect \endinput diff --git a/tex/context/base/math-ini.tex b/tex/context/base/math-ini.tex index 8f3960f16..375fce3aa 100644 --- a/tex/context/base/math-ini.tex +++ b/tex/context/base/math-ini.tex @@ -300,9 +300,7 @@ \def\tracemathcommand#1% {\iftracemathcollection - \endgraf - \hbox{\tex{#1}~:~{\mathematics{\getvalue{#1}{}}}} - \endgraf + \endgraf\hbox{\tex{#1}~:~{\mathematics{\getvalue{#1}{}}}}\endgraf \fi} \def\startmathcollection[#1]% @@ -345,12 +343,17 @@ \def\usemathcollection[#1]% {\doinputonce{\truefilename{\f!mathprefix#1}}% - \setvalue{\@mc@\fontclass\@mc@}{#1}} + \doifsomething\fontclass{\setvalue{\@mc@\fontclass\@mc@}{#1}}} + +\letvalue{\@mc@\@mc@}\nomathcollection + +% \def\autoenablemathcollection +% {\doifdefinedelse{\@mc@\fontclass\@mc@} +% {\enablemathcollection[\getvalue{\@mc@\fontclass\@mc@}]} +% {\enablemathcollection[\s!default]}} % ? ? ? \def\autoenablemathcollection - {\doifdefinedelse{\@mc@\fontclass\@mc@} - {\enablemathcollection[\getvalue{\@mc@\fontclass\@mc@}]} - {\enablemathcollection[\s!default]}} % ? ? ? + {\expanded{\enablemathcollection[\executeifdefined{\@mc@\fontclass\@mc@}\nomathcollection]}} \appendtoks\autoenablemathcollection\to\mathstrategies @@ -426,7 +429,10 @@ \definefamilysynonym [default] [3] [ex] \enablemathcollection[default] -\usemathcollection[default] + +\usemathcollection[tex] % actually this is 'default' +\usemathcollection[ams] % actually this is 'default' + \enablemathcollection[default] %D Some goodies: @@ -459,11 +465,10 @@ \protect \endinput \tracemathcollectiontrue - - \input math-tex \page -\setupbodyfont[ams] \enablemathcollection[ams] \input math-ams \page -\setupbodyfont[lbr] \enablemathcollection[lbr] \input math-lbr \page -\setupbodyfont[eul] \enablemathcollection[eul] \input math-eul \stoptext + \input math-tex \page +\setupbodyfont[ams] \enablemathcollection[default] \input math-ams \page +\setupbodyfont[lbr] \enablemathcollection[lbr] \input math-lbr \page +\setupbodyfont[eul] \enablemathcollection[eul] \input math-eul \stoptext % to be checked, overloads supp-lan ! diff --git a/tex/context/base/math-lbr.tex b/tex/context/base/math-lbr.tex index c3c463254..3df4a36d0 100644 --- a/tex/context/base/math-lbr.tex +++ b/tex/context/base/math-lbr.tex @@ -1,6 +1,6 @@ %D \module %D [ file=math-lbr, -%D version=2001.04.12, +%D version=2001.04.12, %D title=\CONTEXT\ Math Macros, %D subtitle=Lucida Specials, %D author={Hans Hagen \& Taco Hoekwater}, @@ -11,26 +11,280 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\unprotect +\unprotect + +\definefamilysynonym [lbr] [calligrapahy] [sy] +\definefamilysynonym [lbr] [oldstyle] [mi] + +\definefamilysynonym [lbr] [blackboard] [ma] +\definefamilysynonym [lbr] [ucgreek] [mb] +\definefamilysynonym [lbr] [vargreek] [mi] \startmathcollection[lbr] -\definemathsymbol [blacktriangleright] [rel] [mi] ["F0] -\definemathsymbol [blacktriangleleft] [rel] [mi] ["F1] -\definemathsymbol [boxplus] [bin] [sy] ["EA] -\definemathsymbol [boxminus] [bin] [sy] ["EB] -\definemathsymbol [boxtimes] [bin] [sy] ["EC] +\definemathsymbol [boxdot] [bin] [sy] ["ED] +\definemathsymbol [boxplus] [bin] [sy] ["EA] +\definemathsymbol [boxtimes] [bin] [sy] ["EC] +\definemathsymbol [square] [ord] [ma] ["02] +\definemathsymbol [Box] [ord] [ma] ["02] % square +\definemathsymbol [blacksquare] [ord] [ma] ["03] +\definemathsymbol [centerdot] [bin] [ma] ["E1] % [sy] ["01] +\definemathsymbol [Diamond] [ord] [sy] ["05] +\definemathsymbol [lozenge] [ord] [sy] ["05] % Diamond +\definemathsymbol [blacklozenge] [ord] [ma] ["09] +\definemathsymbol [circlearrowright] [rel] [ma] ["8C] +\definemathsymbol [circlearrowleft] [rel] [ma] ["8B] +\definemathsymbol [rightleftharpoons] [rel] [sy] ["8E] +\definemathsymbol [leftrightharpoons] [rel] [sy] ["8D] +\definemathsymbol [boxminus] [bin] [sy] ["EB] +\definemathsymbol [Vdash] [rel] [sy] ["F0] +\definemathsymbol [Vvdash] [rel] [mb] ["D3] +\definemathsymbol [vDash] [rel] [mb] ["D6] +\definemathsymbol [twoheadrightarrow] [rel] [ma] ["25] +\definemathsymbol [twoheadleftarrow] [rel] [ma] ["23] +\definemathsymbol [leftleftarrows] [rel] [ma] ["71] +\definemathsymbol [rightrightarrows] [rel] [ma] ["73] +\definemathsymbol [upuparrows] [rel] [ma] ["72] +\definemathsymbol [downdownarrows] [rel] [ma] ["74] +\definemathsymbol [upharpoonright] [rel] [ma] ["75] +\definemathsymbol [restriction] [rel] [ma] ["77] +\definemathsymbol [downharpoonright] [rel] [ma] ["77] +\definemathsymbol [upharpoonleft] [rel] [ma] ["76] +\definemathsymbol [downharpoonleft] [rel] [ma] ["78] +\definemathsymbol [rightarrowtail] [rel] [ma] ["29] +\definemathsymbol [leftarrowtail] [rel] [ma] ["28] +\definemathsymbol [leftrightarrows] [rel] [ma] ["6E] +\definemathsymbol [rightleftarrows] [rel] [ma] ["6D] +\definemathsymbol [Lsh] [rel] [ma] ["7B] +\definemathsymbol [Rsh] [rel] [ma] ["7D] +\definemathsymbol [rightsquigarrow] [rel] [ma] ["8E] +\definemathsymbol [leadsto] [rel] [ma] ["8E] % rightsquigarrow +\definemathsymbol [leftrightsquigarrow] [rel] [ma] ["91] +\definemathsymbol [looparrowleft] [rel] [ma] ["3F] +\definemathsymbol [looparrowright] [rel] [ma] ["40] +\definemathsymbol [circeq] [rel] [sy] ["D0] +\definemathsymbol [succsim] [rel] [sy] ["E1] +\definemathsymbol [gtrsim] [rel] [sy] ["DD] +\definemathsymbol [gtrapprox] [rel] [mb] ["DB] +\definemathsymbol [multimap] [rel] [mb] ["C7] +\definemathsymbol [therefore] [rel] [sy] ["90] +\definemathsymbol [because] [rel] [sy] ["91] +\definemathsymbol [doteqdot] [rel] [sy] ["CA] +\definemathsymbol [Doteq] [rel] [sy] ["CA] % doteqdot +\definemathsymbol [triangleq] [rel] [sy] ["D5] +\definemathsymbol [precsim] [rel] [sy] ["E0] +\definemathsymbol [lesssim] [rel] [sy] ["DC] +\definemathsymbol [lessapprox] [rel] [mb] ["DA] +\definemathsymbol [eqslantless] [rel] [mb] ["E2] +\definemathsymbol [eqslantgtr] [rel] [mb] ["E3] +\definemathsymbol [curlyeqprec] [rel] [mb] ["E6] +\definemathsymbol [curlyeqsucc] [rel] [mb] ["E7] +\definemathsymbol [preccurlyeq] [rel] [mb] ["E4] +\definemathsymbol [leqq] [rel] [sy] ["DA] +\definemathsymbol [leqslant] [rel] [mb] ["E0] +\definemathsymbol [lessgtr] [rel] [sy] ["DE] +\definemathsymbol [backprime] [ord] [mb] ["C8] +\definemathsymbol [dabar@] [ord] [ma] ["03] % !! @ +\definemathsymbol [risingdotseq] [rel] [sy] ["CC] +\definemathsymbol [fallingdotseq] [rel] [sy] ["CB] +\definemathsymbol [succcurlyeq] [rel] [mb] ["E5] +\definemathsymbol [geqq] [rel] [sy] ["DB] +\definemathsymbol [geqslant] [rel] [mb] ["E1] +\definemathsymbol [gtrless] [rel] [sy] ["DF] +\definemathsymbol [sqsubset] [rel] [sy] ["E4] +\definemathsymbol [sqsupset] [rel] [sy] ["E5] +\definemathsymbol [vartriangleright] [rel] [mb] ["2E] +\definemathsymbol [rhd] [bin] [mb] ["2E] +\definemathsymbol [lhd] [bin] [mb] ["2F] +\definemathsymbol [vartriangleleft] [rel] [mb] ["2F] +\definemathsymbol [trianglerighteq] [rel] [sy] ["F5] +\definemathsymbol [unrhd] [bin] [sy] ["F5] % trianglerighteq +\definemathsymbol [trianglelefteq] [rel] [sy] ["F4] +\definemathsymbol [unlhd] [bin] [sy] ["F4] % trianglelefteq +\definemathsymbol [bigstar] [ord] [ma] ["AB] +\definemathsymbol [between] [rel] [mb] ["F2] +\definemathsymbol [blacktriangledown] [ord] [ma] ["07] +\definemathsymbol [blacktriangleright] [rel] [mb] ["F1] +\definemathsymbol [blacktriangleleft] [rel] [mb] ["F0] +\definemathsymbol [vartriangle] [rel] [ma] ["04] +\definemathsymbol [triangleup] [ord] [ma] ["04] % vartriangle +\definemathsymbol [blacktriangle] [ord] [ma] ["05] +\definemathsymbol [triangledown] [ord] [ma] ["06] +\definemathsymbol [eqcirc] [rel] [sy] ["CF] +\definemathsymbol [lesseqgtr] [rel] [mb] ["E8] +\definemathsymbol [gtreqless] [rel] [mb] ["E9] +\definemathsymbol [lesseqqgtr] [rel] [mb] ["EA] +\definemathsymbol [gtreqqless] [rel] [mb] ["EB] +\definemathsymbol [Rrightarrow] [rel] [ma] ["6C] +\definemathsymbol [Lleftarrow] [rel] [ma] ["6A] +\definemathsymbol [veebar] [bin] [mb] ["D2] +\definemathsymbol [barwedge] [bin] [sy] ["F6] +\definemathsymbol [doublebarwedge] [bin] [sy] ["D4] +\definemathsymbol [angle] [ord] [sy] ["8B] +\definemathsymbol [measuredangle] [ord] [sy] ["8C] +\definemathsymbol [sphericalangle] [ord] [sy] ["8D] +\definemathsymbol [varpropto] [rel] [sy] ["2F] +\definemathsymbol [smallsmile] [rel] [mb] ["5E] +\definemathsymbol [smallfrown] [rel] [mb] ["5F] +\definemathsymbol [Subset] [rel] [sy] ["F8] +\definemathsymbol [Supset] [rel] [sy] ["F9] +\definemathsymbol [Cup] [bin] [sy] ["FA] +\definemathsymbol [doublecup] [bin] [sy] ["FA] % Cup +\definemathsymbol [Cap] [bin] [sy] ["FB] +\definemathsymbol [doublecap] [bin] [sy] ["FB] +\definemathsymbol [curlywedge] [bin] [sy] ["84] +\definemathsymbol [curlyvee] [bin] [sy] ["85] +\definemathsymbol [leftthreetimes] [bin] [mb] ["D0] +\definemathsymbol [rightthreetimes] [bin] [mb] ["D1] +\definemathsymbol [subseteqq] [rel] [mb] ["EE] +\definemathsymbol [supseteqq] [rel] [mb] ["EF] +\definemathsymbol [bumpeq] [rel] [sy] ["C8] +\definemathsymbol [Bumpeq] [rel] [sy] ["C7] +\definemathsymbol [llless] [rel] [mb] ["DE] +\definemathsymbol [lll] [rel] [mb] ["DE] % llless +\definemathsymbol [gggtr] [rel] [mb] ["DF] +\definemathsymbol [ggg] [rel] [mb] ["DF] % gggtr +\definemathsymbol [ulcorner] [open] [ma] ["5B] [ma] ["5B] +\definemathsymbol [urcorner] [close] [ma] ["5C] [ma] ["5C] +\definemathsymbol [circledS] [ord] [mb] ["CA] +\definemathsymbol [pitchfork] [rel] [ma] ["F3] +\definemathsymbol [dotplus] [bin] [sy] ["89] +\definemathsymbol [backsim] [rel] [sy] ["24] +\definemathsymbol [backsimeq] [rel] [sy] ["27] +\definemathsymbol [llcorner] [open] [ma] ["5D] [ma] ["5D] +\definemathsymbol [lrcorner] [close] [ma] ["5E] [ma] ["5E] +\definemathsymbol [complement] [ord] [mb] ["94] +\definemathsymbol [intercal] [bin] [ma] ["03] % !! +\definemathsymbol [circledcirc] [bin] [sy] ["E6] +\definemathsymbol [circledast] [bin] [sy] ["E7] +\definemathsymbol [circleddash] [bin] [mb] ["CC] + +\stopmathcollection + +\startmathcollection [lbr] + +\definemathsymbol [lvertneqq] [rel] [ma] ["DE] +\definemathsymbol [gvertneqq] [rel] [ma] ["DE] +\definemathsymbol [nleq] [rel] [ma] ["9C] +\definemathsymbol [ngeq] [rel] [ma] ["9D] +\definemathsymbol [nless] [rel] [ma] ["9A] +\definemathsymbol [ngtr] [rel] [ma] ["9B] +\definemathsymbol [nprec] [rel] [ma] ["E5] +\definemathsymbol [nsucc] [rel] [ma] ["E6] +\definemathsymbol [lneqq] [rel] [ma] ["DC] +\definemathsymbol [gneqq] [rel] [ma] ["DE] +\definemathsymbol [nleqslant] [rel] [ma] ["D6] +\definemathsymbol [ngeqslant] [rel] [ma] ["D7] +\definemathsymbol [lneq] [rel] [ma] ["DA] +\definemathsymbol [gneq] [rel] [ma] ["DB] +\definemathsymbol [npreceq] [rel] [ma] ["E7] +\definemathsymbol [nsucceq] [rel] [ma] ["E8] +\definemathsymbol [precnsim] [rel] [ma] ["EB] +\definemathsymbol [succnsim] [rel] [ma] ["EC] +\definemathsymbol [lnsim] [rel] [ma] ["E0] +\definemathsymbol [gnsim] [rel] [ma] ["E2] +\definemathsymbol [nleqq] [rel] [ma] ["D8] +\definemathsymbol [ngeqq] [rel] [ma] ["D9] +\definemathsymbol [precneqq] [rel] [ma] ["E9] +\definemathsymbol [succneqq] [rel] [ma] ["EA] +\definemathsymbol [precnapprox] [rel] [ma] ["ED] +\definemathsymbol [succnapprox] [rel] [ma] ["EE] +\definemathsymbol [lnapprox] [rel] [ma] ["E4] +\definemathsymbol [gnapprox] [rel] [ma] ["E3] +\definemathsymbol [nsim] [rel] [ma] ["96] +\definemathsymbol [ncong] [rel] [ma] ["99] +\definemathsymbol [diagup] [ord] [mb] ["CD] +\definemathsymbol [diagdown] [ord] [mb] ["D8] +\definemathsymbol [varsubsetneq] [rel] [ma] ["D0] +\definemathsymbol [varsupsetneq] [rel] [ma] ["D1] +\definemathsymbol [nsubseteqq] [rel] [ma] ["CA] +\definemathsymbol [nsupseteqq] [rel] [ma] ["CB] +\definemathsymbol [subsetneqq] [rel] [ma] ["CE] +\definemathsymbol [supsetneqq] [rel] [ma] ["CF] +\definemathsymbol [varsubsetneqq] [rel] [ma] ["D2] +\definemathsymbol [varsupsetneqq] [rel] [ma] ["D3] +\definemathsymbol [subsetneq] [rel] [ma] ["CC] +\definemathsymbol [supsetneq] [rel] [ma] ["CD] +\definemathsymbol [nsubseteq] [rel] [ma] ["C8] +\definemathsymbol [nsupseteq] [rel] [ma] ["C9] +\definemathsymbol [nparallel] [rel] [ma] ["F7] +\definemathsymbol [nmid] [rel] [ma] ["F6] +\definemathsymbol [nshortmid] [rel] [ma] ["F4] +\definemathsymbol [nshortparallel] [rel] [ma] ["F5] +\definemathsymbol [nvdash] [rel] [ma] ["F8] +\definemathsymbol [nVdash] [rel] [ma] ["F9] +\definemathsymbol [nvDash] [rel] [ma] ["FA] +\definemathsymbol [nVDash] [rel] [ma] ["FB] +\definemathsymbol [ntrianglerighteq] [rel] [ma] ["F2] +\definemathsymbol [ntrianglelefteq] [rel] [ma] ["F1] +\definemathsymbol [ntriangleleft] [rel] [ma] ["EF] +\definemathsymbol [ntriangleright] [rel] [ma] ["F0] +\definemathsymbol [nleftarrow] [rel] [ma] ["32] +\definemathsymbol [nrightarrow] [rel] [ma] ["33] +\definemathsymbol [nLeftarrow] [rel] [ma] ["66] +\definemathsymbol [nRightarrow] [rel] [ma] ["68] +\definemathsymbol [nLeftrightarrow] [rel] [ma] ["67] +\definemathsymbol [nleftrightarrow] [rel] [ma] ["34] +\definemathsymbol [divideontimes] [bin] [mb] ["F7] +\definemathsymbol [varnothing] [ord] [sy] ["53] +\definemathsymbol [nexists] [ord] [ma] ["20] +\definemathsymbol [Finv] [ord] [mb] ["90] +\definemathsymbol [Game] [ord] [mb] ["91] +\definemathsymbol [mho] [ord] [mb] ["92] +\definemathsymbol [eth] [ord] [ma] ["03] % !! +\definemathsymbol [eqsim] [rel] [sy] ["99] +\definemathsymbol [beth] [ord] [mb] ["95] +\definemathsymbol [gimel] [ord] [mb] ["96] +\definemathsymbol [daleth] [ord] [mb] ["97] +\definemathsymbol [lessdot] [bin] [mb] ["DC] +\definemathsymbol [gtrdot] [bin] [mb] ["DD] +\definemathsymbol [ltimes] [bin] [mb] ["CF] +\definemathsymbol [rtimes] [bin] [mb] ["CE] +\definemathsymbol [shortmid] [rel] [mb] ["F4] +\definemathsymbol [shortparallel] [rel] [mb] ["F5] +\definemathsymbol [smallsetminus] [bin] [mb] ["D8] +\definemathsymbol [thicksim] [rel] [sy] ["18] % not that thick +\definemathsymbol [thickapprox] [rel] [sy] ["19] % not that thick +\definemathsymbol [approxeq] [rel] [sy] ["9D] +\definemathsymbol [succapprox] [rel] [mb] ["ED] +\definemathsymbol [precapprox] [rel] [mb] ["EC] +\definemathsymbol [curvearrowleft] [rel] [ma] ["87] +\definemathsymbol [curvearrowright] [rel] [ma] ["88] +\definemathsymbol [digamma] [ord] [ma] ["03] % !! +\definemathsymbol [varkappa] [ord] [mb] ["9B] +\definemathsymbol [Bbbk] [ord] [ma] ["6B] +\definemathsymbol [hslash] [ord] [mb] ["9D] +\definemathsymbol [hbar] [ord] [ma] ["1B] +\definemathsymbol [backepsilon] [rel] [ma] ["03] % !! + +\stopmathcollection + +\startmathcollection [lbr] + +\definemathsymbol [yen] [nothing] [ma] ["03] % !! +\definemathsymbol [checkmark] [nothing] [ma] ["AC] +\definemathsymbol [circledR] [nothing] [mb] ["C9] +\definemathsymbol [maltese] [nothing] [mb] ["CB] + +\stopmathcollection + +\startmathcollection [lbr] + +\definemathsymbol [dashrightarrow] [rel] [ma] ["3A] +\definemathsymbol [dashleftarrow] [rel] [ma] ["38] +\definemathcommand [dasharrow] [rel] {\dashleftarrow\mkern-15.8mu\dashrightarrow} +%definemathcommand [Join] [rel] {\mathchar"0D6F\mkern-15.8mu\mathchar"0D6E} % !! \stopmathcollection \startmathcollection[lbr] -\definemathcharacter [91] [open] [mi] ["86] -\definemathcharacter [93] [close] [mi] ["87] -\definemathcharacter [(] [open] [mi] ["84] -\definemathcharacter [)] [close] [mi] ["85] -\definemathcharacter [/] [nothing] [mi] ["3D] -\definemathcharacter [=] [rel] [sy] ["83] +\definemathcharacter [91] [open] [mi] ["86] +\definemathcharacter [93] [close] [mi] ["87] +\definemathcharacter [(] [open] [mi] ["84] +\definemathcharacter [)] [close] [mi] ["85] +\definemathcharacter [/] [nothing] [mi] ["3D] +\definemathcharacter [=] [rel] [sy] ["83] \definemathcharacter [+] [bin] [sy] ["82] \definemathcharacter [91] [nothing] [mi] ["86] [ex] ["02] @@ -42,19 +296,19 @@ \stopmathcollection % \startmathcollection[lbr] -% +% % \definemathcharacter [:] [punct] [tf] ["3A] % unbelievable % \definemathcharacter [;] [punct] [tf] ["3B] % unbelievable -% +% % \stopmathcollection \startmathcollection[lbr] \definemathsymbol [ldbrack] [open] [mi] ["82] [ex] ["82] \definemathsymbol [rdbrack] [close] [mi] ["83] [ex] ["83] -\definemathsymbol [surfintop] [op] [ex] ["90] -\definemathsymbol [midintop] [op] [ex] ["92] -\definemathsymbol [midointop] [op] [ex] ["93] +\definemathsymbol [surfintop] [op] [ex] ["90] +\definemathsymbol [midintop] [op] [ex] ["92] +\definemathsymbol [midointop] [op] [ex] ["93] \definemathsymbol [midsurfintop] [op] [ex] ["94] \definemathsymbol [largeint] [op] [ex] ["5A] [ex] ["95] @@ -63,9 +317,9 @@ % \definemathcommand [midoint] [nolop] {\midointop} % \definemathcommand [midsurfint] [nolop] {\midsurfintop} -\definemathsymbol [surfint] [nolop] [ex] ["90] -\definemathsymbol [midint] [nolop] [ex] ["92] -\definemathsymbol [midoint] [nolop] [ex] ["93] +\definemathsymbol [surfint] [nolop] [ex] ["90] +\definemathsymbol [midint] [nolop] [ex] ["92] +\definemathsymbol [midoint] [nolop] [ex] ["93] \definemathsymbol [midsurfint] [nolop] [ex] ["94] \definemathsymbol [dblint] [ord] [mi] ["88] @@ -80,7 +334,6 @@ \definemathsymbol [models] [rel] [sy] ["EE] \definemathsymbol [doteq] [rel] [sy] ["C9] \definemathsymbol [cong] [rel] [sy] ["9B] -\definemathsymbol [angle] [ord] [sy] ["8B] \definemathsymbol [hbar] [ord] [mi] ["9D] \definemathsymbol [neq] [rel] [ma] ["94] \definemathsymbol [rightleftharpoons] [rel] [ma] ["7A] @@ -93,23 +346,8 @@ \stopmathcollection -\definefamilysynonym [lbr] [ucgreek] [mb] -\definefamilysynonym [lbr] [vargreek] [mi] - \startmathcollection[lbr] -%\definemathsymbol [Gamma] [alpha] [ucgreek] ["D0] -%\definemathsymbol [Delta] [alpha] [ucgreek] ["D1] -%\definemathsymbol [Theta] [alpha] [ucgreek] ["D2] -%\definemathsymbol [Lambda] [alpha] [ucgreek] ["D3] -%\definemathsymbol [Xi] [alpha] [ucgreek] ["D4] -%\definemathsymbol [Pi] [alpha] [ucgreek] ["D5] -%\definemathsymbol [Sigma] [alpha] [ucgreek] ["D6] -%\definemathsymbol [Upsilon] [alpha] [ucgreek] ["D7] -%\definemathsymbol [Phi] [alpha] [ucgreek] ["D8] -%\definemathsymbol [Psi] [alpha] [ucgreek] ["D9] -%\definemathsymbol [Omega] [alpha] [ucgreek] ["DA] - \definemathsymbol [Gamma] [alpha] [ucgreek] ["00] \definemathsymbol [Delta] [alpha] [ucgreek] ["01] \definemathsymbol [Theta] [alpha] [ucgreek] ["02] @@ -202,4 +440,4 @@ \stoprawmathcollection -\protect \endinput +\protect \endinput diff --git a/tex/context/base/math-run.tex b/tex/context/base/math-run.tex index c2a5852a0..b41ea3c64 100644 --- a/tex/context/base/math-run.tex +++ b/tex/context/base/math-run.tex @@ -13,18 +13,21 @@ \unprotect +\ifx\showmathmodern\undefined \global\chardef\showmathmodern\zerocount \fi + \gdef\showmathcharacters% nearly \showcharacters {\par \bgroup + \ifcase\showmathmodern\or\ifx\modern\undefined\chardef\showmathmodern\zerocount\fi\fi \setuptextrules[\c!bodyfont=,\c!style=] - \starttextrule{math characters} + \starttextrule{math characters -- \currentmathcollection} \whitespace \dontcomplain \forgetall \def\startmathcollection[##1]{} \let\stopmathcollection\relax - \dimen0=\!!zeropoint - \dimen2=\!!zeropoint + \dimen0\zeropoint + \dimen2\zeropoint \def\definemathsymbol {\dosixtupleempty\dodefinemathsymbol} \def\definemathcharacter{\dosixtupleempty\dodefinemathcharacter} \def\definemathcommand {\dotripleempty \dodefinemathcommand} @@ -33,19 +36,19 @@ {%\doifcolorelse{math \purefamilyhex{##3}}{} % {\increment\mathcolor % \definecolor[math \purefamilyhex{##3}][\mathcolor]}% - \setbox0=\hbox spread 1em - {$\getvalue{##1}{}$}% + \setbox0\hbox spread 1em{\mathematics{\getvalue{##1}{}{}{}}}% \ifdim\wd0>\dimen0 \dimen0=\wd0 \fi - \setbox2=\hbox spread 1em - {\hbox to 1em{\tttf\purefamilyhex{##3}\hss}\box0 ##1} + \setbox2\hbox spread 1em{\hbox to 1em{\tttf\purefamilyhex{##3}\hss}\box0 ##1}% \ifdim\wd2>\dimen2 \dimen2=\wd2 \fi} \def\dodefinemathcharacter[##1][##2][##3][##4][##5][##6]{} - \def\dodefinemathcommand[##1][##2][##3]##4{} - \readsysfile{\f!mathprefix tex}{}{} + \def\dodefinemathcommand [##1][##2][##3]##4{} + \readsysfile{\f!mathprefix tex}\donothing\donothing + \readsysfile{\f!mathprefix ams}\donothing\donothing \edef\encwidth{\the\dimen0} \dimen0=\hsize \advance\dimen0 2em \advance\dimen2 2em + \ifcase\showmathmodern\or\advance\dimen2 2em\fi \divide \dimen0 by \dimen2 \advance\dimen0 1sp \edef\enccols{\number\dimen0} \startcolumns[\c!n=\enccols,\c!distance=2em] @@ -54,10 +57,13 @@ %\color % [math \purefamilyhex{##3}] {\hbox - {\hbox to \encwidth{$\getvalue{##1}{}$\hss}% + {\ifcase\showmathmodern\or + \hbox to \encwidth{\modern\let\mathcollection\nomathcollection\mathematics{\getvalue{##1}{}{}{}}\hss}% + \fi + \hbox to \encwidth{\mathematics{\getvalue{##1}{}{}{}}\hss}% \hbox to 1em{\tttf\purefamilyhex{##3}\hss}##1}\par}} - \readsysfile{\f!mathprefix tex}{}{} -% \readsysfile{\f!mathprefix ams}{}{} + \readsysfile{\f!mathprefix tex}\donothing\donothing + \readsysfile{\f!mathprefix ams}\donothing\donothing \stopcolumns \stoptextrule \egroup} diff --git a/tex/context/base/math-tex.tex b/tex/context/base/math-tex.tex index 0e474a892..4db3a2058 100644 --- a/tex/context/base/math-tex.tex +++ b/tex/context/base/math-tex.tex @@ -15,10 +15,15 @@ \mathcode`\ ="8000 \mathcode`\_="8000 \mathcode`\'="8000 -\definefamilysynonym [default] [lcgreek] [mi] -\definefamilysynonym [default] [ucgreek] [mr] -\definefamilysynonym [default] [vargreek] [mi] -%definefamilysynonym [default] [blackboard] [mb] % extra font +\definefamilysynonym [default] [calligraphic] [sy] +\definefamilysynonym [default] [oldstyle] [mi] +\definefamilysynonym [default] [blackboard] [mr] +\definefamilysynonym [default] [gothic] [mr] +\definefamilysynonym [default] [fraktur] [mr] + +\definefamilysynonym [default] [lcgreek] [mi] +\definefamilysynonym [default] [ucgreek] [mr] +\definefamilysynonym [default] [vargreek] [mi] \startmathcollection [default] diff --git a/tex/context/base/page-flt.tex b/tex/context/base/page-flt.tex index 94fd2e0e5..3fa99850f 100644 --- a/tex/context/base/page-flt.tex +++ b/tex/context/base/page-flt.tex @@ -1953,7 +1953,7 @@ \getparameters[\??si][#1]% \resetnumber[\??si]% \def\floatcaptionsuffix{\convertednumber[\??si]}% - \TABLEcaptionheight=\@@silines\lineheight % brrr + \TABLEcaptionheight\@@silines\lineheight % brrr \simplifypagebreak % \page becomes \goodbreak \dowithnextbox {\forgetall @@ -1963,7 +1963,7 @@ \setbox2\vbox{\unvbox2} \ifdim\ht2>\lineheight \incrementnumber[\??si]% - \ifnum\rawnumber[\??si]=1 \ifdim\nextboxht=\zeropoint + \ifcase\rawnumber[\??si]\or \ifdim\nextboxht=\zeropoint \let\floatcaptionsuffix\empty \fi \fi \bgroup @@ -1981,7 +1981,7 @@ \vbox \fi} -\def\splitfloat% +\def\splitfloat {\dosingleempty\dosplitfloat} \def\dooutput{\sidefloatoutput} % redefinition of \dooutput diff --git a/tex/context/base/page-mak.tex b/tex/context/base/page-mak.tex index 87d8be7c2..fe3bfe40d 100644 --- a/tex/context/base/page-mak.tex +++ b/tex/context/base/page-mak.tex @@ -176,13 +176,13 @@ \processaction [\makeupparameter\c!doublesided] [ \v!yes=>\null - \page, - % \verlaagpaginanummer, % new + \page, + % \verlaagpaginanummer, % new \v!empty=>{\setupmakeuplayout \page[\v!blank]% \null \page}]% - % \verlaagpaginanummer]% % new + % \verlaagpaginanummer]% % new \fi \fi % \verlaagpaginanummer % new \globalpopmacro\@@pnstate} % new @@ -192,7 +192,7 @@ %D connection between them is made by the following macro \def\setupmakeuplayout - {\setupfooter[\c!state=\makeupparameter\c!footerstate ]% + {\setupfooter[\c!state=\makeupparameter\c!footerstate]% \setupheader[\c!state=\makeupparameter\c!headerstate]% \setuptext [\c!state=\makeupparameter\c!textstate]% \setupbottom[\c!state=\makeupparameter\c!bottomstate]% diff --git a/tex/context/base/spec-dpm.tex b/tex/context/base/spec-dpm.tex index 0aceee9ca..74fb16963 100644 --- a/tex/context/base/spec-dpm.tex +++ b/tex/context/base/spec-dpm.tex @@ -409,9 +409,10 @@ \def\doPDFbookmark level #1 n #2 text #3 page #4 open #5% {\ifcase#2\else - \special - {pdf: out \ifcase#5-\fi#2 - <</Page #4\space /View [/Fit] /Title (#3)>>}% + \scratchcounter#4\advance\scratchcounter\minusone + \special{pdf: out \ifcase#5-\fi#2 + % <</Page \the\scratchcounter\space /View [/Fit] /Title (#3)>>}% + <</Title (#3) /A <</S /GoTo /D [@page\number#4\space\PDFpageviewwrd]>> >>}% \fi} %D \macros diff --git a/tex/context/base/spec-dpx.tex b/tex/context/base/spec-dpx.tex index 95d5a3021..1641e0daa 100644 --- a/tex/context/base/spec-dpx.tex +++ b/tex/context/base/spec-dpx.tex @@ -223,7 +223,7 @@ \def\assignPDFtransparency#1#2% {\def\PDFtransparencyidentifier{/Tr#1}% - %\def\PDFtransparencyreference{#2 0 R}} + %\def\PDFtransparencyreference{\PDFobjref{#2}}} \def\PDFtransparencyreference{@TR:#2}} \def\presetPDFtransparency#1#2% @@ -237,7 +237,7 @@ \doPDFreserveDPXobject{TR:\the\PDFcurrenttransparency}{<< >>}% \special{pdf: \doPDFcheckedDPXobject{TR:\the\PDFcurrenttransparency}\PDFtransparancydictionary{#1}{#2}{}}% \edef\PDFtransparencyidentifier{/Tr\the\PDFcurrenttransparency}% - %\edef\PDFtransparencyreference {\the\pdflastobj\space 0 R}% + %\edef\PDFtransparencyreference {\PDFobjref\pdflastobj}% \edef\PDFtransparencyreference {@TR:\the\PDFcurrenttransparency}% \setxvalue{\@@PDT#1:#2}% {\noexpand\assignPDFtransparency{\the\PDFcurrenttransparency}{\the\PDFcurrenttransparency}}% @@ -251,7 +251,7 @@ {\doPDFreserveDPXobject{TR:0}{<< >>}% \special{pdf: \doPDFcheckedDPXobject{TR:0}\PDFtransparancydictionary{1}{1}{/AIS false}}% \xdef\PDFtransparencyresetidentifier{/Tr0}% - %\xdef\PDFtransparencyresetreference{\the\pdflastobj\space 0 R}% + %\xdef\PDFtransparencyresetreference{\PDFobjref\pdflastobj}% \xdef\PDFtransparencyresetreference{@TR:0}% \setxvalue{\@@PDT0:0}% %{\noexpand\assignPDFtransparency{0}{\the\pdflastobj}}% @@ -555,8 +555,8 @@ \def\doPDFpageresource#1% {\special{pdf: put @resources <<#1>>}} -\let\doPDFresetpageresources =\relax -\let\doPDFresetpageattributes=\relax +\let\doPDFresetpageresources \relax +\let\doPDFresetpageattributes\relax %D \type{\doPDFbookmark} in \type{spec-dpm} had a bug. %D The openbookmark option \#5 is not supported yet. @@ -566,8 +566,10 @@ \def\doPDFbookmark level #1 n #2 text #3 page #4 open #5% {\ifcase#1\else + \scratchcounter#4\advance\scratchcounter\minusone \special{pdf: outline #1 %\ifcase\the#5-\fi#1 - <</Title (#3) /A <</S /GoTo /D (page:#4)>>>>}% + % <</Title (#3) /A <</S /GoTo /D (page:\the\scratchcounter)>>>>}% + <</Title (#3) /A <</S /GoTo /D [@page\number#4\space\PDFpageviewwrd]>> >>}% \fi} %D \macros diff --git a/tex/context/base/spec-fdf.tex b/tex/context/base/spec-fdf.tex index 94bc756e4..7d5a73b4d 100644 --- a/tex/context/base/spec-fdf.tex +++ b/tex/context/base/spec-fdf.tex @@ -33,6 +33,16 @@ \unprotect %D \macros +%D {\PDFobjref} +%D +%D Just a shortcut. + +% Watch out, \def\PDFobjref#1{\purenumber#1 0 R} also works, but not when +% #1 == \the\whatever + +\def\PDFobjref#1{\purenumber{#1} 0 R} + +%D \macros %D {setPDFdestination} %D %D \PDF\ destinations should obey the specifications laid down @@ -629,7 +639,7 @@ % ==> % % \advance\scratchcounter 1 -% \edef\PDFdestination{[\pdfpageref \scratchcounter\space 0 R\space\PDFpageviewwrd]}% +% \edef\PDFdestination{[\pdfpageref \PDFobjref\scratchcounter\PDFpageviewwrd]}% % % \doPDFgetpagedestination#1#2% pagenumber macro % % fuzzy hack @@ -1007,27 +1017,6 @@ \def\doPDFgetfilestreamreference#1#2% {0 0 R} -% \def\doPDFattachfile#1#2#3#4#5#6#7#8% -% {\bgroup % title width height color symbol file -% \edef\PDFfile{#8}\convertcommand\PDFfile\to\PDFfile -% % beware: the symbol may (indirectly) use the file -% % reference when typesetting the object number; -% \presetPDFsymbolappearance{#5}{#6}{#2}{#3}{#4}% sets width/height -% \startPDFsymbolappearance -% \doifnotflagged{a:\PDFfile}% -% {\doPDFfilestreamobject -% class PDFEF name {\PDFfile} file {#7} source {#8}% -% \doglobal\setflag{a:\PDFfile}}% -% \doPDFgetobjectreference{PDFEF}\PDFfile\PDFobjectreference -% \doPDFannotation width {\width} height {\totalheight} data -% {/Subtype /FileAttachment -% /FS \PDFobjectreference\space -% /Contents (#1) -% \PDFsymbol -% \PDFattributes}% -% \stopPDFsymbolappearance -% \egroup} - \def\doPDFattachfile#1#2#3#4#5#6#7#8% {\bgroup % title width height color symbol file \edef\PDFfile{#8}\convertcommand\PDFfile\to\PDFfile @@ -1264,11 +1253,8 @@ % todo, unicode \sanitizePDFdocencoding#3\to\bookmarktext % uses scratchcounter \stripstring\bookmarktext - \scratchcounter#4% - \advance\scratchcounter \minusone %\sanitizePDFstring#3\to\bookmarktext - \doPDFbookmark level #1 n #2 text {\bookmarktext} - page {\the\scratchcounter} open #5 + \doPDFbookmark level #1 n #2 text {\bookmarktext} page {#4} open #5 \egroup} %D The next section of this module is dedicated to form @@ -2553,7 +2539,7 @@ {/Subtype /Text \ifcase#5 \else/Open true\fi % pdftex (efficient) - % \ifdone /Popup \the\pdflastannot\space 0 R\fi + % \ifdone /Popup \PDFobjref\pdflastannot\fi % generic (less efficient) \ifdone /Popup \PDFobjectreference\fi /Contents \ifPDFunicode <\PDFdata> \else(\PDFdata) \fi @@ -2777,7 +2763,7 @@ % we cannot use /DeviceN since GS <=7.21 breaks on it % and Jaws does not handle it at all {[/DeviceN [/All|/None] -% /Device#2 \the\pdflastobj\space0 R]} so we use separation +% /Device#2 \PDFobjref\pdflastobj]} so we use separation % colors that work and print ok \def\doPDFregistersomespotcolor#1#2#3#4% implemented in the driver @@ -3087,7 +3073,7 @@ \prependtoksonce \flushPDFpagelayers \to \everyshipout \prependtoksonce \flushPDFtextlayers \to \everylastshipout -\def\PDFlayeractionlist{null} % \PDFlayeractionlist{5 0 R} +\def\PDFlayeractionlist{null} \def\PDFexecutehidelayer {/SetOCGState /State [/OFF \PDFlayeractionlist]} \def\PDFexecutevidelayer {/SetOCGState /State [/ON \PDFlayeractionlist]} diff --git a/tex/context/base/spec-pdf.tex b/tex/context/base/spec-pdf.tex index 58a8876a2..ae3f582c7 100644 --- a/tex/context/base/spec-pdf.tex +++ b/tex/context/base/spec-pdf.tex @@ -448,9 +448,10 @@ %D This is how we force bookmarks entries in the file. \def\doPDFbookmark level #1 n #2 text #3 page #4 open #5% - {\special + {\scratchcounter#4\advance\scratchcounter\minusone + \special {\@@insertpostscriptretain - [ /Page #4\space + [ /Page \the\scratchcounter\space \ifcase#2 \else/Count \ifcase#5-\fi#2 \fi \PDFpageview /Title (#3) diff --git a/tex/context/base/spec-tpd.tex b/tex/context/base/spec-tpd.tex index 51720d6a7..e6ea95fbd 100644 --- a/tex/context/base/spec-tpd.tex +++ b/tex/context/base/spec-tpd.tex @@ -11,8 +11,17 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -% todo: nagaan of we met reserveobjnum en useobjnum kunnen werken; -% driver referenced etc +% once we can be sure that the latest versions of pdftex are +% available we can use: +% +% \pdfobj reserveobjnum \edef\one{\the\pdflastobj} +% \pdfobj reserveobjnum \edef\two{\the\pdflastobj} +% +% \pdfobj useobjnum \one {x} +% \pdfobj useobjnum \two {x} +% +% we then can rewrite part of spec-fdf because the other drivers +% already support symbolic references % layers and links don't work while the spec says they should @@ -219,7 +228,6 @@ \fi - %D nasty but needed \appendtoksonce \loadallfontmapfiles \to \everyPDFximage @@ -256,7 +264,7 @@ \definespecial\dogetnofinsertpages#1% {\xdef\nofinsertpages{1}% global \doifvalidpdfimagefileelse{#1}% - {\pdfximage {#1}\xdef\nofinsertpages{\the\pdflastximagepages}} + {\pdfximage{#1}\xdef\nofinsertpages{\the\pdflastximagepages}} {}} %D Currently we support \type{pdf} for \PDF\ files, \type{mps} @@ -400,10 +408,10 @@ \global\let\pdfimageattributes\empty \else \immediate\pdfobj - {[ << /Image \PDFfigurereference\space0 R + {[ << /Image \PDFobjref\PDFfigurereference /DefaultForPrinting true >> ]}% \xdef\pdfimageattributes - {attr {/Alternates \the\pdflastobj\space0 R}}% + {attr {/Alternates \PDFobjref\pdflastobj}}% \fi} \global\let\PDFimagecolorreference\empty @@ -560,15 +568,6 @@ \definespecial\dostartnonecolormode{\doPDFstartnonecolormode} \definespecial\doregisternonecolor {\doPDFregisternonecolor} -% \def\doPDFregistersomespotcolor#1#2#3#4% -% {\immediate \pdfobj stream attr -% {/FunctionType 4 /Domain [0.0 1.0] /Range #3}{#4}% -% \immediate \pdfobj -% {[/Separation /#1 /Device#2 \the\pdflastobj\space0 R]}% -% \dosetobjectreference{PDFCS}{#1}{\the\pdflastobj}% -% \appendtoPDFdocumentcolorspaces -% {/#1 \the\pdflastobj\space0 R}} - \def\doPDFregisterspotcolorname#1#2% {\bgroup \let\ascii\empty @@ -605,9 +604,9 @@ \immediate \pdfobj stream attr {/FunctionType 4 /Domain [\PDFspotcolordomain] /Range [#6]}{{\spotpops#7}}% \immediate \pdfobj - {[\PDFspotcolornames\space /Device#5 \the\pdflastobj\space0 R]}% + {[\PDFspotcolornames\space /Device#5 \PDFobjref\pdflastobj]}% \dosetobjectreference{PDFCS}{#1}{\the\pdflastobj}% - \appendtoPDFdocumentcolorspaces{/#1 \the\pdflastobj\space0 R}% + \appendtoPDFdocumentcolorspaces{/#1 \PDFobjref\pdflastobj}% \egroup} %D New and very experimental. @@ -636,10 +635,10 @@ {/FunctionType 4 /Domain [\PDFspotcolordomain] /Range [#6]}{{\spotpops#7}}% \immediate \pdfobj {[/Indexed - [/DeviceN [\PDFspotcolornames] /Device#5 \the\pdflastobj\space0 R] % + [/DeviceN [\PDFspotcolornames] /Device#5 \PDFobjref\pdflastobj] % 255 <\PDFcolorindexvector>]}% \dosetobjectreference{PDFIX}{#1}{\the\pdflastobj}% - \appendtoPDFdocumentcolorspaces{/#1_INDEXED \the\pdflastobj\space0 R}% + \appendtoPDFdocumentcolorspaces{/#1_INDEXED \PDFobjref\pdflastobj}% \egroup} %D \macros @@ -660,8 +659,8 @@ \fi \def\assignPDFtransparency#1#2% - {\def\PDFtransparencyidentifier{/Tr#1}% - \def\PDFtransparencyreference{#2 0 R}} + {\edef\PDFtransparencyidentifier{/Tr#1}% + \edef\PDFtransparencyreference{\PDFobjref{#2}}} \def\presetPDFtransparency#1#2% {\initializePDFtransparency @@ -671,7 +670,7 @@ {\global\advance\PDFcurrenttransparency \plusone \immediate\pdfobj{\PDFtransparancydictionary{#1}{#2}{}}% \edef\PDFtransparencyidentifier{/Tr\the\PDFcurrenttransparency}% - \edef\PDFtransparencyreference {\the\pdflastobj\space 0 R}% + \edef\PDFtransparencyreference {\PDFobjref\pdflastobj}% \setxvalue{\@@PDT#1:#2}% {\noexpand\assignPDFtransparency{\the\PDFcurrenttransparency}{\the\pdflastobj}}% \appendtoPDFdocumentextgstates @@ -681,7 +680,7 @@ \def\initializePDFtransparency {\immediate\pdfobj{\PDFtransparancydictionary{1}{1}{/AIS false}}% \xdef\PDFtransparencyresetidentifier{/Tr0}% - \xdef\PDFtransparencyresetreference{\the\pdflastobj\space 0 R}% + \xdef\PDFtransparencyresetreference{\PDFobjref\pdflastobj}% \setxvalue{\@@PDT0:0}% {\noexpand\assignPDFtransparency{0}{\the\pdflastobj}}% \appendtoPDFdocumentextgstates @@ -758,10 +757,10 @@ \@EA\doPSsanitizeJScode\sanitizedJScode\to\sanitizedJScode \immediate\pdfobj {<< /S /JavaScript /JS (\sanitizedJScode) >>}% \edef\compositeJScode - {\compositeJScode\space (##1) \the\pdflastobj\space 0 R}}% + {\compositeJScode\space (##1) \PDFobjref\pdflastobj}}% \processcommalist[#1]\docommando \immediate\pdfobj{<< /Names [ \compositeJScode ] >>}% - \pdfnames{/JavaScript \the\pdflastobj\space 0 R}% + \pdfnames{/JavaScript \PDFobjref\pdflastobj}% \egroup} %D \macros @@ -1099,7 +1098,7 @@ \xdef\lastPDFaction{<<#3>>}% \or \immediate\pdfobj{<<#3>>}% - \xdef\lastPDFaction{\the\pdflastobj\space0 R}% + \xdef\lastPDFaction{\PDFobjref\pdflastobj}% \else % leave \lastPDFaction untouched \fi @@ -1126,7 +1125,7 @@ \xdef\lastPDFaction{<<\lastPDFcontent>>}% \or \immediate\pdfobj{<<\lastPDFcontent>>}% - \xdef\lastPDFaction{\the\pdflastobj\space0 R}% + \xdef\lastPDFaction{\PDFobjref\pdflastobj}% \else % leave \lastPDFaction untouched \fi @@ -1152,7 +1151,7 @@ \xdef\lastPDFaction{<<#3>>}% \or \immediate\pdfobj{<<#3>>}% - \xdef\lastPDFaction{\the\pdflastobj\space0 R}% + \xdef\lastPDFaction{\PDFobjref\pdflastobj}% \else % leave \lastPDFaction untouched \fi @@ -1248,9 +1247,16 @@ % \ifcase#2 \else count \ifcase#5-\fi#2 \fi % {#3}} +% \def\doPDFbookmark level #1 n #2 text #3 page #4 open #5% +% {\pdfoutline +% user {<</S /GoTo /D [#4\space\PDFpageviewwrd]>>}% +% \ifcase#2 \else count \ifcase#5-\fi#2 \fi +% {#3}} + \def\doPDFbookmark level #1 n #2 text #3 page #4 open #5% - {\pdfoutline - user {<</S /GoTo /D [#4\space\PDFpageviewwrd]>>}% + {\doPDFgetpagereference{#4}\PDFobjectreference + \pdfoutline + user {<</S /GoTo /D [\PDFobjectreference\space\PDFpageviewwrd]>>}% \ifcase#2 \else count \ifcase#5-\fi#2 \fi {#3}} @@ -1282,7 +1288,7 @@ \def\doPDFgetobjectreference#1#2#3% {\dogetobjectreference{#1}{#2}#3% - \edef#3{\ifx#3\empty null\else#3\space0 R\fi}} + \edef#3{\ifx#3\empty null\else\PDFobjref{#3}\fi}} % \def\doPDFgetobjectpage #1#2#3{..} % \def\doPDFgetobjectpagereference#1#2#3{..} @@ -1297,7 +1303,7 @@ \else \def\doPDFgetpagereference#1#2% number macro - {\edef#2{\pdfpageref#1\space\space0 R}} + {\edef#2{\ifnum#1>\zerocount\PDFobjref{\pdfpageref#1}\else null\fi}} \fi @@ -1311,18 +1317,18 @@ \def\initializePDFnegative {\immediate\pdfobj stream attr {/FunctionType 4 /Range [0 1] /Domain [0 1]} {{1 exch sub}}% - \immediate\pdfobj{<</Type /ExtGState /TR \the\pdflastobj\space0 R>>}% - \appendtoPDFdocumentextgstates{/GSnegative \the\pdflastobj\space0 R}% + \immediate\pdfobj{<</Type /ExtGState /TR \PDFobjref\pdflastobj>>}% + \appendtoPDFdocumentextgstates{/GSnegative \PDFobjref\pdflastobj}% \immediate\pdfobj{<</Type /ExtGState /TR /Identity>>}% - \appendtoPDFdocumentextgstates{/GSpositive \the\pdflastobj\space0 R}% + \appendtoPDFdocumentextgstates{/GSpositive \PDFobjref\pdflastobj}% \global\let\initializePDFnegative\relax} \def\initializePDFoverprint {\immediate\pdfobj{<</Type /ExtGState /OP false /OPM 0>>}% /op defaults to /OP - \appendtoPDFdocumentextgstates{/GSknockout \the\pdflastobj\space0 R}% + \appendtoPDFdocumentextgstates{/GSknockout \PDFobjref\pdflastobj}% \immediate\pdfobj{<</Type /ExtGState /OP true /OPM 1>>}% /op defaults to /OP \edef\PDFobjectreferenceB{\the\pdflastobj}% - \appendtoPDFdocumentextgstates{/GSoverprint \the\pdflastobj\space0 R}% + \appendtoPDFdocumentextgstates{/GSoverprint \PDFobjref\pdflastobj}% \global\let\initializePDFoverprint\relax} %D File embedding. Storing the stream identifier is needed @@ -1338,7 +1344,7 @@ \edef\PDFlaststreamobject{\the\pdflastobj}% \dosetobjectreference{PDFFS}{#2}{\PDFlaststreamobject}% \doPDFdictionaryobject class {#1} name {#2} data - {/Type /Filespec /F (#3) /EF <</F \PDFlaststreamobject\space0 R>>}} + {/Type /Filespec /F (#3) /EF <</F \PDFobjref\PDFlaststreamobject>>}} \def\doPDFgetfilestreamreference#1#2% {\doPDFgetobjectreference{PDFFS}{#1}#2} diff --git a/tex/context/base/supp-pdf.tex b/tex/context/base/supp-pdf.tex index 3e0e99568..184cfb815 100644 --- a/tex/context/base/supp-pdf.tex +++ b/tex/context/base/supp-pdf.tex @@ -1,29 +1,16 @@ %D \module %D [ file=supp-pdf, -%D version=2004.10.26, +%D version=2004.12.16, %D title=\CONTEXT\ Support Macros, %D subtitle=\METAPOST\ to \PDF\ conversion, -%D author=Hans Hagen, +%D author=Hans Hagen \& others (see text), %D date=\currentdate, -%D copyright={PRAGMA / Hans Hagen \& Ton Otten}] +%D copyright=\PRAGMA] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -% This method is not that accurate with small files that use -% penshapes. I tried several methods but so far I could not -% come up with a better alternative. \TEX's real calculation -% options are simply to simple. Using \ETEX's expression -% mechanism does not lead to better results. - -% beware, we cannot use \zeropoint here since it may be -% defined in the range \dimen 0 - 20 which we happen to use -% as scratch registers ; inside context we may consider -% using dedicated registers - -% fails: ( ) vect10 9.96265 fshow % \040\040\040\040 - %D These macros are written as generic as possible. Some %D general support macro's are loaded from a small module %D especially made for non \CONTEXT\ use. In this module I @@ -32,7 +19,19 @@ %D Ratz I was able to complete this module within reasonable %D time. This module has support for \METAPOST\ extensions %D built in. +%D +%D Daniel H. Luecking came up with a better (more precise) +%D transformation method. You can recognize his comment by +%D his initials. (We keep the old code around because it's a +%D nice illustration on how a module like this evolves.) +% Beware, we cannot use \zeropoint here since it may be +% defined in the range \dimen 0 - 20 which we happen to use +% as scratch registers; inside context we may consider +% using dedicated registers. + +% fails: ( ) vect10 9.96265 fshow % \040\040\040\040 +% % some optimizations are possible, but we need to be generic %D First we take care of non||\CONTEXT\ use (newlines needed, @@ -50,7 +49,7 @@ %D default engine for \TEX\ distributions, we need a more complex %D test. -\writestatus{loading}{Context Support Macros / PDF (2004.10.26)} +\writestatus{loading}{Context Support Macros / PDF (2004.03.26)} \unprotect @@ -1069,7 +1068,7 @@ %D %D The last case outputs a \type{gsave fill grestore} before %D \type{stroke}. Handling the path outside the main loops -%D saves about 40\% run time.\footnote{We can save some more by +%D saves about 40\% run time.\footnoot{We can save some more by %D following the \METAPOST\ output routine, but for the moment %D we keep things simple.} Switching between the main loop and %D the path loop is done by means of the recursely called @@ -1088,8 +1087,7 @@ %D split up the routine in two. \def\flushnormalMPsegment -% {\expandafter\ifcase\getMPkeyword\relax % {\the\nofMPsegments}\relax - {\ifcase\getMPkeyword\relax % {\the\nofMPsegments}\relax + {\ifcase\getMPkeyword\relax \PDFcode{\!MPgMPs1 \!MPgMPs2 l}% \or \PDFcode{\!MPgMPs1 \!MPgMPs2 \!MPgMPs3 \!MPgMPs4 \!MPgMPs5 \!MPgMPs6 c}% @@ -1102,8 +1100,7 @@ \fi} \def\flushconcatMPsegment -% {\expandafter\ifcase\getMPkeyword\relax % {\the\nofMPsegments}\relax - {\ifcase\getMPkeyword\relax % {\the\nofMPsegments}\relax + {\ifcase\getMPkeyword\relax \doMPconcat{\gMPs1}\a{\gMPs2}\b% \PDFcode{\!MP\a\space\!MP\b\space l}% \or @@ -1159,7 +1156,14 @@ \doflushsomeMPpath} \def\flushnormalMPpath{\let\dodoflushsomeMPpath\flushnormalMPsegment\flushsomeMPpath} -\def\flushconcatMPpath{\let\dodoflushsomeMPpath\flushconcatMPsegment\flushsomeMPpath} + +%OLD \def\flushconcatMPpath{\let\dodoflushsomeMPpath\flushconcatMPsegment\flushsomeMPpath} + +%NEW pre-calculate 1/D so it needn't be repeated for each control point. + +\def\flushconcatMPpath + {\MPreciprocaldeterminant + \let\dodoflushsomeMPpath\flushconcatMPsegment\flushsomeMPpath} %D The transformation of the coordinates is handled by one of %D the macros Tanmoy posted to the \PDFTEX\ mailing list. @@ -1182,45 +1186,141 @@ %D we converted them to pure points, simply because those can %D be converted back. -\mathchardef\MPconcatfactor=256 % beware don't remove spaces before it +%OLD \mathchardef\MPconcatfactor=256 % beware don't remove spaces before it + +%OLD \def\doMPreducedimen#1 +%OLD {\count0\MPconcatfactor +%OLD \advance\dimen#1 \ifdim\dimen#1>\zeropoint .5\else -.5\fi\count0 +%OLD \divide\dimen#1 \count0\relax} + +%OLD % too inaccurate (see old pragma logo) +%OLD +%OLD \def\doMPreducedimen#1 +%OLD {\count0=\MPconcatfactor +%OLD \divide\dimen#1 \count0\relax} + +%OLD \def\doMPreducedimen#1 +%OLD {\advance\dimen#1 \ifdim\dimen#1>\zeropoint .5\else -.5\fi\MPconcatfactor +%OLD \divide\dimen#1 \MPconcatfactor} + +%D The transformation code is rewritten by Daniel H. Luecking who +%D describes his patch as follows: +%D +%D We would like to divide 1 by $X4, but all divisions are integer so +%D for accuracy we want to convert to large integers and make sure the +%D integer quotient has as many significant digits as possible. Thus we +%D need to replace $1/X$ with $M/N$ where $N$ is as large as possible +%D and $M/N$ is as large as possible. Also for simplicity $M$ should be +%D a power of 2. So we make $M = 2^{30}$ \footnote{$2^{31} - 1$ is the +%D largest legal integer. Using it (and simply ignoring the inaccuracy +%D caused by $-1$) turns out to be at least as accurate in all cases, +%D and more accurate in some.} (largest legal power of 2) and adjust +%D $X4 downward (if necessary) to the the range $1-2^{16}$. This gives +%D at least 15 significant binary digits, (almost as accurate as +%D \METAPOST\ for numbers near 1) or almost 5 significant figures +%D (decimal). + +\newcount\MPscratchCnt +\newdimen\MPscratchDim % will be assigned global + +\def\MPadjustdimen % sets \MPscratchDim and \MPscratchCnt + {\MPscratchCnt\zerocount + \doMPadjustdimen} + +\def\doMPadjustdimen + {\ifdim\MPscratchDim>\onepoint + \divide\MPscratchDim 2 + \advance\MPscratchCnt \plusone + \expandafter\doMPadjustdimen + \fi} -% \def\doMPreducedimen#1 -% {\count0\MPconcatfactor -% \advance\dimen#1 \ifdim\dimen#1>\zeropoint .5\else -.5\fi\count0 -% \divide\dimen#1 \count0\relax} +%OLD \def\doMPexpanddimen#1 +%OLD {\multiply\dimen#1 \MPconcatfactor\relax} + +%D DHL: When viewed as an integer, $1 \hbox{pt}=2^{16}$ so $2^{32}/X$ +%D is the right way to do $(1 \hbox{pt})/(X \hbox{pt})$ and get the +%D answer in points. But we are limited to $2^{30}/X$. However, we +%D actually do $[ 2^{30} / (X/2^K) ]*2^{2-K}$ where $K$ is the number +%D of halvings it takes to bring $X4 below $1 \hbox{pt}$. If $K$ is 0 +%D or 1 we readjust by multiplying by 4 or 2, otherwise by halving +%D $(K-2)$ times \type {\MPscratchCnt} holds the value of $K$ from +%D \type {\MPadjustdimen}. + +\def\MPreadjustdimen % acts on \MPscratchDim and MPscratchCnt + {\ifcase\MPscratchCnt + \multiply\MPscratchDim 4 + \or + \multiply\MPscratchDim 2 + \else + \expandafter\doMPreadjustdimen + \fi} -\def\doMPreducedimen#1 - {\advance\dimen#1 \ifdim\dimen#1>\zeropoint .5\else -.5\fi\MPconcatfactor - \divide\dimen#1 \MPconcatfactor} +\def\doMPreadjustdimen + {\ifnum\MPscratchCnt > 2 + \divide\MPscratchDim 2 + \advance\MPscratchCnt \minusone + \expandafter\doMPreadjustdimen + \fi} -% too inaccurate (see old pragma logo) -% -% \def\doMPreducedimen#1 -% {\count0=\MPconcatfactor -% \divide\dimen#1 \count0\relax} +\def\MPreciprocaldeterminant + {\MPscratchDim\withoutpt\the\dimen0 \dimen6 % s_x*s_y + \advance\MPscratchDim - \withoutpt\the\dimen2 \dimen4 % s_x*s_y - r_x*r_y + \ifdim\MPscratchDim<\zeropoint % we need a positive dimension + \MPscratchDim-\MPscratchDim % for \MPadjustdimen + \doMPreciprocal + \MPscratchDim-\MPscratchDim + \else + \doMPreciprocal + \fi} -\def\doMPexpanddimen#1 - {\multiply\dimen#1 \MPconcatfactor\relax} +\newcount\MPnumerator \MPnumerator = 1073741824 % 2^{30} + +% todo: dimexpr + +\def\doMPreciprocal % replace \MPscratchDim with its reciprocal + {\ifdim\MPscratchDim=\onepoint \else + \MPadjustdimen + \scratchcounter\MPnumerator + \divide\scratchcounter\MPscratchDim + \MPscratchDim1\scratchcounter % 1 needed ! + \MPreadjustdimen + \fi} + +%OLD \def\presetMPconcat +%OLD {\dimen 0=\gMPs1\onepoint \doMPreducedimen 0 % r_x +%OLD \dimen 2=\gMPs2\onepoint \doMPreducedimen 2 % s_x +%OLD \dimen 4=\gMPs3\onepoint \doMPreducedimen 4 % s_y +%OLD \dimen 6=\gMPs4\onepoint \doMPreducedimen 6 % r_y +%OLD \dimen 8=\gMPs5\onepoint \doMPreducedimen 8 % t_x +%OLD \dimen10=\gMPs6\onepoint \doMPreducedimen10 } % t_y +%OLD +%OLD \def\presetMPscale +%OLD {\dimen 0=\gMPs1\onepoint \doMPreducedimen 0 +%OLD \dimen 2 \zeropoint +%OLD \dimen 4 \zeropoint +%OLD \dimen 6=\gMPs2\onepoint \doMPreducedimen 6 +%OLD \dimen 8 \zeropoint +%OLD \dimen10 \zeropoint} \def\presetMPconcat - {\dimen 0=\gMPs1 \onepoint \doMPreducedimen 0 % r_x - \dimen 2=\gMPs2 \onepoint \doMPreducedimen 2 % s_x - \dimen 4=\gMPs3 \onepoint \doMPreducedimen 4 % s_y - \dimen 6=\gMPs4 \onepoint \doMPreducedimen 6 % r_y - \dimen 8=\gMPs5 \onepoint \doMPreducedimen 8 % t_x - \dimen10=\gMPs6 \onepoint \doMPreducedimen10 } % t_y + {\dimen 0=\gMPs1\onepoint % s_x + \dimen 2=\gMPs2\onepoint % r_x + \dimen 4=\gMPs3\onepoint % r_y + \dimen 6=\gMPs4\onepoint % s_y + \dimen 8=\gMPs5\onepoint % t_x + \dimen10=\gMPs6\onepoint} % t_y \def\presetMPscale - {\dimen 0=\gMPs1 \onepoint \doMPreducedimen 0 - \dimen 2=\zeropoint - \dimen 4=\zeropoint - \dimen 6=\gMPs2 \onepoint \doMPreducedimen 6 - \dimen 8=\zeropoint - \dimen10=\zeropoint} + {\dimen 0=\gMPs1\onepoint + \dimen 2 \zeropoint + \dimen 4 \zeropoint + \dimen 6=\gMPs2\onepoint + \dimen 8 \zeropoint + \dimen10 \zeropoint} \def\noMPtranslate % use this one grouped - {\dimen 8=\zeropoint % t_x - \dimen10=\zeropoint} % t_y + {\dimen 8 \zeropoint % t_x + \dimen10 \zeropoint} % t_y %D \starttyping %D \def\doMPconcat#1#2#3#4% @@ -1378,96 +1478,133 @@ %D We cannot use \type {\beginETEX} here since in plain we %D get \type {\outer} problems, sigh. -% \beginTEX - -\def\MPcriteriumA {512pt} % scale -\def\MPcriteriumB {2pt} % scale - -% \endTEX -% - -% \ifx\MPcriteriumA\undefined -% -% \newdimen\MPcriteriumA \MPcriteriumA=512pt -% \newdimen\MPcriteriumB \MPcriteriumB= 2pt -% -% \fi - -% one day i'll rewrite this to etex's \dimexpr (internally double precission) +%OLD \beginTEX +%OLD +%OLD \def\MPcriteriumA {512pt} % scale +%OLD \def\MPcriteriumB {2pt} % scale +%OLD +%OLD \endTEX +%OLD +%OLD \ifx\MPcriteriumA\undefined +%OLD +%OLD \newdimen\MPcriteriumA \MPcriteriumA=512pt +%OLD \newdimen\MPcriteriumB \MPcriteriumB= 2pt +%OLD +%OLD \fi + +%OLD \def\doMPconcat#1#2#3#4% +%OLD {\dimen12=#1pt % p_x +%OLD \dimen14=#3pt % p_y +%OLD % +%OLD \chardef\MPfactor\zerocount +%OLD \ifdim\dimen4<\MPcriteriumB\ifdim\dimen4>-\MPcriteriumB +%OLD \ifdim\dimen6<\MPcriteriumB\ifdim\dimen6>-\MPcriteriumB +%OLD \ifdim\dimen8<\MPcriteriumB\ifdim\dimen8>-\MPcriteriumB +%OLD \ifdim\dimen10<\MPcriteriumB\ifdim\dimen10>-\MPcriteriumB +%OLD \chardef\MPfactor\plusone +%OLD \fi\fi +%OLD \fi\fi +%OLD \fi\fi +%OLD \fi\fi +%OLD \ifcase\MPfactor % spurious 0 removed +%OLD \chardef\MPfactor\plusone +%OLD \ifdim\dimen12<\MPcriteriumA\ifdim\dimen12>-\MPcriteriumA +%OLD \ifdim\dimen14<\MPcriteriumA\ifdim\dimen14>-\MPcriteriumA +%OLD \chardef\MPfactor16 +%OLD \fi\fi +%OLD \fi\fi +%OLD \fi +%OLD % +%OLD \multiply\dimen12 \MPfactor +%OLD \multiply\dimen14 \MPfactor +%OLD % +%OLD \doMPreducedimen12 +%OLD \doMPreducedimen14 +%OLD % +%OLD \dimen16 \dimen 0 +%OLD \multiply \dimen16 \dimen 6 +%OLD \dimen20 \dimen 2 +%OLD \multiply \dimen20 \dimen 4 +%OLD \advance \dimen16 -\dimen20 +%OLD % +%OLD \dimen18 \dimen12 +%OLD \multiply \dimen18 \dimen 6 +%OLD \dimen20 \dimen14 +%OLD \multiply \dimen20 \dimen 4 +%OLD \advance \dimen18 -\dimen20 +%OLD \dimen20 \dimen 4 +%OLD \multiply \dimen20 \dimen10 +%OLD \advance \dimen18 \dimen20 +%OLD \dimen20 \dimen 6 +%OLD \multiply \dimen20 \dimen 8 +%OLD \advance \dimen18 -\dimen20 +%OLD % +%OLD \multiply \dimen12 -\dimen 2 +%OLD \multiply \dimen14 \dimen 0 +%OLD \advance \dimen12 \dimen14 +%OLD \dimen20 \dimen 2 +%OLD \multiply \dimen20 \dimen 8 +%OLD \advance \dimen12 \dimen20 +%OLD \dimen20 \dimen 0 +%OLD \multiply \dimen20 \dimen10 +%OLD \advance \dimen12 -\dimen20 +%OLD % +%OLD \ifdim\dimen16=\onepoint \else +%OLD \ifdim\dimen16>\MPconcatfactor \onepoint \relax +%OLD \doMPreducedimen16 +%OLD \divide \dimen18 \dimen16 \doMPexpanddimen18 +%OLD \divide \dimen12 \dimen16 \doMPexpanddimen12 +%OLD \else +%OLD \divide \dimen18 \dimen16 \doMPexpanddimen18 \doMPexpanddimen18 +%OLD \divide \dimen12 \dimen16 \doMPexpanddimen12 \doMPexpanddimen12 +%OLD \fi +%OLD \fi +%OLD % +%OLD \divide\dimen18 \MPfactor +%OLD \divide\dimen12 \MPfactor +%OLD % +%OLD \edef#2{\withoutpt\the\dimen18}% % p_x^\prime +%OLD \edef#4{\withoutpt\the\dimen12}} % p_y^\prime + +%D DHL: Ideally, $r_x$, $r_y$, $s_x4, $s_y$ should be in macros, not +%D dimensions (they are scalar quantities after all, not lengths). I +%D suppose the authors decided to do calculations with integer +%D arithmetic instead of using real factors because it's faster. +%D However, the actual macros test slower, possibly because I've +%D omitted three nested loops. In my test files, my approach is more +%D accurate. It is also far simpler and overflow does not seem to be a +%D significant concern. The scale factors written by Metapost are (?) +%D always $<=1$ (it scales coordinates internally) and coordinates are +%D always likely to be less than \type {\maxdimen}. +%D +%D If this should ever cause problems, the scale factors can be reduced. \def\doMPconcat#1#2#3#4% - {\dimen12=#1pt % p_x - \dimen14=#3pt % p_y - % - \chardef\MPfactor\zerocount - \ifdim\dimen4<\MPcriteriumB\ifdim\dimen4>-\MPcriteriumB - \ifdim\dimen6<\MPcriteriumB\ifdim\dimen6>-\MPcriteriumB - \ifdim\dimen8<\MPcriteriumB\ifdim\dimen8>-\MPcriteriumB - \ifdim\dimen10<\MPcriteriumB\ifdim\dimen10>-\MPcriteriumB - \chardef\MPfactor\plusone - \fi\fi - \fi\fi - \fi\fi - \fi\fi - \ifcase\MPfactor % spurious 0 removed - \chardef\MPfactor\plusone - \ifdim\dimen12<\MPcriteriumA\ifdim\dimen12>-\MPcriteriumA - \ifdim\dimen14<\MPcriteriumA\ifdim\dimen14>-\MPcriteriumA - \chardef\MPfactor16 - \fi\fi - \fi\fi - \fi - % - \multiply\dimen12 \MPfactor - \multiply\dimen14 \MPfactor - % - \doMPreducedimen12 - \doMPreducedimen14 - % - \dimen16 \dimen 0 - \multiply \dimen16 \dimen 6 - \dimen20 \dimen 2 - \multiply \dimen20 \dimen 4 - \advance \dimen16 -\dimen20 - % - \dimen18 \dimen12 - \multiply \dimen18 \dimen 6 - \dimen20 \dimen14 - \multiply \dimen20 \dimen 4 - \advance \dimen18 -\dimen20 - \dimen20 \dimen 4 - \multiply \dimen20 \dimen10 - \advance \dimen18 \dimen20 - \dimen20 \dimen 6 - \multiply \dimen20 \dimen 8 - \advance \dimen18 -\dimen20 - % - \multiply \dimen12 -\dimen 2 - \multiply \dimen14 \dimen 0 - \advance \dimen12 \dimen14 - \dimen20 \dimen 2 - \multiply \dimen20 \dimen 8 - \advance \dimen12 \dimen20 - \dimen20 \dimen 0 - \multiply \dimen20 \dimen10 - \advance \dimen12 -\dimen20 - % - \ifdim\dimen16=\onepoint \else - \ifdim\dimen16>\MPconcatfactor \onepoint \relax - \doMPreducedimen16 - \divide \dimen18 \dimen16 \doMPexpanddimen18 - \divide \dimen12 \dimen16 \doMPexpanddimen12 - \else - \divide \dimen18 \dimen16 \doMPexpanddimen18 \doMPexpanddimen18 - \divide \dimen12 \dimen16 \doMPexpanddimen12 \doMPexpanddimen12 - \fi - \fi - % - \divide\dimen18 \MPfactor - \divide\dimen12 \MPfactor - % + {\dimen12=#1pt % p_x % #1\onepoint + \dimen14=#3pt % p_y % #3\onepoint + \advance\dimen12 -\dimen8 % p_x - t_x + \advance\dimen14 -\dimen10 % p_y - t_y + \dimen18=\withoutpt\the\dimen6 \dimen12 % s_y(p_x - t_x) + \advance\dimen18 -\withoutpt\the\dimen4 \dimen14 % - r_y(p_y-t_y) + \dimen14=\withoutpt\the\dimen0 \dimen14 % s_x(p_y-t_y) + \advance\dimen14 -\withoutpt\the\dimen2 \dimen12 % - r_x(p_x-t_x) + % \MPscratchDim contains precomputed 1/D: + \dimen18=\withoutpt\the\MPscratchDim \dimen18 + \dimen14=\withoutpt\the\MPscratchDim \dimen14 \edef#2{\withoutpt\the\dimen18}% % p_x^\prime - \edef#4{\withoutpt\the\dimen12}} % p_y^\prime + \edef#4{\withoutpt\the\dimen14}} % p_y^\prime + +%D One reason for Daniel to write this patch was that at small sizes +%D the accuracy was less than optimal. Here is a test that demonstrates +%D that his alternative is pretty good: +%D +%D \startlinecorrection +%D \startMPcode +%D for i = 5cm,1cm,5mm,1mm,.5mm,.1mm,.01mm : +%D draw fullcircle scaled i withpen pencircle xscaled (i/10) yscaled (i/20) rotated 45 ; +%D endfor ; +%D \stopMPcode +%D \stoplinecorrection %D The following explanation of the conversion process was %D posted to the \PDFTEX\ mailing list by Tanmoy. The original @@ -1856,7 +1993,7 @@ \forgetall \offinterlineskip \startMPresources - \doprocessMPtoPDFfile} % {#1}{#2}{#3}} % {#1}{0#2}{0#3} would be saver + \doprocessMPtoPDFfile} % %D The next one is kind of private and probably will become obsolete): diff --git a/tex/context/base/type-buy.tex b/tex/context/base/type-buy.tex index 632793146..2c4c3fc1e 100644 --- a/tex/context/base/type-buy.tex +++ b/tex/context/base/type-buy.tex @@ -62,7 +62,6 @@ \definefontsynonym [SerifBoldItalic] [LucidaBright-DemiItalic] \definefontsynonym [SerifBoldSlanted] [LucidaBright-DemiItalic] \definefontsynonym [SerifCaps] [LucidaBrightSmallcaps] - \definefontsynonym [OldStyle] [MathItalic] \stoptypescript \starttypescript [sans] [lucida] [name] @@ -94,6 +93,14 @@ \definefontsynonym [MathBeta] [LucidaNewMath-Roman] \stoptypescript +\starttypescript [math] [lucida] [name] + \definefontsynonym [OldStyle] [MathItalic] + \definefontsynonym [Fraktur] [eufm10] + \definefontsynonym [Blackboard] [MathAlpha] + \definefontsynonym [Gothic] [eufm10] + \definefontsynonym [Calligraphic] [MathSymbol] % math caligraphic ! +\stoptypescript + \starttypescript [boldmath] [lucida] [name] \definefontsynonym [MathRoman] [LucidaBright-Demi] \definefontsynonym [MathExtension] [LucidaNewMath-Extension] diff --git a/tex/context/base/type-enc.tex b/tex/context/base/type-enc.tex index 47eba37fb..3a6c6a32f 100644 --- a/tex/context/base/type-enc.tex +++ b/tex/context/base/type-enc.tex @@ -850,7 +850,6 @@ \definefontsynonym [Euler-Extension] [zeuex10] \definefontsynonym [Euler-Symbol] [zeusm10] \definefontsynonym [Euler-Fraktur] [eufm10] - \definefontsynonym [CharterRomanMath] [bchr8r] [encoding=8r] \stoptypescript \starttypescript [boldmath,bfmath] [euler] [default] @@ -858,7 +857,6 @@ \definefontsynonym [Euler-Extension] [zeuex10] \definefontsynonym [Euler-Symbol-Bold] [zeusb10] \definefontsynonym [Euler-Fraktur-Bold] [eufb10] - \definefontsynonym [CharterRomanBoldMath] [bchb8r] [encoding=8r] \stoptypescript % AMS (AMS) diff --git a/tex/context/base/type-exa.tex b/tex/context/base/type-exa.tex index 749b2f390..c1da0d969 100644 --- a/tex/context/base/type-exa.tex +++ b/tex/context/base/type-exa.tex @@ -43,8 +43,8 @@ \starttypescript [times] [texnansi,ec,8r,t5,uc] \definetypeface [times] [rm] [serif] [times] [default] [encoding=\typescripttwo] - \definetypeface [times] [ss] [sans] [helvetica] [default] [rscale=.9,encoding=\typescripttwo] - \definetypeface [times] [tt] [mono] [modern] [default] [encoding=\typescripttwo,rscale=1.1] + \definetypeface [times] [ss] [sans] [helvetica] [default] [encoding=\typescripttwo,rscale=0.9] + \definetypeface [times] [tt] [mono] [modern] [default] [encoding=\typescripttwo,rscale=1.05] \definetypeface [times] [mm] [math] [times] [default] [encoding=\typescripttwo] % \usemathcollection[default] diff --git a/tex/context/base/type-pre.tex b/tex/context/base/type-pre.tex index 10413eae8..e884ba47b 100644 --- a/tex/context/base/type-pre.tex +++ b/tex/context/base/type-pre.tex @@ -126,7 +126,7 @@ \usetypescript [math] [ams] [all] - \usemathcollection[ams] + \usemathcollection[default] \stoptypescript @@ -254,8 +254,7 @@ \usetypescript [serif] [palatino] [name,\defaultencoding] \usetypescript [serif] [default] [size] - - \usetypescript [all] [palatino] [\defaultencoding] + \usetypescript [all] [palatino] [\defaultencoding] \stoptypescript diff --git a/tex/context/base/type-siz.tex b/tex/context/base/type-siz.tex index 465c63c46..d01d49e6d 100644 --- a/tex/context/base/type-siz.tex +++ b/tex/context/base/type-siz.tex @@ -620,25 +620,19 @@ \definebodyfont [9pt,10pt,11pt,12pt,14.4pt,17.3pt,20.7pt] [mm] [mr=zeurm10 sa 1, ex=zeuex10 sa 1, - mi=zeurm10 sa 1, sy=zeusm10 sa 1, - mb=bchr8r sa 1, - mc=eufm10 sa 1] + mi=eufm10 sa 1] \definebodyfont [6pt,7pt,8pt] [mm] - [mi=zeurm7 sa 1, - mr=zeurm7 sa 1, + [mr=zeurm7 sa 1, sy=zeusm7 sa 1, - mc=eufm7 sa 1, - mb=bchr8r sa 1, + mi=eufm7 sa 1, ex=zeuex10 sa 1] \definebodyfont [5pt] [mm] - [mi=zeurm5, - mr=zeurm5, + [mr=zeurm5, sy=zeusm5, - mc=eufm5, - mb=bchr8r at 5pt, + mi=eufm5, ex=zeuex10 at 5pt] \stoptypescript @@ -648,25 +642,19 @@ \definebodyfont [9pt,10pt,11pt,12pt,14.4pt,17.3pt,20.7pt] [mm] [mrbf=zeurb10 sa 1, exbf=zeuex10 sa 1, - mibf=zeurb10 sa 1, sybf=zeusb10 sa 1, - mbbf=bchb8r sa 1, - mcbf=eufb10 sa 1] + mibf=eufb10 sa 1] \definebodyfont [6pt,7pt,8pt] [mm] - [mibf=zeurb7 sa 1, - mrbf=zeurb7 sa 1, + [mrbf=zeurb7 sa 1, sybf=zeusb7 sa 1, - mcbf=eufb7 sa 1, - mbbf=bchb8r sa 1, + mibf=eufb7 sa 1, exbf=zeuex10 sa 1] \definebodyfont [5pt] [mm] - [mibf=zeurb5, - mrbf=zeurb5, + [mrbf=zeurb5, sybf=zeusb5, - mcbf=eufb5, - mbbf=bchb8r at 5pt, + mibf=eufb5, exbf=zeuex10 at 5pt] \stoptypescript @@ -675,25 +663,19 @@ \definebodyfont [9pt,10pt,11pt,12pt,14.4pt,17.3pt,20.7pt] [mm] [mr=zeurb10 sa 1, ex=zeuex10 sa 1, - mi=zeurb10 sa 1, sy=zeusb10 sa 1, - mb=bchb8r sa 1, - mc=eufb10 sa 1] + mi=eufb10 sa 1] \definebodyfont [6pt,7pt,8pt] [mm] - [mi=zeurb7 sa 1, - mr=zeurb7 sa 1, + [mr=zeurb7 sa 1, sy=zeusb7 sa 1, - mc=eufb7 sa 1, - mb=bchb8r sa 1, + mi=eufb7 sa 1, ex=zeuex10 sa 1] \definebodyfont [5pt] [mm] - [mi=zeurb5, - mr=zeurb5, + [mr=zeurb5, sy=zeusb5, - mc=eufb5, - mb=bchb8r at 5pt, + mi=eufb5, ex=zeuex10 at 5pt] \stoptypescript diff --git a/tex/context/base/type-spe.tex b/tex/context/base/type-spe.tex index 70990d4b0..6bc020f7a 100644 --- a/tex/context/base/type-spe.tex +++ b/tex/context/base/type-spe.tex @@ -11,6 +11,9 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. +% \controlspace -> enco files +% no special, always + \starttypescript [mono] [courier,lucida] [special] \def\controlspace{\getglyph{ComputerModernMono}{\char32}} \stoptypescript diff --git a/tex/context/base/type-syn.tex b/tex/context/base/type-syn.tex index d0a3b52fc..09e8dff45 100644 --- a/tex/context/base/type-syn.tex +++ b/tex/context/base/type-syn.tex @@ -108,42 +108,36 @@ \starttypescript [math] [euler] [name] \definefontsynonym [MathRoman] [Euler-Roman] % mr - \definefontsynonym [MathItalic] [Euler-Roman] % mi + \definefontsynonym [MathItalic] [Euler-Fraktur] % mi \definefontsynonym [MathExtension] [Euler-Extension] % ex \definefontsynonym [MathSymbol] [Euler-Symbol] % sy - \definefontsynonym [MathBeta] [CharterRomanMath] - \definefontsynonym [MathGamma] [Euler-Fraktur] % mc ? \stoptypescript \starttypescript [boldmath] [euler] [name] \definefontsynonym [MathRoman] [Euler-Roman-Bold] % mr - \definefontsynonym [MathItalic] [Euler-Roman-Bold] % mi + \definefontsynonym [MathItalic] [Euler-Fraktur-Bold] % mi \definefontsynonym [MathExtension] [Euler-Extension] % ex \definefontsynonym [MathSymbol] [Euler-Symbol-Bold] % sy - \definefontsynonym [MathBeta] [CharterRomanBoldMath] - \definefontsynonym [MathGamma] [Euler-Fraktur-Bold] % mc ? \stoptypescript \starttypescript [bfmath] [euler] [name] \definefontsynonym [MathRomanBold] [Euler-Roman-Bold] % mr - \definefontsynonym [MathItalicBold] [Euler-Roman-Bold] % mi + \definefontsynonym [MathItalicBold] [Euler-Fraktur-Bold] % mi \definefontsynonym [MathExtension] [Euler-Extension] % ex \definefontsynonym [MathSymbolBold] [Euler-Symbol-Bold] % sy - \definefontsynonym [MathBetaBold] [CharterRomanBoldMath] - \definefontsynonym [MathGammaBold] [Euler-Fraktur-Bold] % mc ? \stoptypescript \starttypescript [math] [euler] [name] - \definefontsynonym [OldStyle] [MathGamma] - \definefontsynonym [Fraktur] [MathGamma] - \definefontsynonym [Gothic] [MathGamma] + \definefontsynonym [OldStyle] [MathItalic] + \definefontsynonym [Fraktur] [MathItalic] + \definefontsynonym [Gothic] [MathItalic] \definefontsynonym [Calligraphic] [MathSymbol] \stoptypescript \starttypescript [boldmath] [euler] [name] - \definefontsynonym [OldStyle] [MathGammaBold] - \definefontsynonym [Fraktur] [MathGammaBold] - \definefontsynonym [Gothic] [MathGammaBold] + \definefontsynonym [OldStyle] [MathItalicBold] + \definefontsynonym [Fraktur] [MathItalicBold] + \definefontsynonym [Gothic] [MathItalicBold] \definefontsynonym [Calligraphic] [MathSymbolBold] \stoptypescript @@ -289,6 +283,14 @@ \definefontsynonym [MathExtension] [Fourier-Math-Extension] \stoptypescript +\starttypescript [math] [fourier] [name] % todo + \definefontsynonym [OldStyle] [Serif-OldStyle] % strange, no oldstyles + \definefontsynonym [Fraktur] [eufm10] + \definefontsynonym [Blackboard] [msbm10] + \definefontsynonym [Gothic] [eufm10] + \definefontsynonym [Calligraphic] [eusm10] +\stoptypescript + % Charter : \starttypescript [serif] [charter] [name] @@ -329,6 +331,14 @@ \definefontsynonym [MathBeta] [Times-Math-SymbolsB] \stoptypescript +\starttypescript [math] [times] [name] + \definefontsynonym [OldStyle] [MathItalic] + \definefontsynonym [Fraktur] [eufm10] + \definefontsynonym [Blackboard] [MathBeta] + \definefontsynonym [Gothic] [eufm10] + \definefontsynonym [Calligraphic] [eusm10] +\stoptypescript + % Helvetica : \starttypescript [sans] [helvetica] [name] @@ -381,6 +391,14 @@ \definefontsynonym [MathBeta] [Palatino-Math-SymbolsB] \stoptypescript +\starttypescript [math] [palatino] [name] + \definefontsynonym [OldStyle] [MathItalic] + \definefontsynonym [Fraktur] [eufm10] + \definefontsynonym [Blackboard] [MathBeta] + \definefontsynonym [Gothic] [eufm10] + \definefontsynonym [Calligraphic] [eusm10] +\stoptypescript + % bonus definitions \starttypescript [serif] [palatino] [name] diff --git a/tex/context/base/xtag-ext.tex b/tex/context/base/xtag-ext.tex index 3427efb30..5ee40a77c 100644 --- a/tex/context/base/xtag-ext.tex +++ b/tex/context/base/xtag-ext.tex @@ -241,7 +241,8 @@ \gdef\texXMLelement#1% {\begingroup - \setnormalcatcodes +% \setnormalcatcodes + \disableXML \scantokens\@EA\@EA\@EA{\csname\@@XMLsave:#1\endcsname}% \endgroup} diff --git a/tex/context/base/xtag-ini.tex b/tex/context/base/xtag-ini.tex index c064deca8..21377d22d 100644 --- a/tex/context/base/xtag-ini.tex +++ b/tex/context/base/xtag-ini.tex @@ -2128,7 +2128,19 @@ \def\XMLflush#1% one level {\csname\ifcsname\@@XMLdata:#1\endcsname\@@XMLdata:#1\else\s!empty\fi\endcsname} -\let\XMLflushdata\XMLflush +%D \starttyping +%D \defineXMLenvironmentsave[formula]{}{$\XMLtex{formula}$} +%D +%D \startXMLdata +%D <formula>t+3+x+t\neq m\alpha\frac\theta\hbar</formula> +%D \stopXMLdata +%D \stoptyping + +\def\XMLtex#1% + {\begingroup + \disableXML + \scantokens\@EA\@EA\@EA{\csname\@@XMLdata:#1\endcsname}% + \endgroup} \def\XMLflushdata#1% see m-steps for usage {\@EA\ifx\csname\@@XMLdata:#1\endcsname\longempty\else @@ -2165,6 +2177,7 @@ \simplifyXMLelements \let\getXMLentity\firstofoneargument \XMLrawentitiestrue + \chardef\utfunicodetracer7% new \xdef\@@XML@@string{\csname\@@XMLdata:#2\endcsname}% \egroup \convertcommand\@@XML@@string\to#1} @@ -2174,6 +2187,7 @@ \enableXMLexpansion \simplifyXMLelements \simplifyXMLentities + \chardef\utfunicodetracer7% new \let\getXMLentity\expandedXMLentity % should this go in \simplify ? \xdef\@@XML@@string{\csname\@@XMLdata:#2\endcsname}% \egroup diff --git a/tex/context/interface/keys-cz.xml b/tex/context/interface/keys-cz.xml index 290a7d44e..22c293997 100644 --- a/tex/context/interface/keys-cz.xml +++ b/tex/context/interface/keys-cz.xml @@ -1,6 +1,6 @@ <?xml version="1.0"?> -<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="cz" version="2004.12.06"> +<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="cz" version="2004.12.17"> <cd:variables> <cd:variable name="one" value="jedna"/> diff --git a/tex/context/interface/keys-de.xml b/tex/context/interface/keys-de.xml index 4e2d03bd1..9b9f92fc1 100644 --- a/tex/context/interface/keys-de.xml +++ b/tex/context/interface/keys-de.xml @@ -1,6 +1,6 @@ <?xml version="1.0"?> -<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="de" version="2004.12.06"> +<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="de" version="2004.12.17"> <cd:variables> <cd:variable name="one" value="eins"/> diff --git a/tex/context/interface/keys-en.xml b/tex/context/interface/keys-en.xml index 6ae70c2dd..9871f1ba7 100644 --- a/tex/context/interface/keys-en.xml +++ b/tex/context/interface/keys-en.xml @@ -1,6 +1,6 @@ <?xml version="1.0"?> -<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="en" version="2004.12.06"> +<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="en" version="2004.12.17"> <cd:variables> <cd:variable name="one" value="one"/> diff --git a/tex/context/interface/keys-it.xml b/tex/context/interface/keys-it.xml index 2caba051e..bf5ad3355 100644 --- a/tex/context/interface/keys-it.xml +++ b/tex/context/interface/keys-it.xml @@ -1,6 +1,6 @@ <?xml version="1.0"?> -<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="it" version="2004.12.06"> +<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="it" version="2004.12.17"> <cd:variables> <cd:variable name="one" value="uno"/> diff --git a/tex/context/interface/keys-nl.xml b/tex/context/interface/keys-nl.xml index ffa076af4..b92e77274 100644 --- a/tex/context/interface/keys-nl.xml +++ b/tex/context/interface/keys-nl.xml @@ -1,6 +1,6 @@ <?xml version="1.0"?> -<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="nl" version="2004.12.06"> +<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="nl" version="2004.12.17"> <cd:variables> <cd:variable name="one" value="een"/> diff --git a/tex/context/interface/keys-ro.xml b/tex/context/interface/keys-ro.xml index ebafd1281..23516086b 100644 --- a/tex/context/interface/keys-ro.xml +++ b/tex/context/interface/keys-ro.xml @@ -1,6 +1,6 @@ <?xml version="1.0"?> -<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="ro" version="2004.12.06"> +<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="ro" version="2004.12.17"> <cd:variables> <cd:variable name="one" value="unu"/> |