% engine=luatex
\startenvironment luatexref-env
% something rests this, but i hav eno time not to see where
\unprotect \bgroup
\ifx\normalsuber\undefined \def\normalsuber{_} \fi
\ifx\normalsuper\undefined \def\normalsuper{^} \fi
\catcode`_=\active
\catcode`^=\active
\gdef\nonknuthmode
{\appendtoks\let_\normalsuber\let^\normalsuper\to\everymathematics
\mathcode`_="8000
\mathcode`^="8000
\catcode`_=\@@other
\catcode`^=\@@other
}% \let\nonknuthmode\relax}
\gdef\donknuthmode
{\catcode`_=\@@subscript
\catcode`^=\@@superscript}
\egroup \protect
\usemodule[abr-02]
% \tex : tex command
% \lua : native lua code
% \luatex : lua lib, function, value defined in luatex
\nonknuthmode
\setuptolerance[stretch,tolerant]
\setuptype[lines=hyphenated] \setuptyping[lines=hyphenated]
\let\lua \type
\let\luatex \type
\def\|{\string|}
\def\>{\string>}
\def\showfields#1{\ctxlua
{ do
local t = string.split('#1',',')
local r = { }
for _,a in pairs(node.fields(t[1],t[2])) do
if not (a == 'id' or a == 'subtype' or a =='next' or a=='prev') then
table.insert(r,'\\type{'.. a .. '}')
end
end
tex.sprint(table.concat(r, ', '))
end
}%
}
\def\showid#1{\ctxlua
{ do
local t = string.split('#1',',')
tex.sprint('\\type{'.. node.id(t[1]) .. '}')
if t[2] then
tex.sprint(', \\type{'.. node.subtype(t[2]) .. '}')
end
end
}%
}
\def\todo#1%
{\dontleavehmode{\bf\red <TODO: #1>}}
\setuplayout
[height=middle,
width=middle,
backspace=2cm,
topspace=2cm]
\setuppagenumbering
[alternative=doublesided]
\setupitemize[each][packed]
\setupwhitespace[medium]
\preloadtypescripts
\definetypeface[mainfacenormal] [ss][sans] [iwona] [default]
\definetypeface[mainfacenormal] [rm][serif][palatino] [default]
\definetypeface[mainfacenormal] [tt][mono] [modern] [default][rscale=1.1]
\definetypeface[mainfacenormal] [mm][math] [iwona] [default][encoding=default]
\definetypeface[mainfacemedium] [ss][sans] [iwona-medium][default]
\definetypeface[mainfacenormal] [rm][serif][palatino] [default]
\definetypeface[mainfacemedium] [tt][mono] [modern] [default][rscale=1.1]
\definetypeface[mainfacemedium] [mm][math] [iwona-medium][default][encoding=default]
\definetypeface[mainfacenarrowtt][tt][mono] [modern] [default][rscale=1.1]
\setupbodyfont[mainfacenormal,11pt]
\definehead
[remark]
[subsubsubject]
\setuphead [chapter] [style=\mainfacemedium\bfd,color=blue]
\setuphead [section] [style=\mainfacemedium\bfc,color=blue]
\setuphead [subsection] [style=\mainfacemedium\bfb,color=blue]
\setuphead [subsubsection][style=\mainfacemedium\bfa,color=blue]
\setupheadertexts
[]
\setupcolors
[state=start]
\setuptyping
[color=blue,
]% style=\mainfacenarrowtt]
\definetyping[functioncall]
\setuptype
[color=blue,
]% style=\mainfacenarrowtt]
\definecolor[blue] [b=.5]
\definecolor[red] [r=.5]
\definecolor[green][g=.5]
\runMPgraphicstrue
\startuseMPgraphic{lualogo}
color luaplanetcolor ; luaplanetcolor := .5blue ;
color luaholecolor ; luaholecolor := white ;
numeric luaextraangle ; luaextraangle := 0 ;
vardef lualogo = image (
% Graphic design by A. Nakonechnyj. Copyright (c) 1998, All rights reserved.
save luaorbitcolor, d, r, p ; color luaorbitcolor ; numeric d, r, p ;
luaorbitcolor := .5luaholecolor ; d := sqrt(2)/4 ; r := 1/4 ; p := r/8 ;
fill fullcircle scaled 1 withcolor luaplanetcolor ;
draw fullcircle rotated 40.5 scaled (1+r) dashed evenly scaled p withpen pencircle scaled (p/2) withcolor luaorbitcolor ;
fill fullcircle scaled r shifted (d+1/8,d+1/8) rotated luaextraangle withcolor luaplanetcolor ;
fill fullcircle scaled r shifted (d-1/8,d-1/8) withcolor luaholecolor ;
) enddef ;
\stopuseMPgraphic
\startuseMPgraphic{luapage}
\includeMPgraphic{lualogo}
StartPage ;
fill Page withcolor (white-luaplanetcolor) ;
picture p ; p := lualogo xsized (3PaperWidth/5) ;
draw p shifted center Page shifted (0,-ypart center ulcorner p) ;
StopPage ;
\stopuseMPgraphic
\def\luaextraangle{\directlua{
if \lastpage == 0 then
luaextraangle = 0;
else
luaextraangle = \realfolio*360/\lastpage;
end
tex.print(luaextraangle)
}}
\startuseMPgraphic{luanumber}
\includeMPgraphic{lualogo}
% luaextraangle := \realfolio*360/\lastpage ;
% luaextraangle := 10 * ( (\realfolio-2)/(\lastpage-2)*36 ) ;
luaextraangle := \luaextraangle;
picture p ; p := lualogo ;
setbounds p to boundingbox fullcircle ;
draw p ysized 1cm ;
\stopuseMPgraphic
\definelayer
[page]
[width=\paperwidth,
height=\paperheight]
\setupbackgrounds
[leftpage]
[background=page]
\setupbackgrounds
[rightpage]
[background=page]
\startsetups pagenumber:right
\setlayerframed
[page]
[preset=rightbottom,offset=1cm]
[frame=off,height=1cm,offset=overlay]
{\useMPgraphic{luanumber}}
\setlayerframed
[page]
[preset=rightbottom,offset=1cm,x=1.5cm]
[frame=off,height=1cm,width=1cm,offset=overlay]
{\pagenumber}
\setlayerframed
[page]
[preset=rightbottom,offset=1cm,x=2.5cm]
[frame=off,height=1cm,offset=overlay]
{\getmarking[chapter]}% Lua\TeX\ Reference Manual}
\stopsetups
\startsetups pagenumber:left
\setlayerframed
[page]
[preset=leftbottom,offset=1cm,x=2.5cm]
[frame=off,height=1cm,offset=overlay]
{\getmarking[chapter]}
\setlayerframed
[page]
[preset=leftbottom,offset=1cm,x=1.5cm]
[frame=off,height=1cm,width=1cm,offset=overlay]
{\pagenumber}
\setlayerframed
[page]
[preset=leftbottom,offset=1cm]
[frame=off,height=1cm,offset=overlay]
{\useMPgraphic{luanumber}}
\stopsetups
\startsetups [titlepage]
\startstandardmakeup
\switchtobodyfont[mainfacemedium]
\definedfont[Bold at \the\dimexpr.08\paperheight\relax] \setupinterlinespace
\setlayer[page]{\useMPgraphic{luapage}}
\setlayerframed
[page]
[preset=middletop,
voffset=.05\paperheight]
[align=middle,
foregroundcolor=blue,
frame=off]
{Lua\TeX\\Reference}
\definedfont[Bold at 24pt] \setupinterlinespace
\setlayerframed
[page]
[preset=middletop,
voffset=.35\paperheight]
[align=middle,
foregroundcolor=blue,
frame=off]
{\doifsomething
{\getvariable{document}{snapshot}}
{snapshot \getvariable{document}{snapshot}}%
\doifsomething
{\getvariable{document}{beta}}
{beta \getvariable{document}{beta}}%
}
\stopstandardmakeup
\startstandardmakeup
\raggedleft
\definedfont[Bold at 48pt] \setupinterlinespace
\start \blue Lua\TeX \endgraf Reference \endgraf Manual \stop
\blank
\definedfont[Bold at 24pt] \setupinterlinespace
\blank
\vfill
\definedfont[Bold at 12pt] \setupinterlinespace
copyright: Lua\TeX\ development team \endgraf
more info: www.luatex.org \endgraf
version: \currentdate \doifsomething{\getvariable{document}{snapshot}}{(snapshot \getvariable{document}{snapshot})} \endgraf
\stopstandardmakeup
\setupbackgrounds
[leftpage]
[setups=pagenumber:left]
\setupbackgrounds
[rightpage]
[setups=pagenumber:right]
\stopsetups
\def\nonterminal#1>{\mathematics{\langle\hbox{{\rm #1}}\rangle}}
\ifx\directlua\undefined
\definetyping[syntax]
\definetype[syntax]
\else
% taco's brainwave -)
\newcatcodetable\syntaxcodetable
\def\makesyntaxcodetable
{\begingroup
\catcode`\<=13 \catcode`\|=12
\catcode`\!= 0 \catcode`\\=12
\savecatcodetable\syntaxcodetable
\endgroup}
\makesyntaxcodetable
\def\startsyntax {\begingroup\catcodetable\syntaxcodetable \dostartsyntax}
\def\syntax {\begingroup\catcodetable\syntaxcodetable \dosyntax}
\def\syntaxenvbody#1%
{\par
\tt
\startnarrower
{\blue #1}%
\stopnarrower
\par}
\def\syntaxbody#1%
{{\blue \tt #1}}
\bgroup \catcodetable\syntaxcodetable
!gdef!dostartsyntax#1\stopsyntax{!let<!nonterminal!syntaxenvbody{#1}!endgroup}
!gdef!dosyntax #1{!let<!nonterminal!syntaxbody{#1}!endgroup}
!egroup
\fi
\setupinteraction
[state=start,
focus=standard,
color=,
contrastcolor=]
\placebookmarks
[chapter,section,subsection]
\setuplist
[chapter,section,subsection,subsubsection]
[interaction=all]
% Hans doesn't like the bookmarks opening by default
% \setupinteractionscreen[option=bookmark]
\appendtoks\let\luatex\firstofoneargument\to\simplifiedcommands
\stopenvironment