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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
|
%D \module
%D [ file=back-ini,
%D version=2009.04.15,
%D title=\CONTEXT\ Backend Macros,
%D subtitle=Initialization,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
%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 Most will go away here as it is replaced by \LUA\ calls to
%D backend functions.
\writestatus{loading}{ConTeXt Backend Macros / Initialization}
\registerctxluafile{back-ini}{1.001}
%D We currently have a curious mix between tex and lua backend
%D handling but eventually most will move to lua.
\unprotect
\ifdefined\everybackendshipout \else \newtoks\everybackendshipout \fi
\ifdefined\everylastbackendshipout \else \newtoks\everylastbackendshipout \fi
\ifdefined\everybackendlastinshipout \else \newtoks\everybackendlastinshipout \fi % e.g. finalize via latelua
%D Right from the start \CONTEXT\ had a backend system based on
%D runtime pluggable code. As most backend issues involved specials
%D and since postprocessors had not that much in common, we ended up
%D with a system where we could switch backend as well as output code
%D for multiple backends at the same time.
%D
%D Because \LUATEX\ has the backend built in, and since some backend
%D issues have been moved to the frontend I decided to provide new
%D backend code for \MKIV, starting with what was actually used.
%D
%D At this moment \DVI\ is no longer used for advanced document
%D output and we therefore dropped support for this format. Future
%D versions might support more backends again, but this has a low
%D priority.
%D
%D Not everything here makes sense and the content of this file will
%D definitely change (or even go away).
\let \dostartrotation \gobbleoneargument
\let \dostoprotation \donothing
\let \dostartscaling \gobbletwoarguments
\let \dostopscaling \donothing
\let \dostartmirroring \donothing
\let \dostopmirroring \donothing
\let \dotransformnextbox\gobblesixarguments % and pass last box
%D \macros
%D {back_ovalbox}
%D
%D When we look at the implementation, this is a complicated
%D one. There are seven arguments.
%D
%D \starttyping
%D \back_ovalbox {w} {h} {d} {linewidth} {radius} {stroke} {fill} {variant}
%D \stoptyping
%D
%D This command has to return a \type{\vbox} which can be used
%D to lay over another one (with text). The radius is in
%D degrees, the stroke and fill are~\type{1} (true) of~\type{0}
%D (false).
\let\back_ovalbox \gobbleeightarguments
%D \macros
%D {dostartclipping,dostopclipping}
%D
%D Clipping is implemented in such a way that an arbitrary code
%D can be fed.
%D
%D \starttyping
%D \dostartclipping {pathname} {width} {height}
%D \dostopclipping
%D \stoptyping
\let \dostartclipping \gobblethreearguments
\let \dostopclipping \donothing
%D \macros
%D {jobsuffix}
%D
%D By default, \TEX\ produces \DVI\ files which can be
%D converted to other filetypes. Sometimes it is handy to
%D know what the target file will be. In other driver
%D modules we wil set \type {\jobsuffix} to \type {pdf}.
%D Backend configuration:
\installcorenamespace{backend}
\installsetuponlycommandhandler \??backend {backend}
\let\jobsuffix\empty
\unexpanded\def\back_job_set_suffix#1% % checking could happen in mode
{\ifx\jobsuffix\empty\else\resetsystemmode\jobsuffix\fi
\edef\jobsuffix{#1}%
\ifx\jobsuffix\empty\else\setsystemmode \jobsuffix\fi}
\back_job_set_suffix{pdf} % default
% \setupbackend[space=yes] % replace spacing in (pdf) file
\appendtoks
\clf_setrealspaces{\backendparameter\c!space}%
\to \everysetupbackend
%D For older styles:
\let\setupoutput\gobbleoneoptional
\protect \endinput
|