diff options
Diffstat (limited to 'Master/texmf-dist/tex/context/base/mkiv/back-ini.mkiv')
-rw-r--r-- | Master/texmf-dist/tex/context/base/mkiv/back-ini.mkiv | 116 |
1 files changed, 82 insertions, 34 deletions
diff --git a/Master/texmf-dist/tex/context/base/mkiv/back-ini.mkiv b/Master/texmf-dist/tex/context/base/mkiv/back-ini.mkiv index e810ecde554..8729403f848 100644 --- a/Master/texmf-dist/tex/context/base/mkiv/back-ini.mkiv +++ b/Master/texmf-dist/tex/context/base/mkiv/back-ini.mkiv @@ -16,10 +16,23 @@ \writestatus{loading}{ConTeXt Backend Macros / Initialization} +%D The exact page model depends on the backend so we just define some +%D variables that are used. A helper at the \LUA\ end will synchronize +%D with the internal variables. We store these in the format. + +% \newdimen\backendpageheight +% \newdimen\backendpagewidth +% \newdimen\backendinchoffset \backendinchoffset=1in + +%D Now we load the \LUA\ code: + \registerctxluafile{back-ini}{} +\registerctxluafile{back-res}{} -%D We currently have a curious mix between tex and lua backend -%D handling but eventually most will move to lua. +\doifelsefileexists{back-out.mkiv}{\loadmarkfile{back-out}}{} + +%D We currently have a curious mix between tex and lua backend handling but +%D eventually most will move to \LUA. \unprotect @@ -27,54 +40,84 @@ \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 Right from the start \CONTEXT\ had a backend system based on runtime pluggable +%D code. As most backend issues involved specials and since postprocessors had not +%D that much in common, we ended up with a system where we could switch backend as +%D well as output code 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 Because \LUATEX\ has the backend built in, and since some backend issues have +%D been moved to the frontend I decided to provide new backend code for \MKIV, +%D 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 At this moment \DVI\ is no longer used for advanced document output and we +%D therefore dropped support for this format. Future versions might support more +%D backends again, but this has a low priority. %D -%D Not everything here makes sense and the content of this file will -%D definitely change (or even go away). +%D Not everything here makes sense and the content of this file will definitely +%D change (or even go away). + +% rotation + +\unexpanded\def\dostartrotation#1% + {\forcecolorhack + \clf_startrotation#1\relax} % todo: implement without Q q + +\unexpanded\def\dostoprotation + {\clf_stoprotation + \forcecolorhack} + +% scaling + +\unexpanded\def\dostartscaling#1#2% + {\forcecolorhack + \clf_startscaling rx #1 ry #2\relax} -\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 +\unexpanded\def\dostopscaling + {\clf_stopscaling + \forcecolorhack} + +% mirroring + +\unexpanded\def\dostartmirroring + {\clf_startmirroring} + +\unexpanded\def\dostopmirroring + {\clf_stopmirroring} + +% transform + +\unexpanded\def\dotransformnextbox#1#2#3#4#5#6% + {\dowithnextbox{\dodotransformnextbox{#1}{#2}{#3}{#4}{#5}{#6}}} + +\unexpanded\def\dodotransformnextbox#1#2#3#4#5#6% + {\hpack + {\kern #5\onebasepoint + \raise#6\onebasepoint + \hpack + {\clf_startmatrix rx #1 sx #2 sy #3 ry #4\relax + \box\nextbox + \clf_stopmatrix}}} %D \macros %D {back_ovalbox} %D -%D When we look at the implementation, this is a complicated -%D one. There are seven arguments. +%D When we look at the implementation, this is a complicated one. There are seven +%D 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). +%D This command has to return a \type {\vbox} which can be used to lay over another +%D one (with text). The radius is in degrees, the stroke and fill are~\type {1} +%D (true) of~\type {0} (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 Clipping is implemented in such a way that an arbitrary code can be fed. %D %D \starttyping %D \dostartclipping {pathname} {width} {height} @@ -87,9 +130,8 @@ %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 By default, \TEX\ produces \DVI\ files which can be converted to other filetypes. +%D Sometimes it is handy to know what the target file will be. In other driver %D modules we wil set \type {\jobsuffix} to \type {pdf}. %D Backend configuration: @@ -113,6 +155,12 @@ \clf_setrealspaces{\backendparameter\c!space}% \to \everysetupbackend +\appendtoks + \ifdefined\clf_resetmapfile + \clf_resetmapfile + \fi +\to \everysetupbackend + %D For older styles: \let\setupoutput\gobbleoneoptional |