diff options
author | Hans Hagen <pragma@wxs.nl> | 2019-05-18 11:17:14 +0200 |
---|---|---|
committer | Context Git Mirror Bot <phg@phi-gamma.net> | 2019-05-18 11:17:14 +0200 |
commit | caee9d5ac3c65f78671a9786318358cd647247eb (patch) | |
tree | faac5ae546fa3146f0b8622b6a41f73dc3341489 /doc/context/sources/general/manuals | |
parent | 5f6a7c6790baa7e524de5b5bf71a29ea757378f6 (diff) | |
download | context-caee9d5ac3c65f78671a9786318358cd647247eb.tar.gz |
2019-05-18 10:50:00
Diffstat (limited to 'doc/context/sources/general/manuals')
7 files changed, 713 insertions, 0 deletions
diff --git a/doc/context/sources/general/manuals/luametatex/luametatex-contents.tex b/doc/context/sources/general/manuals/luametatex/luametatex-contents.tex new file mode 100644 index 000000000..d55b7f15b --- /dev/null +++ b/doc/context/sources/general/manuals/luametatex/luametatex-contents.tex @@ -0,0 +1,19 @@ +\environment luametatex-style + +\startcomponent luametatex-contents + +\starttitle[title=Contents] + +\start + + \definecolor[maincolor][black] + + \placelist + [chapter,section,subsection] + [criterium=text] + +\stop + +\stoptitle + +\stopcomponent diff --git a/doc/context/sources/general/manuals/luametatex/luametatex-firstpage.tex b/doc/context/sources/general/manuals/luametatex/luametatex-firstpage.tex new file mode 100644 index 000000000..83fb40df1 --- /dev/null +++ b/doc/context/sources/general/manuals/luametatex/luametatex-firstpage.tex @@ -0,0 +1,36 @@ +\environment luametatex-style + +\startcomponent luametatex-firstpage + +\startstandardmakeup + + \start + \raggedleft + \definedfont[Bold*default at 48pt] + \setupinterlinespace + \blue \documentvariable{manual} \endgraf Reference \endgraf Manual \endgraf + \stop + + \vfill + + \definedfont[Bold*default at 12pt] + + \starttabulate[|l|l|] + \NC copyright \EQ Lua\TeX\ development team \NC \NR + \NC \EQ \CONTEXT\ development team \NC \NR + \NC more info \EQ www.luatex.org \NC \NR + \NC \EQ contextgarden.net \NC \NR + \NC version \EQ \currentdate \doifsomething{\documentvariable{snapshot}}{(snapshot \documentvariable{snapshot})} \NC \NR + \stoptabulate + +\stopstandardmakeup + +\setupbackgrounds + [leftpage] + [setups=pagenumber:left] + +\setupbackgrounds + [rightpage] + [setups=pagenumber:right] + +\stopcomponent diff --git a/doc/context/sources/general/manuals/luametatex/luametatex-introduction.tex b/doc/context/sources/general/manuals/luametatex/luametatex-introduction.tex new file mode 100644 index 000000000..5c68b3123 --- /dev/null +++ b/doc/context/sources/general/manuals/luametatex/luametatex-introduction.tex @@ -0,0 +1,82 @@ +% language=uk + +\environment luametatex-style + +\startcomponent luametatex-introduction + +\startchapter[title=Introduction] + +Around 2005 we started the \LUATEX\ projects and it took about a decade to reach +a state where we could consider the experiments to have reached a stable state. +Already for a while one could use \LUATEX\ in production but some of the +interfaces evolved. In 2018 the functionality was more or less frozen. Of course +we might add some features in due time but nothing fundamental will change as we +consider version 1.10 to be reasonable feature complete. Among the reasons is +that this engine is now used outside \CONTEXT\ too which means that we cannot +simply change much without affecting other macro packages. + +However, in reaching that state some decisions were delayed because they didn't +go well with a current stable version. This is why at the 2018 \CONTEXT\ meeting +those present agreed that we could move on with a follow up tagged \METATEX, a +name we already had in mind for a while, but as \LUA\ is an important component, +it got expanded to \LUAMETATEX. This follow up is a lightweight companion to +\LUATEX\ that will be maintained alongside. More about the reasons for this +follow up as well as the philosophy behind it can be found on the document(s) +describing the development. During \LUATEX\ development I kept track of what +happened in a series of documents, parts of which were published as articles in +user group journals, but all are in the \CONTEXT\ distribution. I did the same +with the development of \LUAMETATEX. + +The \LUAMETATEX\ engine is, as said, a lightweight version of \LUATEX, that for +now targets \CONTEXT. We will use it for possibly drastic experiments but without +affecting \LUATEX. As we can easily adapt \CONTEXT\ to support both, no other +macro package will be harmed when (for instance) interfaces change as part of an +experiment. Of course, when we consider something to be useful, it can be back +ported to \LUATEX, but only when there are good reasons for doing so. When +considering this follow up one consideration was that a lean and mean version +with an extension mechanism is a bit closer to original \TEX. Of course, because +we have new primitives, this is not entirely true. + +This manual currently has quite a bit of overlap with the \LUATEX\ manual but +some chapters are removed, others added and the rest has been adapted. We also +discusses the (main) differences. Some of the new primitives or functions that +show up in \LUAMETATEX\ might show up in \LUATEX\ at some point, others might +not. For now it is an experimental engine in which we can change things at will +but with \CONTEXT\ in tandem so it will keep working. + +For \CONTEXT\ users the \LUAMETATEX\ engine will become the default. Because we +can keep both \LUAMETATEX\ and \CONTEXT\ in sync. The \CONTEXT\ variant is tagged +\LMTX. The pair can be used in production, just as with \LUATEX\ and \MKIV. In +fact, most users will probably not really notice the difference. + +As this follow up is closely related to \CONTEXT\ development, and because we +expect stock \LUATEX\ to be used outside the \CONTEXT\ proper, there will be no +special mailing list nor coverage (or polution) on the \LUATEX\ related mailing +lists. We have the \CONTEXT\ mailing lists for that. In due time the source code +will be part of the regular \CONTEXT\ distribution. + +% \testpage[8] + +This manual refers to \LUATEX, when we talk of features common to both engine, as +well as \LUAMETATEX, when it is more specific to the follow up. + +\blank[big] + +Hans Hagen + +% \blank[2*big] +\page + +\starttabulate[|||] +\NC Version \EQ \currentdate \NC \NR +\NC \LUAMETATEX \EQ \cldcontext{LUATEXENGINE} % + \cldcontext{LUATEXVERSION} / % + \cldcontext{LUATEXFUNCTIONALITY} + \NC \NR +\NC \CONTEXT \EQ MkIV \contextversion \NC \NR +\NC \LUATEX\ Team \EQ Hans Hagen, Hartmut Henkel, Taco Hoekwater, Luigi Scarso \NC \NR +\stoptabulate + +\stopchapter + +\stopcomponent diff --git a/doc/context/sources/general/manuals/luametatex/luametatex-logos.tex b/doc/context/sources/general/manuals/luametatex/luametatex-logos.tex new file mode 100644 index 000000000..be75971d8 --- /dev/null +++ b/doc/context/sources/general/manuals/luametatex/luametatex-logos.tex @@ -0,0 +1,21 @@ +\startenvironment luametatex-logos + +\usemodule[abr-02] + +\logo[DFONT] {dfont} +\logo[CFF] {cff} +\logo[CMAP] {CMap} +\logo[PATGEN] {patgen} +\logo[MP] {MetaPost} +\logo[METAPOST] {MetaPost} +\logo[MPLIB] {MPlib} +\logo[COCO] {coco} +\logo[SUNOS] {SunOS} +\logo[BSD] {bsd} +\logo[SYSV] {sysv} +\logo[DPI] {dpi} +\logo[DLL] {dll} +\logo[OPENOFFICE]{OpenOffice} +\logo[OCP] {OCP} + +\stopenvironment diff --git a/doc/context/sources/general/manuals/luametatex/luametatex-style.tex b/doc/context/sources/general/manuals/luametatex/luametatex-style.tex new file mode 100644 index 000000000..ceb3f1a39 --- /dev/null +++ b/doc/context/sources/general/manuals/luametatex/luametatex-style.tex @@ -0,0 +1,451 @@ +\startenvironment luametatex-style + +% \environment luatex-style + +% \logo[LUAMETATEX] {\Lua Meta\TeX} + +% todo: use \useMPlibrary[lua] + +\enabletrackers[fonts.usage] + +\usemodule[fonts-statistics] + +\setuplayout + [height=middle, + width=middle, + backspace=2cm, + topspace=10mm, + bottomspace=10mm, + header=10mm, + footer=10mm, + footerdistance=10mm, + headerdistance=10mm] + +\setuppagenumbering + [alternative=doublesided] + +\setuptolerance + [stretch,tolerant] + +\setuptype + [lines=hyphenated] + +\setuptyping + [lines=hyphenated] + +\setupitemize + [each] + [packed] + +\definesymbol[1][\Uchar"2023] +\definesymbol[2][\endash] +\definesymbol[3][\wait] % we want to catch it + +\setupitemize + [each] + [headcolor=maincolor, + symbolcolor=maincolor, + color=maincolor] + +\setupwhitespace + [medium] + +\setuptabulate + [blank={small,samepage}, + headstyle=bold, + rulecolor=maincolor, + rulethickness=1pt, + foregroundcolor=white, + foregroundstyle=\ss\bfx\WORD, + backgroundcolor=maincolor] + +\setupcaptions + [headcolor=darkblue] + +\startluacode + local skipped = table.tohash { 'id', 'subtype', 'next', 'prev' } + + function document.functions.showfields(s) + local t = string.split(s,',') + local f = node.fields(t[1],t[2]) + if f then + local d = false + for i=1,#f do + local fi = f[i] + if skipped[fi] then + -- okay + elseif d then + context(', {\tttf %s}', fi) + else + context('{\tttf %s}', fi) + d = true + end + end + end + end + + function document.functions.showid(s) + local t = string.split(s,',') + context('{tttf %s}',node.id(t[1])) + if t[2] then + context(', {tttf %s}',node.subtype(t[2])) + end + end + + function document.functions.showsubtypes(s) + local s = node.subtypes(s) + local d = false + for k, v in table.sortedhash(s) do + if d then + context(', %s = {\\tttf %s}',k,v) + else + context('%s = {\\tttf %s}',k,v) + d = true + end + end + end +\stopluacode + +\unexpanded\def\showfields #1{\ctxlua{document.functions.showfields("#1")}} +\unexpanded\def\showid #1{\ctxlua{document.functions.showid("#1")}} +\unexpanded\def\showsubtypes#1{\ctxlua{document.functions.showsubtypes("#1")}} + +\definecolor[blue] [b=.5] +\definecolor[red] [r=.5] +\definecolor[green] [g=.5] +%definecolor[maincolor] [b=.5] +%definecolor[keptcolor] [b=.5] +%definecolor[othercolor][r=.5,g=.5] + +\definecolor[maincolor] [b=.5] +\definecolor[keptcolor] [b=.5] +\definecolor[othercolor][s=.5] + +\writestatus{luametatex manual}{} +\writestatus{luametatex manual}{defining lucodaot} \usebodyfont [lucidaot] +\writestatus{luametatex manual}{defining pagella} \usebodyfont [pagella] +\writestatus{luametatex manual}{defining cambria} \usebodyfont [cambria] +\writestatus{luametatex manual}{defining modern} \usebodyfont [modern] +\writestatus{luametatex manual}{defining dejavu} \setupbodyfont[dejavu,10pt] +\writestatus{luametatex manual}{} + +\setuphead [chapter] [align={flushleft,broad},style=\bfd] +\setuphead [section] [align={flushleft,broad},style=\bfb] +\setuphead [subsection] [align={flushleft,broad},style=\bfa] +\setuphead [subsubsection][align={flushleft,broad},style=\bf] + +\setuphead [chapter] [color=maincolor] +\setuphead [section] [color=maincolor] +\setuphead [subsection] [color=maincolor] +\setuphead [subsubsection][color=maincolor] + +\setupfloats + [ntop=4] + +\definehead + [remark] + [subsubsubject] + +\setupheadertexts + [] + +% \setuplayout +% [style=bold, +% color=maincolor] + +\definemixedcolumns + [twocolumns] + [n=2, + balance=yes, + before=\blank, + after=\blank] + +\definemixedcolumns + [threecolumns] + [twocolumns] + [n=3] + +\definemixedcolumns + [fourcolumns] + [threecolumns] + [n=4] + +% if we do this we also need to do it in table cells +% +% \setuptyping +% [color=maincolor] +% +% \setuptype +% [color=maincolor] + +\definetyping + [functioncall] + +\startMPdefinitions + + color luaplanetcolor ; luaplanetcolor := \MPcolor{maincolor} ; + color luaholecolor ; luaholecolor := white ; + numeric luaextraangle ; luaextraangle := 0 ; + numeric luaorbitfactor ; luaorbitfactor := .25 ; + + vardef lualogo = image ( + + % Graphic design by A. Nakonechnyj. Copyright (c) 1998, All rights reserved. + + save d, r, p ; numeric d, r, p ; + + 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 (luaorbitfactor * luaholecolor) ; + 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 ; + luaorbitfactor := .25 ; + ) enddef ; + +\stopMPdefinitions + +\startuseMPgraphic{luapage} + StartPage ; + + fill Page withcolor \MPcolor{othercolor} ; + + luaorbitfactor := 1 ; + + picture p ; p := lualogo ysized (5*\measure{paperheight}/10) ; + draw p + shifted - center p + shifted ( + \measure{spreadwidth} - .5*\measure{paperwidth} + \measure{spinewidth}, + .375*\measure{paperheight} + ) + ; + + StopPage ; +\stopuseMPgraphic + +% \starttexdefinition luaextraangle +% % we can also just access the last page and so in mp directly +% \ctxlua { +% context(\lastpage == 0 and 0 or \realfolio*360/\lastpage) +% } +% \stoptexdefinition + +\startuseMPgraphic{luanumber} + % luaextraangle := \luaextraangle; + luaextraangle := if (LastPageNumber < 10) : 10 else : (RealPageNumber / LastPageNumber) * 360 fi; + luaorbitfactor := 0.25 ; + 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] + +\definemeasure[banneroffset][\bottomspace-\footerheight-\footerdistance+2cm] + +\startsetups pagenumber:right + \setlayerframed + [page] + [preset=rightbottom,x=1.0cm,y=\measure{banneroffset}] + [frame=off,height=1cm,offset=overlay] + {\strut\useMPgraphic{luanumber}} + \setlayerframed + [page] + [preset=rightbottom,x=2.5cm,y=\measure{banneroffset}] + [frame=off,height=1cm,width=1cm,offset=overlay, + foregroundstyle=bold,foregroundcolor=maincolor] + {\strut\pagenumber} + \setlayerframed + [page] + [preset=rightbottom,x=3.5cm,y=\measure{banneroffset}] + [frame=off,height=1cm,offset=overlay, + foregroundstyle=bold,foregroundcolor=maincolor] + {\strut\getmarking[chapter]} +\stopsetups + +\startsetups pagenumber:left + \setlayerframed + [page] + [preset=leftbottom,x=3.5cm,y=\measure{banneroffset}] + [frame=off,height=1cm,offset=overlay, + foregroundstyle=bold,foregroundcolor=maincolor] + {\strut\getmarking[chapter]} + \setlayerframed + [page] + [preset=leftbottom,x=2.5cm,y=\measure{banneroffset}] + [frame=off,height=1cm,width=1cm,offset=overlay, + foregroundstyle=bold,foregroundcolor=maincolor] + {\strut\pagenumber} + \setlayerframed + [page] + [preset=leftbottom,x=1.0cm,y=\measure{banneroffset}] + [frame=off,height=1cm,offset=overlay] + {\strut\useMPgraphic{luanumber}} +\stopsetups + +\unexpanded\def\nonterminal#1>{\mathematics{\langle\hbox{\rm #1}\rangle}} + +% taco's brainwave -) .. todo: create a typing variant so that we can avoid the !crlf + +\newcatcodetable\syntaxcodetable + +\unexpanded\def\makesyntaxcodetable + {\begingroup + \catcode`\<=13 \catcode`\|=12 + \catcode`\!= 0 \catcode`\\=12 + \savecatcodetable\syntaxcodetable + \endgroup} + +\makesyntaxcodetable + +\unexpanded\def\startsyntax {\begingroup\catcodetable\syntaxcodetable \dostartsyntax} +\unexpanded\def\syntax {\begingroup\catcodetable\syntaxcodetable \dosyntax} + \let\stopsyntax \relax + +\unexpanded\def\syntaxenvbody#1% + {\par + \tt + \startnarrower + % \maincolor + #1 + \stopnarrower + \par} + +\unexpanded\def\syntaxbody#1% + {\begingroup + % \maincolor + \tt #1% + \endgroup} + +\bgroup \catcodetable\syntaxcodetable + +!gdef!dostartsyntax#1\stopsyntax{!let<!nonterminal!syntaxenvbody{#1}!endgroup} +!gdef!dosyntax #1{!let<!nonterminal!syntaxbody{#1}!endgroup} + +!egroup + +\definetyping + [texsyntax] +% [color=maincolor] + +% end of wave + +\setupinteraction + [state=start, + focus=standard, + style=, + color=, + contrastcolor=] + +\placebookmarks + [chapter,section,subsection] + +\setuplist + [chapter,section,subsection,subsubsection] + [interaction=all, + width=4em] + +\setuplist + [chapter] + [style=bold, + before={\testpage[4]\blank}, + color=keptcolor] + +\setuplist + [section] + [before={\testpage[3]}] + +\setuplist + [subsection,subsubsection] + [margin=4em, + width=5em] + +\definestartstop + [notabene] + [style=slanted] + +\definestartstop + [preamble] + [style=normal, + before=\blank, + after=\blank] + +% Hans doesn't like the bookmarks opening by default so we comment this: +% +% \setupinteractionscreen +% [option=bookmark] + +\startbuffer[stylecalculations] + + \normalexpanded{\definemeasure[spinewidth] [0pt]} + \normalexpanded{\definemeasure[paperwidth] [\the\paperwidth ]} + \normalexpanded{\definemeasure[paperheight][\the\paperheight]} + \normalexpanded{\definemeasure[spreadwidth][\measure{paperwidth}]} + +\stopbuffer + +\getbuffer[stylecalculations] + +\dontcomplain + +\environment luametatex-logos + +\defineregister[topicindex] +\defineregister[primitiveindex] +\defineregister[callbackindex] +\defineregister[nodeindex] +\defineregister[libraryindex] + +\unexpanded\def\lpr#1{\doifmode{*bodypart}{\primitiveindex[#1]{\bf\tex {#1}}}\tex {#1}} +\unexpanded\def\prm#1{\doifmode{*bodypart}{\primitiveindex[#1]{\tex {#1}}}\tex {#1}} +\unexpanded\def\orm#1{\doifmode{*bodypart}{\primitiveindex[#1]{\tex {#1}}}\tex {#1}} +\unexpanded\def\cbk#1{\doifmode{*bodypart}{\callbackindex [#1]{\type {#1}}}\type{#1}} +\unexpanded\def\nod#1{\doifmode{*bodypart}{\nodeindex [#1]{\bf\type{#1}}}\type{#1}} +\unexpanded\def\whs#1{\doifmode{*bodypart}{\nodeindex [#1]{\type {#1}}}\type{#1}} +\unexpanded\def\noa#1{\doifmode{*bodypart}{\nodeindex [#1]{\type {#1}}}\type{#1}} + +\hyphenation{sub-nodes} + +\def\currentlibraryindex{\namedstructureuservariable{section}{library}} + +\setupregister + [libraryindex] + [indicator=no,before=] + +\setupregister + [libraryindex] + [1] + [textstyle=\ttbf] + +\setupregister + [libraryindex] + [2] + [textstyle=\tttf] + +\unexpanded\def\lib #1{\doifmode{*bodypart}{\expanded{\libraryindex{\currentlibraryindex+#1}}\type{\currentlibraryindex.#1}}} +\unexpanded\def\libindex#1{\doifmode{*bodypart}{\expanded{\libraryindex{\currentlibraryindex+#1}}}} +\unexpanded\def\libidx#1#2{\doifmode{*bodypart}{\expanded{\libraryindex{#1+#2}}\type{#1.#2}}} +\unexpanded\def\lix #1#2{\doifmode{*bodypart}{\expanded{\libraryindex{#1+#2}}}} + +% \setstructurepageregister[][keys:1=,entries:1=] + +\stopenvironment diff --git a/doc/context/sources/general/manuals/luametatex/luametatex-titlepage.tex b/doc/context/sources/general/manuals/luametatex/luametatex-titlepage.tex new file mode 100644 index 000000000..6f7a6f9a5 --- /dev/null +++ b/doc/context/sources/general/manuals/luametatex/luametatex-titlepage.tex @@ -0,0 +1,53 @@ +\environment luametatex-style + +\startcomponent luametatex-titlepage + +\startstandardmakeup + + \switchtobodyfont + [mainfacemedium] + + \definedfont[Bold*default at \the\dimexpr.06\paperheight\relax] \setupinterlinespace + + \setlayer + [page] + {\useMPgraphic{luapage}} + + \setlayerframed + [page] + [preset=righttop, + location=middletop, + hoffset=.500\measured{paperwidth}, + voffset=.175\measured{paperheight}] + [align=middle, + foregroundcolor=white, + frame=off] + {\documentvariable{manual}\crlf Reference\crlf Manual} + + \definedfont[Bold*default at 14pt] \setupinterlinespace + + \setlayerframed + [page] + [preset=rightbottom, + offset=.025\measured{paperheight}] + [align=flushright, + foregroundcolor=white, + frame=off] + {\doifsomething{\documentvariable{status}}{\documentvariable{status}\par} + \currentdate[month,space,year]\par + Version \documentvariable{version}} + + \setlayerframed + [page] + [preset=middle, + hoffset=-.5\dimexpr\measured{paperwidth}-\measured{spinewidth}\relax] + [width=.7\measured{paperwidth}, + align=normal, + foregroundstyle=\bf, + foregroundcolor=white, + frame=off] + {\getbuffer[backpage]} + +\stopstandardmakeup + +\stopcomponent diff --git a/doc/context/sources/general/manuals/luametatex/luametatex.tex b/doc/context/sources/general/manuals/luametatex/luametatex.tex new file mode 100644 index 000000000..3021984f9 --- /dev/null +++ b/doc/context/sources/general/manuals/luametatex/luametatex.tex @@ -0,0 +1,51 @@ +% language=uk + +\environment luametatex-style +\environment luametatex-private + +\startdocument + [manual=LuaMeta\TeX, + status=experimental, + version=2.00] + +\component luametatex-titlepage +\component luametatex-firstpage + +\startfrontmatter + % \component luametatex-contents + \component luametatex-introduction +\stopfrontmatter + +\startbodymatter + + \startparagraph \em + This is a placholder for the \LUAMETATEX\ manual. On my system I already + have most of it wrapped up, but it will probably take till late 2019 or + sometime 2020 before I will decide to add the whole manual to the + \CONTEXT\ distribution. + \stopparagraph + + % \component luametatex-preamble + % \component luametatex-differences + % \component luametatex-modifications + % \component luametatex-lua + % \component luametatex-enhancements + % \component luametatex-fonts + % \component luametatex-math + % \component luametatex-nodes + % \component luametatex-callbacks + % \component luametatex-tex + % \component luametatex-metapost + % \component luametatex-pdf + % \component luametatex-libraries + % \component luametatex-additions + % \component luametatex-primitives + +\stopbodymatter + +\startbackmatter +% \component luametatex-registers +% \component luametatex-statistics +\stopbackmatter + +\stopdocument |