diff options
author | Norbert Preining <norbert@preining.info> | 2020-05-07 03:01:09 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2020-05-07 03:01:09 +0000 |
commit | 56bd1f5b8377f54b4af39a114362a7762d27f13c (patch) | |
tree | 882c573288f2a3f158b490ea3de1672fca9e94a9 /macros/luatex/optex/output.opm | |
parent | 36d8a5cd45b5a96007208a0d5b1f52e708d0fec8 (diff) |
CTAN sync 202005070301
Diffstat (limited to 'macros/luatex/optex/output.opm')
-rw-r--r-- | macros/luatex/optex/output.opm | 245 |
1 files changed, 0 insertions, 245 deletions
diff --git a/macros/luatex/optex/output.opm b/macros/luatex/optex/output.opm deleted file mode 100644 index f1c250f5b8..0000000000 --- a/macros/luatex/optex/output.opm +++ /dev/null @@ -1,245 +0,0 @@ -%% This is part of OpTeX project, see http://petr.olsak.net/optex - -\_codedecl \nopagenumbers {Output routine <2020-03-28>} % preloaded in format - - \_doc ----------------------------- - \`\_optexoutput` is default output routine. You can create another... - \_cod ----------------------------- - -\_output={\_optexoutput} -\_def \_optexoutput{\_begoutput \_shipout\_completepage \_endoutput} - - \_doc ----------------------------- - Default \`\_begoutput` and \`\_endoutput` is defined. - If you need another functionality implemented in the output routine, you can - \^`\addto``\_begoutput{...}` or \^`\addto``\_endoutput{...}`. The settings - here is local in the `\output` group. - - The \`\_prepoffsets` can set `\hoffset` differently for left or right - page. It is re-defined by the \^`\margins` macro.. - - The \^`\_regmark` tokens list includes accumulated `#2` from the \^`\regmacro`. - Logos and another macros are re-defined here (locally) for their usage - in headlines or footlines. - \_cod ----------------------------- - -\_def \_begoutput{\_incr\_gpageno - \_immediate\_wref\_Xpage{{\the\gpageno}{\_folio}}% - \_prepoffsets \_the\_regmark} % -\_def \_endoutput{\_advancepageno - {\_globaldefs=1 \_the\_nextpages \_nextpages={}}% - \_ifnum\_outputpenalty>-20000 \_else\_dosupereject\_fi -} -\_def \_prepoffsets {} - - \_doc ----------------------------- - \`\gpageno` counts pages from one in whole document - \_cod ----------------------------- - -\_newcount\_gpageno -\_public \gpageno ; - - \_doc ----------------------------- - The \`\_completepage` is similar what plain \TeX/ does in its output routine. - New is only \`\_backgroundbox`. It is `\vbox` with zero height with its - contents (from \^`\pgbackground`) llaped down. It is shifted directly to the - left-upper corner of the paper. - - The \`\_ensureblack` sets the typesetting of its parameter locally to `\Black` - color. We needn't do this if colors are never used in the document. So, - default value of the `\_ensureblack` macro is empty. But first usage of - color macros in the document re-defines `\_ensureblack`. - See the section~\ref[colors] for more details. - \_cod ----------------------------- - -\_def\_completepage{\_vbox{% - \_istoksempty \_pgbackground - \_iffalse \_ensureblack{\_backgroundbox{\_the\_pgbackground}}\_nointerlineskip \_fi - \_ensureblack{\_makeheadline}% - \_vbox to\_vsize {\_boxmaxdepth=\_maxdepth \_pagecontents}% \pagebody in plainTeX - \_ensureblack{\_makefootline}}% -} -\_def \_ensureblack #1{#1} % will be re-defined by color macros -\_let \_openfnotestack = \_relax % will be re-defined by color macros -\_def \_backgroundbox #1{\_moveleft\_hoffset\_vbox to0pt{\_kern-\voffset #1\_vss}} - - \_doc ----------------------------- - \`\_makeheadline` creates `\vbox to0pt` with its contents (the \^`\headline`) - shifted by \^`\headlinedist` up. - \_cod ----------------------------- - -\_def\_makeheadline {\_istoksempty \_headline \_iffalse - \_vbox to0pt{\_vss - \_baselineskip=\_headlinedist \_lineskiplimit=-\maxdimen - \_line{\_the\_headline}\_hbox{}}\_nointerlineskip - \_fi -} - - \_doc ----------------------------- - The \`\_makefootline` appends the \^`\footline` to the page-body box. - \_cod ----------------------------- - -\_def\_makefootline{\_istoksempty \_footline \_iffalse - \_baselineskip=\_footlinedist - \_lineskiplimit=-\maxdimen \_line{\_the\_footline} - \_fi -} - - \_doc ----------------------------- - The \`\_pagecontents` is similar as in plain \TeX/. The only differnece is - that the \`\_pagedest` is inserted at the top of `\_pagecontents` and - \^`\_ensureblack` is applied to the \^`\topins` and \^`\footins` material.\nl - The \`\_footnoterule` is defined here. - \_cod ----------------------------- - -\_def\_pagecontents{\_pagedest % destination of the page - \_ifvoid\_topins \_else \_ensureblack{\_unvbox\_topins}\_fi - \_dimen0=\dp255 \_unvbox255 % open up \box255 - \_ifvoid\_footins \_else % footnote info is present - \_vskip\_skip\_footins - \_ensureblack{\_footnoterule \_openfnotestack \_unvbox\_footins}\fi - \kern-\_dimen0 \_vskip \_pgbottomskip -} -\_def \_pagedest {{\_def\_destheight{25pt}\_dest[pg:\_the\_gpageno]}} -\_def \_footnoterule {\kern-3pt \hrule width 2truein \kern 2.6pt } - - \_doc ----------------------------- - \`\pageno`, \`\folio`, \`\nopagenumbers`, \`\advancepageno` - and \`\normalbottom` - used in the context of the output routine - from plain \TeX/ is defined here. - Only the \`\raggedbottom` macro is defined differently. We use the - \^`\pgbottomskip` register here which is set to 0\,pt by default. - \_cod ----------------------------- - -\_countdef\_pageno=0 \_pageno=1 % first page is number 1 -\_def \_folio {\_ifnum\_pageno<0 \_romannumeral-\_pageno \_else \_number\_pageno \_fi} -\_def \_nopagenumbers {\_footline={}} -\_def \_advancepageno {% - \_ifnum\_pageno<0 \_global\_advance\_pageno by-1 \_else \_incr\_pageno \_fi -} % increase |pageno| -\_def \_raggedbottom {\_topskip=\_dimexpr\_topskip plus60pt \_pgbottomskip=0pt plus1fil\_relax} -\_def \_normalbottom {\_topskip=\_dimexpr\_topskip \_pgbottomskip=0pt\_relax} - -\_public \pageno \folio \nopagenumbers \advancepageno \raggedbottom \normalbottom ; - - \_doc ----------------------------- - Macros for footnotes are the same as in plain \TeX. There is only one - difference: \`\vfootnote` is implemented as \`\_opfootnote` with empty - parameter `#1`. This parameter should do a local settings inside - the \`\footins` group and it does it when `\fnote` macro is used.\nl - The `\_opfootnote` nor `\vfootnote` don't take the footnote text - as a parameter. This is due to user can do catcode settings (like inline - verbatim) in the footnote text. This idea is adapted from plain \TeX.\nl - The \`\footnote` and \`\footstrut` is defined as in plain \TeX/. - \_cod ----------------------------- - -\_newinsert\_footins -\_def \_footnote #1{\_let\_osf=\_empty % parameter #2 (the text) is read later - \_ifhmode \_edef\_osf{\_spacefactor\_the\_spacefactor}\/\_fi - #1\_osf\_vfootnote{#1}} -\_def\_vfootnote{\_opfootnote{}} -\_def \_opfootnote #1#2{\_insert\_footins\_bgroup - \_interlinepenalty=\_interfootnotelinepenalty - \_leftskip=0pt \_rightskip=0pt \_spaceskip=0pt \_xspaceskip=0pt \_relax - \_let\_colorstackcnt=\_fnotestack % special color stack for footnotes - #1\_relax % local settings used by \fnote macro - \_splittopskip=\_ht\_strutbox % top baseline for broken footnotes - \_splitmaxdepth=\_dp\_strutbox \_floatingpenalty=20000 - \_textindent{#2}\_footstrut - \_isnextchar \_bgroup - {\_bgroup \_aftergroup\_vfootA \_afterassignment\_ignorespaces \_let\_next=}{\_vfootB}% -} -\_def\_vfootA{\_unskip\_strut\_isnextchar\_colorstackpop\_closefncolor\_vfootF} -\_def\_vfootB #1{#1\_uskip\_strut\_vfootF} -\_def\_vfootF{\_egroup} % close \_insert\_footins\_bgroup -\_def\_closefncolor#1{#1\_isnextchar\_colorstackpop\_closefncolor\_vfootF} -\_def \_footstrut {\_vbox to\_splittopskip{}} -\_skip\_footins=\_bigskipamount % space added when footnote is present -\_count\_footins=1000 % footnote magnification factor (1 to 1) -\_dimen\_footins=8in % maximum footnotes per page -\_public - \footins \footnote \vfootnote \footstrut ; - - \_doc ----------------------------- - The \`\topins` macros - \`\topinsert`, \`\midinsert`, \`\pageinsert`, \`\endinsert` - are the same as in plain \TeX/. - \_cod ----------------------------- - -\_newinsert\_topins -\_newifi\_ifupage \_newifi\_ifumid -\_def \_topinsert {\_umidfalse \_upagefalse \_oins} -\_def \_midinsert {\_umidtrue \_oins} -\_def \_pageinsert {\_umidfalse \_upagetrue \_oins} -\_skip\_topins=\_zoskip % no space added when a topinsert is present -\_count\_topins=1000 % magnification factor (1 to 1) -\_dimen\_topins=\_maxdimen % no limit per page -\_def \_oins {\_par \_begingroup\_setbox0=\_vbox\_bgroup} % start a \_vbox -\_def \_endinsert {\_par\_egroup % finish the \_vbox - \_ifumid \_dimen0=\_ht0 \_advance\_dimen0 by\_dp0 \_advance\_dimen0 by\_baselineskip - \_advance\_dimen0 by\_pagetotal \_advance\_dimen0 by-\_pageshrink - \_ifdim\_dimen0>\_pagegoal \_umidfalse \_upagefalse \_fi \_fi - \_ifumid \_bigskip \_box0 \_bigbreak - \_else \_insert \_topins {\_penalty100 % floating insertion - \_splittopskip=0pt - \_splitmaxdepth=\_maxdimen \_floatingpenalty=0 - \_ifupage \_dimen0=\_dp0 - \_vbox to\_vsize {\_unvbox0 \_kern-\_dimen0}% depth is zero - \_else \_box0 \_nobreak \_bigskip \_fi}\_fi\_endgroup} - -\_public \topins \topinsert \midinsert \pageinsert \endinsert ; - - \_doc ----------------------------- - The \`\draft` macro is an example of usage `\_pgbackground` to create - water color marks. - \_cod ----------------------------- - -\_def \_draft {\_pgbackground={\_draftbox{\_draftfont DRAFT}}% - \_fontdef\_draftfont{\_setfontsize{at10pt}\_bf}% - \_global\_let\_draftfont=\_draftfont -} -\_def \_draftbox #1{\_setbox0=\_hbox{#1}% - \_kern.5\_vsize \_kern4.5\_wd0 - \_hbox to0pt{\_kern.5\_hsize \_kern-1\_wd0 - \_pdfsave \_pdfrotate{55}\_pdfscale{10}{10}% - \_hbox to0pt{\_localcolor\LightGrey \_box0\_hss}% - \_pdfrestore - \_hss}% -} -\_public \draft ; - -\_endcode % ------------------------------------- - - -The output routine \^`\_optexoutput` is similar as in plain \TeX. It does: - -\begitems -* \^`\_begoutput` which does: - \begitems - * increments \^`\gpageno`, - * prints `\_Xpage{<gpageno>}{<pageno>}` to the `.ref` file - (if \^`\openref` is active), - * calculates `\hoffset`, - * sets local meaning of macros used in headlines/footlines (see \^`\regmacro`). - \enditems -* `\shipout`\^`\_completepage`, which is `\vbox` of -- - \begitems - * backrground box, if \^`\pgbackground` is non-empty, - * headline box by \^`\_makeheadline`, if the \^`\headline` is nonempty, - * `\vbox to\vsize` of \^`\_pagecontents` which cosnists of -- - \begitems - * \^`\_pagedest`, the page destination `pg:<gpageno>` for hyperlinks is created here, - * \^`\topins` box if non-empty (from \^`\topinsert`s), - * `\box255` with completed vertical material from main vertical mode, - * \^`\_footnoterule` and \^`\footins` box if nonempty (from \^`\fnote`, \^`\footnote`), - * \^`\pgbottomskip` (default is 0\,pt). - \enditems - * footline box by `\_makefootline`, if the \^`\footline` is nonempty - \enditems -* \^`\_endoutput` which does: - \begitems - * increments \^`\pageno` using \^`\advancepageno` - * runs output routine repeatedly if \^`\dosupereject` is activated. - \enditems -\enditems |