summaryrefslogtreecommitdiff
path: root/macros/generic/tex-ini-files/luatexconfig.tex
blob: 5ad8913b65aaeeda5b63f35669f1ac6610959829 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
% tex-ini-files 2016-04-15: luatexconfig.tex

% Load shared (PDF) settings in LuaTeX

\begingroup
  \catcode`\{=1 %
  \catcode`\}=2 %
  \catcode`\#=6 %
  % Settings that were primitives
  % accessed in newer LuaTeX releases via \pdfvariable
  \def\list{%
      {compresslevel}%
      {decimaldigits}%
      {horigin}%
      {minorversion}%
      {objcompresslevel}%
      {pkresolution}%
      {vorigin}%
  }%
  \def\do#1{%
    \ifx\relax#1\else
      \directlua{tex.enableprimitives("", {"pdf#1"})}%
      \expandafter\do
    \fi
  }%
  % Enable all \pdf... primitives in one go
  \expandafter\do\list{output}{pageheight}{pagewidth}{variable}\relax
  % Other required primitives that are not named \pdf...
  \directlua{tex.enableprimitives("",
    {"pageheight", "pagewidth", "outputmode"})}%
  % Newer LuaTeX releases don't have \pdfoutput, etc.:
  % emulate names where appropriate
  \ifx\pdfoutput\undefined
    \global\let\pdfoutput\outputmode
    \global\let\pdfpageheight\pageheight
    \global\let\pdfpagewidth\pagewidth
    \def\do#1{%
      \ifx\relax#1\else
        \expandafter\xdef\csname pdf#1\endcsname{\pdfvariable #1}%
        \expandafter\do
      \fi
    }%
    \expandafter\do\list\relax
  \fi
  % The file pdftexconfig.tex contains only <primitive> = <value> lines
  % so can now be read using the (emulated) primitives
  % This needs to be global so set \globaldefs for this step
  \globaldefs=1 %
  \input{pdftexconfig}%
  \globaldefs=0 %
  % Pick up on a request for DVI mode and apply it whilst \pdfoutput is
  % still defined
  \ifx\dvimode\relax
    \global\pdfoutput=0 %
  \fi
  \global\let\dvimode\undefined
  % Clean up all of the globally-allocated names
  \def\do#1{%
    \ifx\relax#1\else
      \global\expandafter\let\csname pdf#1\endcsname\undefined
      \expandafter\do
    \fi
  }%
  \expandafter\do\list{output}{pageheight}{pagewidth}{variable}\relax
  \global\let\outputmode\undefined
  \global\let\pageheight\undefined
  \global\let\pagewidth\undefined
  \global\let\dvimode\undefined
\endgroup