diff options
Diffstat (limited to 'Master/texmf-dist/tex/context/base/enco-pfr.tex')
-rw-r--r-- | Master/texmf-dist/tex/context/base/enco-pfr.tex | 303 |
1 files changed, 0 insertions, 303 deletions
diff --git a/Master/texmf-dist/tex/context/base/enco-pfr.tex b/Master/texmf-dist/tex/context/base/enco-pfr.tex deleted file mode 100644 index 902eb7bcd55..00000000000 --- a/Master/texmf-dist/tex/context/base/enco-pfr.tex +++ /dev/null @@ -1,303 +0,0 @@ -%D \module -%D [ file=enco-pfr, -%D version=2000.12.10, % adapted 2005.08.14 to more delayed loading -%D title=\CONTEXT\ Encoding Macros, -%D subtitle=PDF Font Resource Inclusion, -%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. - -\beginXETEX - \endinput -\endXETEX - -\beginLUATEX - \endinput -\endLUATEX - -\ifx\pdffontresource\undefined\else\endinput\fi - -\writestatus{loading}{Context Encoding Macros (pdf)} - -%D This is an experimental module in which we implement -%D font resource inclusion in \PDF. One reason to include -%D font resources is that it enables a search engine to -%D perform a search (I'm told). This feature ws requested by -%D Petr Ferdus from Czech. - -%D A simple test file may look like this (watch how we first -%D load the encoding and then the font; previous font -%D definitions are left untouched.) -%D -%D \starttyping -%D % output=pdftex interface=en -%D -%D \useencoding[pfr] -%D \setupbodyfont[csr] -%D -%D \starttext -%D test \`z \'z \bf test \sl test \bs quite funny \`z \page -%D test \`z \'z \bf test \sl test \bs quite funny \`z \page -%D \stoptext -%D \stoptyping -%D -%D We do our best to include a (often large) font resources -%D only once. The current implementation is not that -%D general which is also due to the fact that \type -%D {\pdffontattr} is expanded instantly and persistent. A -%D more versatile (but also slower) approach is to keep track -%D of the fonts and either flush the information at shipout -%D time, or at the end of the document. - -%D \macros -%D {ifincludepdffontresources} -%D -%D You can turn of this feature using the following switch. - -\newif\ifincludepdffontresources \includepdffontresourcestrue - -\ifx\pdfglyphtounicode\undefined \else \loadmarkfile{enco-pfr} \fi - -% somehow we cannot preload this beast; also, it's mk dependent -% -% \appendtoks -% \doifelse{\jobsuffix}{pdf}{\loadmkiifile{pdfr-def.tex}}% -% \to \everystarttext - -% ugly, this should go to the driver spec-tpd - -\ifx\pdfgentounicode\undefined \else - \ifcase\pdfgentounicode \else - \expandafter \expandafter \expandafter \endinput - \fi -\fi - -\unprotect - -% a problem is that there is always an ec vector added even when -% we switch to texnansi early; this has to do with the fact that -% we need to setup fonts at startup; this a pain when we have -% textless documents, so we should have a way around, i.e. an -% extension to pdftex where we can tag numbers inside user specs -% and attributes. -% -% currently we need to use immediate so we end up with entries - -%D The name of the resource is stored in a macro, as is its -%D object reference. A resource is only processed once. When -%D done, the resource name is erased, and we use this fact to -%D prevent redefinition as well as well as reloading. So, a -%D macro defined with \type {\pdffontfileresource} can have -%D three states: -%D -%D \startitemize[packed] -%D \item undefined: not yet loaded, and not yet included -%D \item some value: loaded, but not yet included -%D \item empty: loaded, and already included -%D \stopitemize - -\def\pdffontresource {pdfr:\currentencoding} -\def\pdffontfileresource{pdff:\pdffontresource} - -%D A resource is defined in a file prefixed by \type {pdfr-}. -%D The following \PDF\ code is composed by Ondrej Koala Vacha (I -%D probably mispelled this name). -%D -%D \starttyping -%D \startpdffontresource[il2] -%D /CIDInit /ProcSet findresource begin -%D 12 dict begin -%D begincmap -%D /CIDSystemInfo -%D << /Registry (Adobe) -%D /Ordering (T1UV) -%D /Supplement 0 -%D >> def -%D /CMapName /Adobe-Identity-UCS def -%D /CMapType 1 def -%D 1 begincodespacerange -%D <00> <FF> -%D endcodespacerange -%D %%FontSpecificEncoding -%D 191 beginbfrange -%D <20> <20> <0020> % space dec: 32 oct:040 hex:20 -%D .... .... ...... . ........ .... .. ....... ...... -%D <ff> <ff> <00ff> % dotaccent dec:255 oct:377 hex:ff -%D endbfrange -%D endcmap -%D CMapName currentdict /CMap defineresource pop end -%D end -%D \stoppdffontresource -%D \stoptyping -%D -%D We don't preload such huge definitions, and process them -%D run||time to save memory. Therefore, in the encoding -%D vector, we only add an entry like: -%D -%D \starttyping -%D \startencoding [il2] -%D \usepdffontresource il2 -%D \stopencoding -%D \stoptyping -%D -%D This macro is defined as follows. - -\def\usepdffontresource #1 % - {\doifundefinedelse\pdffontfileresource % okay, undefined, so either - {\setxvalue\pdffontfileresource{#1}} % brand new, or not yet loaded - {\doifvaluesomething\pdffontfileresource % only if not loaded in which - {\setxvalue\pdffontfileresource{#1}}}} % case it's made empty - -%D Watch how we check for duplicated loading. The resource -%D itself, when asked for, is included immediately, after which -%D we save its reference. Normally a document will have one -%D such a resource. - -% \long\def\startpdffontresource[#1]#2\stoppdffontresource -% {\doif{#1}\currentencoding -% {\immediate\pdfobj useobjnum \getvalue{\pdffontresource} stream {#2}}} - -% alternatively we can use object references - -% fails when we switch back and forward between dvi/pdf mode -% -% \long\def\startpdffontresource[#1]#2\stoppdffontresource -% {\doif{#1}\currentencoding{\doifdefined\pdffontresource -% {\immediate\pdfobj useobjnum \getvalue{\pdffontresource} stream {#2}}}} - -\long\def\startpdffontresource[#1]#2\stoppdffontresource - {\doif{#1}\currentencoding{\doifdefined\pdffontresource - {\expanded{\doshipoutpdffontresource{\getvalue{\pdffontresource}}{#2}}}}} - -\def\doshipoutpdffontresource#1#2% - {\ifnum\realpageno<\plustwo - \doglobal\appendtoks - \ifcase\pdfoutput\else\immediate\pdfobj useobjnum #1 stream {#2}\fi - \to\everyfirstshipout - \else - \ifcase\pdfoutput\else\immediate\pdfobj useobjnum #1 stream {#2}\fi - \fi} - -% cleaner but not better: -% -% \newtoks \collectedpdffontresources -% -% \def\doshipoutpdffontresource#1#2% -% {\doglobal\appendtoks -% \ifcase\pdfoutput\else\immediate\pdfobj useobjnum #1 stream {#2}\fi -% \to \collectedpdffontresources} -% -% \def\dofluspdffontresources -% {\the\collectedpdffontresources -% \global\collectedpdffontresources\emptytoks} -% -% \appendtoks \dofluspdffontresources \to \everybeforeshipout - -%D The reference to such a vector is to be handled at font -%D definition time, which is why we hook it into the font -%D loading routine. A little bit of indirectness speeds up -%D the process when this feature is disabled and keeps the -%D macros readable. - -% \newevery \everyfont \relax - -\appendtoksonce \includepdffontresource \to \everyfont - -% \def\includepdffontresource -% {\ifincludepdffontresources -% \ifx\pdffontattr\undefined -% % we're not using (a recent version of) pdftex -% \else\ifcase\pdfoutput -% % we're not in pdf mode -% \else -% \doincludepdffontresource -% \fi\fi -% \fi} - -\def\includepdffontresource - {\ifx\pdfgentounicode\undefined - \expandafter\ifx\the\font\nullfont \else - \ifx\pdffontattr\undefined - % we're not using (a recent version of) pdftex - \else\ifcase\pdfoutput - % we're not in pdf mode - \else - \doincludepdffontresource - \fi\fi - \fi - \else\ifcase\pdfgentounicode - \ifincludepdffontresources - \expandafter\ifx\the\font\nullfont \else - \ifx\pdffontattr\undefined - % we're not using (a recent version of) pdftex - \else\ifcase\pdfoutput - % we're not in pdf mode - \else - \doincludepdffontresource - \fi\fi - \fi - \fi - \or - \global\let\includepdffontresource\relax % automatic, built in - \fi\fi} - -\def\dododoincludepdffontresource#1% encoding - {\bgroup - \edef\currentencoding{#1}% - \doifvaluesomething\pdffontfileresource - {\startreadingfile - \ignorelines % just in case \par is redefined; this thing can get called anywhere - \readsysfile{pdfr-\getvalue\pdffontfileresource}\donothing\donothing - \stopreadingfile - \letgvalue\pdffontfileresource\empty}% - \egroup} - -\def\doincludepdffontresource - {\ifcsname\s!ucmap\fontfile\endcsname\else - \dodoincludepdffontresource - \fi} - -\def\dodoincludepdffontresource - {% does this font has an encoding specified vector - \doifsomething\currentencoding % no \ifx - {% is there a pdf font encoding resource file defined - \ifcsname\pdffontresource\endcsname - % (fake) object defined - \else\ifcsname\pdffontfileresource\endcsname - % is there a resource already included - \doifsomething\pdffontfileresource - {\pdfobj reserveobjnum {}% - \setxvalue\pdffontresource{\the\pdflastobj}% - \flushatshipout{\dododoincludepdffontresource{\currentencoding}}}% -% \doglobal\appendetoks -% \noexpand\dododoincludepdffontresource{\currentencoding}% -% \to \everybeforeshipout}% prevent multiple loading - \fi\fi - \ifcsname\pdffontresource\endcsname - \expanded{\pdffontattr\font{/ToUnicode \csname\pdffontresource\endcsname\space0 R}}% - % do it only once for each font - \letgvalue{\s!ucmap\fontfile}\empty - \fi}} - -%D For the moment, we keep this definition here, if only -%D because \type {\usepdffontencoding} is not defined in the -%D core. In the end, this will go to \type {enco-*.tex}. -%D -%D Test: -%D -%D \starttyping -%D \useencoding[pfr] \usetypescript[palatino][ec] \setupbodyfont[palatino] -%D -%D \starttext -%D fi ff ffi -%D \stoptext -%D \stoptyping - -\startencoding [il2] \usepdffontresource il2 \stopencoding -\startencoding [ec] \usepdffontresource ec \stopencoding - -\protect \endinput |