From 3fbad52bf5c3a8e0d20ed01f784b048afdd34332 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Thu, 21 Jan 2010 22:35:06 +0100 Subject: Minor attr.dtx revision and todo update. --- Makefile | 2 +- TODO | 10 +++++++ lltxb-dtxstyle.tex | 1 + luatexbase-attr.dtx | 76 ++++++++++++++++++++--------------------------------- 4 files changed, 40 insertions(+), 49 deletions(-) diff --git a/Makefile b/Makefile index 8b5b829..06c51d4 100644 --- a/Makefile +++ b/Makefile @@ -49,7 +49,7 @@ world: all ctan %.pdf: %.dtx $(DTXSTY) $(DO_PDFLATEX) - $(DO_MAKEINDEX) + $(DO_MAKEINDEX) || true $(DO_PDFLATEX) $(DO_PDFLATEX) diff --git a/TODO b/TODO index b921967..718448b 100644 --- a/TODO +++ b/TODO @@ -13,3 +13,13 @@ general - handle catcodes for Plain - import/write doc + +Later +===== + +regs +---- + +- Should the various allocation macros set something in a Lua table, or should + we just wait for it to be implemented in LuaTeX? (The \*blk macros would be +rather tricky in this respect, but are they really used?) diff --git a/lltxb-dtxstyle.tex b/lltxb-dtxstyle.tex index 8c80773..fec762d 100644 --- a/lltxb-dtxstyle.tex +++ b/lltxb-dtxstyle.tex @@ -1,6 +1,7 @@ % preamble for dtx documentations of the luatexbase package/bundle. \usepackage[T1]{fontenc} +\usepackage{lmodern} \usepackage{geometry} \usepackage{xspace} \usepackage[english]{babel} diff --git a/luatexbase-attr.dtx b/luatexbase-attr.dtx index ec34307..fe68a3b 100644 --- a/luatexbase-attr.dtx +++ b/luatexbase-attr.dtx @@ -11,18 +11,13 @@ % % This work consists of the main source file luatexbase-attr.dtx % and the derived files -% luatexbase-attr.sty attr.lua ... +% luatexbase-attr.sty luatexbase.attr.lua ... % % Unpacking: % tex luatexbase-attr.dtx % Documentation: % pdflatex luatexbase-attr.dtx % -% The class ltxdoc loads the configuration file ltxdoc.cfg -% if available. Here you can specify further options, e.g. -% use A4 as paper format: -% \PassOptionsToClass{a4paper}{article} -% %<*ignore> \begingroup \def\x{LaTeX2e}% @@ -51,7 +46,7 @@ This work is under the CC0 license. This work consists of the main source file luatexbase-attr.dtx and the derived files - luatexbase-attr.sty attr.lua ... + luatexbase-attr.sty luatexbase.attr.lua ... \endpreamble @@ -73,7 +68,7 @@ and the derived files \generate{% \usedir{tex/luatex/luatexbase}% - \file{attr.lua}{\from{luatexbase-attr.dtx}{luamodule}}% + \file{luatexbase.attr.lua}{\from{luatexbase-attr.dtx}{luamodule}}% } \obeyspaces @@ -82,7 +77,7 @@ and the derived files \Msg{* To finish the installation you have to move the following} \Msg{* files into a directory searched by TeX:} \Msg{*} -\Msg{* luatexbase-attr.sty attr.lua ...} +\Msg{* luatexbase-attr.sty luatexbase.attr.lua ...} \Msg{*} \Msg{* Happy TeXing!} \Msg{*} @@ -94,12 +89,8 @@ and the derived files \fi % %<*driver> -\NeedsTeXFormat{LaTeX2e} -\ProvidesFile{luatexbase-attr.drv} - [DATE DESC] \documentclass{ltxdoc} -\EnableCrossrefs -\CodelineIndex +\input lltxb-dtxstyle \begin{document} \DocInput{luatexbase-attr.dtx}% \end{document} @@ -116,7 +107,7 @@ and the derived files % Dollar \$ Percent \% Ampersand \& % Acute accent \' Left paren \( Right paren \) % Asterisk \* Plus \+ Comma \, -% Minus \- Point \. Solidus \/ + Minus \- Point \. Solidus \/ % Colon \: Semicolon \; Less than \< % Equals \= Greater than \> Question mark \? % Commercial at \@ Left bracket \[ Backslash \\ @@ -126,11 +117,11 @@ and the derived files % % \GetFileInfo{luatexbase-attr.drv} % -% \title{The \textsf{luatexbase-attr} package} +% \title{The \pk{luatexbase-attr} package} % \date{DATE} % \author{% -% Manuel P\'egouri\'e-Gonnard \\ \texttt{mpg@elzevir.fr} \and -% \'Elie Roux \\ \texttt{elie.roux@telecom-bretagne.eu}} +% Manuel P\'egouri\'e-Gonnard \\ \email{mpg@elzevir.fr} \and +% \'Elie Roux \\ \email{elie.roux@telecom-bretagne.eu}} % % \maketitle % @@ -141,24 +132,20 @@ and the derived files % % \section{Implementation} % -% \subsection{\TeX\ package} +% \subsection{\tex package} % % \begin{macrocode} %<*texpackage> % \end{macrocode} % -% The most important macro here is \texttt{\string\newluatexattribute} that -% allocates a new attribute, and adds it in the \texttt{tex.attributename} -% table (see \texttt{luatextra.attributedef\_from\_tex} for more details. -% It works just like the other \texttt{\string\new*} macros, we can -% allocate up to 65536 different attributes. +% The most important macro here is |\newluatexattribute| that allocates a +% new attribute, and adds it in the |tex.attributename| table (see +% |luatextra.attributedef_from_tex| for more details. It works just like +% the other |\new*| macros, to $65536$ attributes can be allocated. % % \begin{macrocode} - - \newcount\luatexattdefcounter \luatexattdefcounter = 1 - \def\newluatexattribute#1{% \ifnum\luatexattdefcounter<65535\relax % \global\advance\luatexattdefcounter by 1\relax % @@ -168,25 +155,23 @@ and the derived files \fi % \wlog{\string#1=\string\luatexattribute\the\allocationnumber}% \luadirect{% - luatextra.attributedef_from_tex([[\noexpand#1]], '\number\allocationnumber')}% + luatextra.attributedef_from_tex([[\noexpand#1]], + '\number\allocationnumber')}% \else % \errmessage{No room for a new \string\attribute}% \fi % } - % \end{macrocode} % % Two convenient macros, one to set an attribute (basically just a -% wrapper), and another one to uset it. Unsetting attributes with this +% wrapper), and another one to unset it. Unsetting attributes with this % function is important, as the \texttt{unset} value may change, as it -% already has in the 0.37 version. +% already has in \luatex $0.37$. % % \begin{macrocode} - \def\setluatexattribute#1#2{% #1=\numexpr#2\relax % } - \def\unsetluatexattribute#1{% \ifnum\luatexversion<37\relax % #1=-1\relax % @@ -194,7 +179,6 @@ and the derived files #1=-"7FFFFFFF\relax % \fi % } - % \end{macrocode} % % \begin{macrocode} @@ -207,33 +191,29 @@ and the derived files %<*luamodule> % \end{macrocode} % -% Attribute allocation is done mainly in the \texttt{sty} file, but there -% is also a lua addition for attribute handling: Lua\TeX\ is by default +% Attribute allocation is done mainly in the \file{.sty} file, but there +% is also a Lua addition for attribute handling: \luatex is by default % unable to tell the attribute number corresponding to an attribute name. % This attribute number is necessary for functions such as -% \texttt{node.has\_attribute}, which is used very often. The solution +% |node.has_attribute|, which is used very often. The solution % until now was to give a chosen attribute number to each attribute, and % pray that someone else didn't use it before. With this method it was easy % to know the number of an attribute, as it was chosen. Now with the -% \texttt{\string\newluaattribute} macro, it's impossible to know the -% number of an attribute. To fix it, when \texttt{\string\newluaattribute} -% is called, it calls \texttt{luatextra.attributedef\_from\_tex}. This -% function registers the number in the table \texttt{tex.attributenumber}. -% For example to get the number of the attribute \texttt{myattribute} -% registered with \texttt{\string\newluaattribute\string\myattribute}, you -% can simply call \texttt{tex.attributenumber[myattribute]}. +% |\newluaattribute| macro, it's impossible to know the +% number of an attribute. To fix it, when |\newluaattribute| +% is called, it calls |luatextra.attributedef_from_tex|. This +% function registers the number in the table |tex.attributenumber|. +% For example to get the number of the attribute |myattribute| +% registered with |\newluaattribute\myattribute|, you +% can simply call |tex.attributenumber[myattribute]|. % % \begin{macrocode} - luatextra.attributes = {} - tex.attributenumber = luatextra.attributes - function luatextra.attributedef_from_tex(name, number) truename = name:gsub('[\\ ]', '') luatextra.attributes[truename] = tonumber(number) end - % \end{macrocode} % % \begin{macrocode} -- cgit v1.2.3