From 4054d633b48d2d0d737a705259eff5a2c315f958 Mon Sep 17 00:00:00 2001 From: Hans Hagen Date: Sat, 15 Jan 2022 12:52:31 +0100 Subject: 2022-01-15 11:04:00 --- .../manuals/luametatex/luametatex-enhancements.tex | 12 ++++++++--- .../manuals/luametatex/luametatex-firstpage.tex | 4 +++- .../manuals/luametatex/luametatex-fonts.tex | 6 +++--- .../general/manuals/luametatex/luametatex-lua.tex | 23 ++++++++++++++++++-- .../manuals/luametatex/luametatex-nodes.tex | 25 +++++++++++++--------- 5 files changed, 51 insertions(+), 19 deletions(-) (limited to 'doc') diff --git a/doc/context/sources/general/manuals/luametatex/luametatex-enhancements.tex b/doc/context/sources/general/manuals/luametatex/luametatex-enhancements.tex index caf4dc55a..bdac9047c 100644 --- a/doc/context/sources/general/manuals/luametatex/luametatex-enhancements.tex +++ b/doc/context/sources/general/manuals/luametatex/luametatex-enhancements.tex @@ -133,8 +133,6 @@ other engines; \LUAMETATEX\ is already quite different anyway. \startsubsection[title={Version information}] -\startsubsubsection[title={\prm {luatexbanner}, \prm {luatexversion} and \prm {luatexrevision}}] - \topicindex{version} \topicindex{banner} @@ -186,7 +184,15 @@ A version is defined as follows: \stopitem \stopitemize -\stopsubsubsection +The \LUATEX\ binary has companions like \LUAJITTEX\ and a version that has a font +rendering library on board. Both introduce dependencies that don't fit into the +\LUAMETATEX\ agenda: compilation should be easy and future proof and not depend +on code outside the source tree. It means that for instance the \CONTEXT\ runners +don't really need to check much more than the basic name. It also means that the +\type {context} and \type {mtxrun} stubs can be symbolic links to the main +program that itself is about 3MB, so we can keep the binary footprint small. For +normal \CONTEXT\ \LMTX\ processing no other binaries are needed because whatever +support we need is done in \LUA. The \LUAMETATEX\ version number starts at~2 in order to prevent a clash with \LUATEX, and the version commands are the same. This is a way to indicate that diff --git a/doc/context/sources/general/manuals/luametatex/luametatex-firstpage.tex b/doc/context/sources/general/manuals/luametatex/luametatex-firstpage.tex index f2d3f5cfa..d4bab97b8 100644 --- a/doc/context/sources/general/manuals/luametatex/luametatex-firstpage.tex +++ b/doc/context/sources/general/manuals/luametatex/luametatex-firstpage.tex @@ -18,10 +18,12 @@ \definedfont[Bold*default at 12pt] \starttabulate[|l|l|] - \NC copyright \EQ Lua\TeX\ development team \NC \NR + \NC copyright \EQ LuaMeta\TeX\ development team \NC \NR + \NC \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 \EQ build.contextgarden.net \NC \NR \NC version \EQ \currentdate \doifsomething{\documentvariable{snapshot}}{(snapshot \documentvariable{snapshot})} \NC \NR \stoptabulate diff --git a/doc/context/sources/general/manuals/luametatex/luametatex-fonts.tex b/doc/context/sources/general/manuals/luametatex/luametatex-fonts.tex index 62c9d211f..5f0ea780a 100644 --- a/doc/context/sources/general/manuals/luametatex/luametatex-fonts.tex +++ b/doc/context/sources/general/manuals/luametatex/luametatex-fonts.tex @@ -521,10 +521,10 @@ glyph, this because the current value of this option is stored with glyphs. \stopsubsection -\startsubsection[title={\prm {glyphxscale}, \prm {glyphyscale} and \prm {scaledfontdimen}}] +\startsubsection[title={\prm {glyphscale}, \prm {glyphxscale}, \prm {glyphyscale} and \prm {scaledfontdimen}}] -The two scale parameters control the current scaling. They are traditional \TEX\ -integer parameters that operate independent of each other. The scaling is +The three scale parameters control the current scaling. They are traditional +\TEX\ integer parameters that operate independent of each other. The scaling is reflected in the dimensions of glyphs as well as in the related font dimensions, which means that units like \type {ex} and \type {em} work as expected. If you query a font dimensions with \prm {fontdimen} you get the raw value but with \prm diff --git a/doc/context/sources/general/manuals/luametatex/luametatex-lua.tex b/doc/context/sources/general/manuals/luametatex/luametatex-lua.tex index 81bcf40a3..11e8b352d 100644 --- a/doc/context/sources/general/manuals/luametatex/luametatex-lua.tex +++ b/doc/context/sources/general/manuals/luametatex/luametatex-lua.tex @@ -8,6 +8,24 @@ \startsection[title={Initialization},reference=init] +\startsubsection[title={A bare bone engine}] + +Although the \LUAMETATEX\ engine will start up when you call the program it will +not do much useful. You can compare it to computer hardware without (high level) +operating system with a \TEX\ kernel being the bios. It can interpret \TEX\ code +but for typesetting you need a reasonable setup. You also need to load fonts, and +for output you need a backend, and both can be implemented in \LUA. If you don't +like that and want to get up and running immediately, you will be more happy with +\LUATEX, \PDFTEX\ or \XETEX, combined with your favorite macro package. + +If you just want to play around you can install the \CONTEXT\ distribution which +(including manuals and some fonts) is tiny compared to a full \TEXLIVE\ +installation and can be run alongside it without problems. If there are issues +you can go to the usual \CONTEXT\ support platforms and seek help where you can +find the people who made \LUATEX\ and \LUAMETATEX. + +\stopsubsection + \startsubsection[title={\LUAMETATEX\ as a \LUA\ interpreter}] \topicindex {initialization} @@ -65,8 +83,9 @@ are understood by \LUAMETATEX\ itself: \stoptabulate There are less options than with \LUATEX, because one has to deal with them in -\LUA\ anyway. There are no options to enter a safer mode or control executing -programs. This can easily be achieved with a startup \LUA\ script. +\LUA\ anyway. So for instance there are no options to enter a safer mode or +control executing programs because this can easily be achieved with a startup +\LUA\ script. Next the initialization script is loaded and executed. From within the script, the entire command line is available in the \LUA\ table \type {arg}, beginning diff --git a/doc/context/sources/general/manuals/luametatex/luametatex-nodes.tex b/doc/context/sources/general/manuals/luametatex/luametatex-nodes.tex index 09ae3ce54..7b2374347 100644 --- a/doc/context/sources/general/manuals/luametatex/luametatex-nodes.tex +++ b/doc/context/sources/general/manuals/luametatex/luametatex-nodes.tex @@ -14,10 +14,10 @@ \libindex {subtypes} \libindex {values} -\TEX's nodes are represented in \LUA\ as userdata objects with a variable set of -fields or by a numeric identifier when requested. When you print a node userdata +\TEX's nodes are represented in \LUA\ as user data objects with a variable set of +fields or by a numeric identifier when requested. When you print a node user data object you will see these numbers. In the following syntax tables the type of -such a userdata object is represented as \syntax {}. +such a user data object is represented as \syntax {}. \blank \dontleavehmode {\bf The return values of \type {node.types} are:} \showtypes @@ -498,6 +498,11 @@ helpers are not always faster than separate calls but they sometimes permit making more readable tests. The \type {usesfont} helpers takes a node and font id and returns true when a glyph or disc node references that font. +The \type {isnextchar} and \type {isprevchar} return a next node, a character +code (or false) and an node id or next character code. The four \type {is} +checkers take a node and optionally a font, data, state, scale, xscale and yscale +value that are then checked. + \stopsubsection \startsubsection[title={\nod {boundary} nodes}] @@ -871,7 +876,7 @@ renderer and might get adapted in the process. The \type {node} library provides methods that facilitate dealing with (lists of) nodes and their values. They allow you to create, alter, copy, delete, and insert node, the core objects within the typesetter. Nodes are represented in \LUA\ as -userdata. The various parts within a node can be accessed using named fields. +user data. The various parts within a node can be accessed using named fields. Each node has at least the three fields \type {next}, \type {id}, and \type {subtype}. The other available fields depend on the \type {id}. @@ -879,7 +884,7 @@ Each node has at least the three fields \type {next}, \type {id}, and \type \startitemize[intro] \startitem - The \type {next} field returns the userdata object for the next node in a + The \type {next} field returns the user data object for the next node in a linked list of nodes, or \type {nil}, if there is no next node. \stopitem @@ -1059,7 +1064,7 @@ This function probably is not that useful but some nodes don't have a \type \stopfunctioncall This function returns a number (the internal index of the node) if the argument -is a userdata object of type \type {} and false when no node is passed. +is a user data object of type \type {} and false when no node is passed. \stopsubsubsection @@ -2061,16 +2066,16 @@ table. In fact, this model, where \TEX\ manages memory is real fast and one of the reasons why plugging in callbacks that operate on nodes is quite fast too. Each node gets a number that is in fact an index in the memory table and that number often is reported when you print node related information. You go from -userdata nodes and there numeric references and back with: +user data nodes and there numeric references and back with: \startfunctioncall d = node.todirect( n)) n = node.tonode( d)) \stopfunctioncall -The userdata model is rather robust as it is a virtual interface with some +The user data model is rather robust as it is a virtual interface with some additional checking while the more direct access which uses the node numbers -directly. However, even with userdata you can get into troubles when you free +directly. However, even with user data you can get into troubles when you free nodes that are no longer allocated or mess up lists. if you apply \type {tostring} to a node you see its internal (direct) number and id. @@ -2162,7 +2167,7 @@ head = node.direct.reverse(head) head = node.direct.exchange(head,first,[second]) \stoptyping -In \CONTEXT\ some of the not performance|-|critical userdata variants are +In \CONTEXT\ some of the not performance|-|critical user data variants are emulated in \LUA\ and not in the engine, so we retain downward compatibility. \def\yes{$+$} \def\nop{$-$} -- cgit v1.2.3