diff options
Diffstat (limited to 'Master/texmf-dist/tex/context/base/spec-mis.tex')
-rw-r--r-- | Master/texmf-dist/tex/context/base/spec-mis.tex | 237 |
1 files changed, 237 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/context/base/spec-mis.tex b/Master/texmf-dist/tex/context/base/spec-mis.tex new file mode 100644 index 00000000000..0134c8bbc74 --- /dev/null +++ b/Master/texmf-dist/tex/context/base/spec-mis.tex @@ -0,0 +1,237 @@ +%D \module +%D [ file=spec-mis, +%D version=1997.04.01, +%D title=\CONTEXT\ Special Macros, +%D subtitle=Miscellaneous Macros, +%D author=Hans Hagen, +%D date=\currentdate, +%D copyright={PRAGMA / Hans Hagen \& Ton Otten}] +%C +%C This module is part of the \CONTEXT\ macro||package and is +%C therefore copyrighted by \PRAGMA. See mreadme.pdf for +%C details. + +%D Quite some modules in this group are dedicated to supporting +%D \PDF\ directly by means of \PDFTEX or indirectly by using +%D Acrobat Distiller. This module implements some common +%D features. + +\writestatus{loading}{Context Special Macros / Miscellaneous Macros} + +\unprotect + +%D \macros +%D {URLhash} +%D +%D A rather trivial macro: + +\expandafter\def\expandafter\URLhash\expandafter{\string#} + +%D \macros +%D {ifusepagedestinations} +%D +%D In \PDF\ version 1.0 only page references were supported, +%D while in \DVIWINDO\ 1.N only named references were accepted. +%D Therefore \CONTEXT\ supports both methods of referencing. In +%D \PDF\ version 1.1 named destinations arrived. Lack of +%D continuous support of version 1.1 viewers for \MSDOS\ +%D therefore sometimes forces us to prefer page references. As +%D a bonus, they are faster too and have no limitations. How +%D fortunate we were having both mechanisms available when the +%D version 3.0 (\PDF\ version 1.2) viewers proved to be too +%D bugged to support named destinations. + +\newif\ifusepagedestinations + +%D \macros +%D {ifhighlighthyperlinks} +%D +%D The next switch can be used to make user hyperlinks are +%D not highlighted when clicked on. + +\newif\ifhighlighthyperlinks + +%D \macros +%D {ifgotonewwindow} +%D +%D To make the {\em goto previous jump} feature more +%D convenient when using more than one file, it makes sense +%D to force the viewer to open a new window for each file +%D opened. + +\newif\ifgotonewwindow + +%D \macros +%D {ifPDFstrokecolor} +%D +%D We can reduce the filesize a bit by setting the next switch +%D to false. The amount of reduction depends on the use of +%D color, but don't expect more than a few percent. Zip +%D compression is already rather efficient in itself. + +\newif\ifPDFstrokecolor \PDFstrokecolortrue + +%D \macros +%D {dodoinsertfile,dofileinsertion, +%D definefileinsertion,doiffileinsertionsupported} +%D +%D File insertion depend on the driver or \TEX\ variant used. +%D All driver modules use the same scheme for file insertion, +%D and therefore have the next macro in common: + +% \def\dododoinsertfile[#1][#2,#3][#4,#5]% \next kan weg +% {\def\fileinsertionclass{do#1insert}% +% \doifdefinedelse{\fileinsertionclass#3} +% {\def\next{\getvalue{\fileinsertionclass#3}}} +% {\doifdefinedelse{\fileinsertionclass#2} +% {\def\next{\getvalue{\fileinsertionclass#2}}} +% {\def\next{\gobbleninearguments}}}% +% \next{#4}{#5}} +% +% more modern +% +% \def\dododoinsertfile[#1][#2,#3][#4,#5]% +% {\def\fileinsertionclass{do#1insert}% +% \doifdefinedelse{\fileinsertionclass#3} +% {\getvalue{\fileinsertionclass#3}} +% {\doifdefinedelse{\fileinsertionclass#2} +% {\getvalue{\fileinsertionclass#2}} +% {\gobbleninearguments}}% +% {#4}{#5}} +% +% more efficient +% +% \def\dododoinsertfile[#1][#2,#3][#4,#5]% +% {\def\fileinsertionclass{do#1insert}% +% \executeifdefined{\fileinsertionclass#3} +% {\executeifdefined{\fileinsertionclass#2}\gobbleninearguments}% +% {#4}{#5}} +% +% cleaner + +\def\dododoinsertfile[#1][#2,#3][#4,#5]% + {\executeifdefined{do#1insert#3}{\executeifdefined{do#1insert#2}\gobbleninearguments}{#4}{#5}} + +\def\dodoinsertfile#1#2#3% + {\dododoinsertfile[#1][#2][#3]} + +\def\definefileinsertion#1#2% + {\addtocommalist{#2}\supportedfileinsertions + \setvalue{do#1insert#2}} + +\def\dofileinsertion#1#2% + {\getvalue{do#1insert#2}} + +\newevery \everyresetspecials \relax + +\appendtoks \let\supportedfileinsertions\empty \to \everyresetspecials + +\let\supportedfileinsertions\empty + +\def\doiffileinsertionsupportedelse#1% + {\ExpandBothAfter\doifinstringelse{#1}{\c!tex,\c!tmp,\supportedfileinsertions}} + +%D This macro is called with 10 arguments, where the first +%D one specifies the driver, like \type{yy} or \type{tr}. The +%D second argument is a \type{{type,method}} pair and the +%D third the filename. + +%D Just in case this one is undefined (which can happen if +%D this module is used outside \CONTEXT): + +\ifx\setreferencefilename\undefined + + \def\setreferencefilename#1\to#2{\edef#2{#1}} + +\fi + +%D When submitting forms, we need to communicate the format. + +\chardef\submitoutputformat=0 % 0=unknown 1=HTML 2=FDF 3=XML + +\def\setsubmitoutputformat#1% + {\doifinsetelse{#1}{FDF,fdf} + {\chardef\submitoutputformat2} + {\doifinsetelse{#1}{XML,xml} + {\chardef\submitoutputformat3} + {\chardef\submitoutputformat1}}% + \relax} + +%D \macros +%D {escapePSstring} +%D +%D \starttyping +%D \escapePSstring(t\e\1st)))))\to\crap \crap +%D \stoptyping + +% testcase: webschrift met lege regels en unbalanced () + +\bgroup + +\catcode`\*=\@@escape +\catcode`\\=\@@letter + +*long*gdef*escapedPSstring#1% + {*aftergroup*string + *ifnum`#1=12 + *aftergroup*n% + *else*ifnum`#1=13 + *aftergroup*n% + *else*if#1(% + *aftergroup*(% + *else*if#1)% + *aftergroup*)% + *else*if#1\% + *aftergroup*\% + *else + *aftergroup#1% + *fi*fi*fi*fi*fi} + +*egroup + +\long\def\escapePSstring#1\to#2% + {\convertargument#1\to#2% + \bgroup + \ifx#2\empty \else + \setverbosecscharacters + \aftergroup\edef + \aftergroup#2% + \aftergroup{% + \expandafter\handletokens#2\with\escapedPSstring + \aftergroup}% + \fi + \egroup} + +% \long\def\preservePSpar#1\to#2% +% {\bgroup +% \def\par{\rawcharacter{12}}% +% \expanded{\egroup\noexpand\def\noexpand#2{#1}}} + +\long\def\preservePSpar#1\to#2% + {\bgroup + \def\par{\rawcharacter{12}\rawcharacter{12}}% + \expanded{\egroup\noexpand\def\noexpand#2{#1}}} + +%D \macros +%D {ifPDFunicode} +%D +%D We can use this switch to signal that content streams has +%D to be unicoded. + +\newif\ifPDFunicode + +%D \macros +%D {makeMPintoPDFobject, handleMPfshow, setMPPDFobject, getMPPDFobject} +%D +%D \METAPOST\ support. + +\appendtoks + \chardef\makeMPintoPDFobject\zerocount + \def\setMPPDFobject#1#2{\def\getMPPDFobject{\box#2}}% +\to \everyresetspecials + +\appendtoks + \let\handleMPfshow\dohandleMPfshow +\to \everyresetspecials + +\protect \endinput |