summaryrefslogtreecommitdiff
path: root/macros/generic/luatex85
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/generic/luatex85
Initial commit
Diffstat (limited to 'macros/generic/luatex85')
-rw-r--r--macros/generic/luatex85/README.md10
-rw-r--r--macros/generic/luatex85/luatex85.dtx277
-rw-r--r--macros/generic/luatex85/luatex85.ins10
-rw-r--r--macros/generic/luatex85/luatex85.pdfbin0 -> 170646 bytes
4 files changed, 297 insertions, 0 deletions
diff --git a/macros/generic/luatex85/README.md b/macros/generic/luatex85/README.md
new file mode 100644
index 0000000000..fd21bd08f7
--- /dev/null
+++ b/macros/generic/luatex85/README.md
@@ -0,0 +1,10 @@
+luatex85 - Compatibility package for luatex 0.85+
+==================================================
+
+This package provides emulation of pdfTeX
+primitives for LuaTeX v0.85+.
+
+Please report any issues via
+https://github.com/josephwright/luatex85/issues
+
+This package is maintained by David Carlisle and Joseph Wright. \ No newline at end of file
diff --git a/macros/generic/luatex85/luatex85.dtx b/macros/generic/luatex85/luatex85.dtx
new file mode 100644
index 0000000000..3d1da23c57
--- /dev/null
+++ b/macros/generic/luatex85/luatex85.dtx
@@ -0,0 +1,277 @@
+% \iffalse
+%% Source File: luatex85.dtx
+%% Copyright 2015-2016 LaTeX3 project
+%%
+%% This file may be distributed under the terms of the LPPL.
+%% See README for details.
+%
+%<*dtx>
+ \ProvidesFile{luatex85.dtx}
+%</dtx>
+%<package>\ifx\ProvidesPackage\undefined
+%<package>\def\next#1#2[#3]{\wlog{#2 #3}\expandafter\gdef
+%<package>\csname ver@luatex85.sty\endcsname{#3}}
+%<package>\expandafter\next\fi
+%<package>\ProvidesPackage{luatex85}
+%<driver> \ProvidesFile{luatex85.drv}
+% \fi
+% \ProvidesFile{luatex85.dtx}
+ [2016/06/15 v1.4 pdftex aliases for luatex]
+%
+% \iffalse
+%<*driver>
+\documentclass{ltxdoc}
+\begin{document}
+\DocInput{luatex85.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \hfuzz0.6pt
+%
+% \GetFileInfo{luatex85.dtx}
+%
+% \title{The \textsf{luatex85} Package\thanks{This file
+% has version number \fileversion, last
+% revised \filedate.
+% Please report any issues at https://github.com/josephwright/luatex85/issues}}
+% \author{LaTeX3 project}
+% \date{\filedate}
+% \maketitle
+%
+% \section{Introduction}
+%
+% Lua\TeX\ 0.85 and 0.87 contain many changes from Lua\TeX~0.80 as contained in \TeX{}Live 2014.
+% Most notably almost all the pdf\TeX\ extended primitves with names
+% \verb|\pdf...| have been renamed or removed. Lua\TeX\ is aiming for
+% a cleaner separation of the ``back end'' PDF generation (that
+% corresponds to the work of a dvi driver with classical \TeX).
+%
+% There are many other changes and bug fixes in the Lua\TeX\ sources,
+% however this package is just concerned with compatibility for
+% documents or packages using the pdf\TeX\ primitives.
+%
+% The changes are of several types:
+%
+% A few commands have been removed,
+% as the facilities are achievable in Lua (mostly these had already
+% been removed in earlier release).
+%
+% Some commands have been ``adopted'' as Lua\TeX\ primitives and so
+% lose their \verb|\pdf| prefix (and in some cases are renamed)
+% so \verb|\pdfsavepos| becomes \verb|\savepos|, but \verb|\pdfoutput|
+% becomes \verb|\outputmode|.
+%
+% The majority of the ``back end'' commands have been removed and
+% replaced by calls to one of three new primitives,
+% \verb|\pdffeedback|, \verb|\pdfextension| and \verb|\pdfvariable|
+% These take keywords so for example \verb|\pdfliteral| becomes
+% \verb|\pdfextension literal|.
+%
+% The Lua\TeX\ manual lists suitable compatibility definitions
+% that may be made so that documents can continue to use the old
+% names. Mostly this package just consists of those definitions, with
+% minor changes in some cases. (Mostly different choices over the use
+% of \verb|\protected| or \verb|\edef|.)
+%
+% In general it is recommended that packages are updated to use the
+% new primitive Lua\TeX\ syntax when used with Lua\TeX, but until
+% packages are updated authors may find that adding\\%
+% \verb|\RequirePackage{luatex85}|\\
+% as the first line of their
+% document helps with the use of older packages with the new Lua\TeX.
+%
+% As noted above, there are other changes in Lua\TeX, notably the
+% removal of the |\verb\write18| syntax for accessing system commands.
+% The \LaTeX\ \textsf{tools} bundle includes
+% the \textsf{shellesc} package which emulates
+% \verb|\write18| as well as providing an alternative
+% \verb|\Shellescape| syntax that may be used with all engines.
+%
+% Note that if packages are found that require \textsf{luatex85}
+% you may want to contact the authors asking that the packages
+% be updated to current Lua\TeX\ syntax. The \textsf{luatex85} package
+% should be seen as a temporary aid to improve compatibility during
+% the transition towards Lua\TeX~1.0 it is not intended that future
+% documents should always have to load this compatibility emulation.
+%
+% The package is designed to also be usable with plain Lua\TeX.
+%
+%
+% \section{Implementation}
+%
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+%
+% \subsection{Checking the engine}
+% \begin{macrocode}
+\ifx\pdfvariable\undefined
+ \expandafter\endinput
+\fi
+% \end{macrocode}
+
+% \subsection{Commands promoted to Lua\TeX\ primitives.}
+%
+%
+% \begin{macrocode}
+\let\pdfpagewidth \pagewidth
+\let\pdfpageheight \pageheight
+\let\pdfadjustspacing \adjustspacing
+\let\pdfprotrudechars \protrudechars
+\let\pdfnoligatures \ignoreligaturesinfont
+\let\pdffontexpand \expandglyphsinfont
+\let\pdfcopyfont \copyfont
+\let\pdfxform \saveboxresource
+\let\pdflastxform \lastsavedboxresourceindex
+\let\pdfrefxform \useboxresource
+\let\pdfximage \saveimageresource
+\let\pdflastximage \lastsavedimageresourceindex
+\let\pdflastximagepages \lastsavedimageresourcepages
+\let\pdfrefximage \useimageresource
+\let\pdfsavepos \savepos
+\let\pdflastxpos \lastxpos
+\let\pdflastypos \lastypos
+\let\pdfoutput \outputmode
+\let\pdfdraftmode \draftmode
+\let\pdfpxdimen \pxdimen
+\let\pdfinsertht \insertht
+\let\pdfnormaldeviate \normaldeviate
+\let\pdfuniformdeviate \uniformdeviate
+\let\pdfsetrandomseed \setrandomseed
+\let\pdfrandomseed \randomseed
+\let\pdfprimitive \primitive
+\let\ifpdfprimitive \ifprimitive
+\let\ifpdfabsnum \ifabsnum
+\let\ifpdfabsdim \ifabsdim
+% \end{macrocode}
+% Use |\enableprimitives| here in case of conflict with tracefnt.
+% \begin{macrocode}
+\directlua{tex.enableprimitives('pdf',{'tracingfonts'})}
+% \end{macrocode}
+%
+% \subsection{Commands converted to constants}
+% The |\pdffeedback| version is not defined in dvi mode and (currently) is
+% curiously defined to be 40 in pdf mode, so define these as constant values.
+% \begin{macrocode}
+\protected\def\pdftexversion {\numexpr 140\relax}
+ \def\pdftexrevision {7}
+%\protected\def\pdftexversion {\numexpr\pdffeedback version\relax}
+% \def\pdftexrevision {\pdffeedback revision}
+% \end{macrocode}
+%
+% \subsection{Commands converted to \cs{pdffeedback}}
+% Expandable commands use a simple |\def|. Internal registers that
+% were accessed via |\the| in PDF\TeX\ use a |\protected| definition
+% using |\numexpr| terminated by an explicit |\relax|.
+% \begin{macrocode}
+\protected\def\pdflastlink {\numexpr\pdffeedback lastlink\relax}
+\protected\def\pdfretval {\numexpr\pdffeedback retval\relax}
+\protected\def\pdflastobj {\numexpr\pdffeedback lastobj\relax}
+\protected\def\pdflastannot {\numexpr\pdffeedback lastannot\relax}
+ \def\pdfxformname {\pdffeedback xformname}
+{\outputmode=1
+ \xdef\pdfcreationdate {\pdffeedback creationdate}
+}
+ \def\pdffontname {\pdffeedback fontname}
+ \def\pdffontobjnum {\pdffeedback fontobjnum}
+ \def\pdffontsize {\pdffeedback fontsize}
+ \def\pdfpageref {\pdffeedback pageref}
+ \def\pdfcolorstackinit {\pdffeedback colorstackinit}
+% \end{macrocode}
+%
+% \subsection{Commands converted to calls to \cs{pdfextension}}
+% These use a |\protected| definition. Commands that take no following
+% argument are currently terminated by |\relax| as suggested in the
+% Lua\TeX\ manual, although it would be appear to be sufficient to
+% consistently terminate these commands with a space.
+% \begin{macrocode}
+\protected\def\pdfliteral {\pdfextension literal}
+\protected\def\pdfcolorstack {\pdfextension colorstack}
+\protected\def\pdfsetmatrix {\pdfextension setmatrix}
+\protected\def\pdfsave {\pdfextension save\relax}
+\protected\def\pdfrestore {\pdfextension restore\relax}
+\protected\def\pdfobj {\pdfextension obj }
+\protected\def\pdfrefobj {\pdfextension refobj }
+\protected\def\pdfannot {\pdfextension annot }
+\protected\def\pdfstartlink {\pdfextension startlink }
+\protected\def\pdfendlink {\pdfextension endlink\relax}
+\protected\def\pdfoutline {\pdfextension outline }
+\protected\def\pdfdest {\pdfextension dest }
+\protected\def\pdfthread {\pdfextension thread }
+\protected\def\pdfstartthread {\pdfextension startthread }
+\protected\def\pdfendthread {\pdfextension endthread\relax}
+\protected\def\pdfinfo {\pdfextension info }
+\protected\def\pdfcatalog {\pdfextension catalog }
+\protected\def\pdfnames {\pdfextension names }
+\protected\def\pdfincludechars {\pdfextension includechars }
+\protected\def\pdffontattr {\pdfextension fontattr }
+\protected\def\pdfmapfile {\pdfextension mapfile }
+\protected\def\pdfmapline {\pdfextension mapline }
+\protected\def\pdftrailer {\pdfextension trailer }
+\protected\def\pdfglyphtounicode {\pdfextension glyphtounicode }
+% \end{macrocode}
+%
+% \subsection{Commands converted to calls to \cs{pdfvariable}}
+% Currently as suggested in the manual the call to |\pdfvariable| has
+% no explict termination, and relies on the fact that no variable name
+% is a prefix of another. |\edef| is used to save one expansion step
+% when these comands are used the definition directly access the
+% internal command token.
+% \begin{macrocode}
+\protected\edef\pdfcompresslevel {\pdfvariable compresslevel}
+\protected\edef\pdfobjcompresslevel {\pdfvariable objcompresslevel}
+\protected\edef\pdfdecimaldigits {\pdfvariable decimaldigits}
+\protected\edef\pdfgamma {\pdfvariable gamma}
+\protected\edef\pdfimageresolution {\pdfvariable imageresolution}
+\protected\edef\pdfimageapplygamma {\pdfvariable imageapplygamma}
+\protected\edef\pdfimagegamma {\pdfvariable imagegamma}
+\protected\edef\pdfimagehicolor {\pdfvariable imagehicolor}
+% \end{macrocode}
+% Note that |\pdfimageaddfilename| was never actually in PDF\TeX,
+% But is included here so that all the |\pdfvariable| cases are covered.
+% \begin{macrocode}
+\protected\edef\pdfimageaddfilename {\pdfvariable imageaddfilename}
+% \end{macrocode}
+% \begin{macrocode}
+\protected\edef\pdfpkresolution {\pdfvariable pkresolution}
+\protected\edef\pdfinclusioncopyfonts {\pdfvariable inclusioncopyfonts}
+\protected\edef\pdfinclusionerrorlevel {\pdfvariable inclusionerrorlevel}
+% \end{macrocode}
+% Note that |\pdfreplacefont| was never in public releases of
+% PDF\TeX, It was in Lua\TeX0.85, but discussion on luatex list
+% lead to it being removed in 0.87
+% \begin{macrocode}
+%\protected\edef\pdfreplacefont {\pdfvariable replacefont}
+% \end{macrocode}
+% \begin{macrocode}
+\protected\edef\pdfgentounicode {\pdfvariable gentounicode}
+\protected\edef\pdfpagebox {\pdfvariable pagebox}
+\protected\edef\pdfminorversion {\pdfvariable minorversion}
+\protected\edef\pdfuniqueresname {\pdfvariable uniqueresname}
+\protected\edef\pdfhorigin {\pdfvariable horigin}
+\protected\edef\pdfvorigin {\pdfvariable vorigin}
+\protected\edef\pdflinkmargin {\pdfvariable linkmargin}
+\protected\edef\pdfdestmargin {\pdfvariable destmargin}
+\protected\edef\pdfthreadmargin {\pdfvariable threadmargin}
+\protected\edef\pdfpagesattr {\pdfvariable pagesattr}
+\protected\edef\pdfpageattr {\pdfvariable pageattr}
+\protected\edef\pdfpageresources {\pdfvariable pageresources}
+% \end{macrocode}
+% Note that |\pdfxformattr| and |\pdfxformresources| were never
+% in PDF\TeX, But are included here so that all the
+% |\pdfvariable| cases are covered.
+% \begin{macrocode}
+\protected\edef\pdfxformattr {\pdfvariable xformattr}
+\protected\edef\pdfxformresources {\pdfvariable xformresources}
+% \end{macrocode}
+% \begin{macrocode}
+\protected\edef\pdfpkmode {\pdfvariable pkmode}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+%
+% \Finale
+%
diff --git a/macros/generic/luatex85/luatex85.ins b/macros/generic/luatex85/luatex85.ins
new file mode 100644
index 0000000000..8a9b7e9344
--- /dev/null
+++ b/macros/generic/luatex85/luatex85.ins
@@ -0,0 +1,10 @@
+\input docstrip
+\keepsilent
+\preamble
+\endpreamble
+
+\askforoverwritefalse
+
+\generate{\file{luatex85.sty}{\from{luatex85.dtx}{package}}}
+
+\endbatchfile
diff --git a/macros/generic/luatex85/luatex85.pdf b/macros/generic/luatex85/luatex85.pdf
new file mode 100644
index 0000000000..99675fdf4c
--- /dev/null
+++ b/macros/generic/luatex85/luatex85.pdf
Binary files differ