diff options
author | Manuel Pégourié-Gonnard <mpg@elzevir.fr> | 2010-03-26 22:40:15 +0100 |
---|---|---|
committer | Manuel Pégourié-Gonnard <mpg@elzevir.fr> | 2010-03-26 22:40:15 +0100 |
commit | 2bc1ebfb616b2c0ab2c97f0af33fe47e61178168 (patch) | |
tree | f9ca5c1bcb04af56d25ac75855d539abb7c51893 | |
parent | 6ccc6b33050a4f574e99d113e8860859bae62aec (diff) | |
download | luatexbase-2bc1ebfb616b2c0ab2c97f0af33fe47e61178168.tar.gz |
Prepare cctb dtx.
-rw-r--r-- | Changes | 3 | ||||
-rw-r--r-- | TODO | 4 | ||||
-rw-r--r-- | luatexbase-attr.dtx | 4 | ||||
-rw-r--r-- | luatexbase-cctb.dtx | 136 |
4 files changed, 86 insertions, 61 deletions
@@ -1,5 +1,8 @@ Changes in the luatexbase package/bundle +2010/03/26 + luatexbase-cctb + 2010/03/11 luatexbase-attrs 0.1 - add minimal test files for luatex and lualatex @@ -11,6 +11,7 @@ general - date & changes entry - redo module loading in packages once mods is done. +- adjust preamble to avoid duplicated list of files (refer to DTX instead) Later ===== @@ -22,7 +23,8 @@ 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?) +rather tricky in this respect, but are they really used?) Well, is there any +actual need for this? attr --- diff --git a/luatexbase-attr.dtx b/luatexbase-attr.dtx index 511861c..9f81fe9 100644 --- a/luatexbase-attr.dtx +++ b/luatexbase-attr.dtx @@ -242,9 +242,7 @@ and the derived files \ifnum\lltxb@attribute@alloc<65535\relax \global\advance\lltxb@attribute@alloc\@ne \allocationnumber\lltxb@attribute@alloc - \ifluatex - \global\luatexattributedef#1=\allocationnumber - \fi + \global\luatexattributedef#1=\allocationnumber \unsetluatexattribute#1% \begingroup\escapechar\m@ne \expandafter\endgroup \directlua{luatextra.attributedef_from_tex( diff --git a/luatexbase-cctb.dtx b/luatexbase-cctb.dtx index abcd6da..14988bc 100644 --- a/luatexbase-cctb.dtx +++ b/luatexbase-cctb.dtx @@ -1,8 +1,5 @@ % \iffalse meta-comment % -% Template : look for cctb DATE DESC VERSION !!! -% and 'derived files' !!! -% % Written in 2009, 2010 by Manuel Pégourié-Gonnard and Élie Roux. % <mpg@elzevir.fr> % <elie.roux@telecom-bretagne.eu> @@ -11,18 +8,14 @@ % % This work consists of the main source file luatexbase-cctb.dtx % and the derived files -% luatexbase-cctb.sty cctb.lua ... +% luatexbase-cctb.sty luatexbase.cctb.lua +% test-cctb-plain.tex test-cctb-latex.tex % % Unpacking: % tex luatexbase-cctb.dtx % Documentation: % pdflatex luatexbase-cctb.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 +44,8 @@ This work is under the CC0 license. This work consists of the main source file luatexbase-cctb.dtx and the derived files - luatexbase-cctb.sty cctb.lua ... + luatexbase-cctb.sty luatexbase.cctb.lua + test-cctb-plain.tex test-cctb-latex.tex \endpreamble @@ -94,12 +88,8 @@ and the derived files \fi %</ignore> %<*driver> -\NeedsTeXFormat{LaTeX2e} -\ProvidesFile{luatexbase-cctb.drv} - [DATE DESC] \documentclass{ltxdoc} -\EnableCrossrefs -\CodelineIndex +\input{lltxb-dtxstyle} \begin{document} \DocInput{luatexbase-cctb.dtx}% \end{document} @@ -124,10 +114,8 @@ and the derived files % Grave accent \` Left brace \{ Vertical bar \| % Right brace \} Tilde \~} % -% \GetFileInfo{luatexbase-cctb.drv} -% -% \title{The \textsf{luatexbase-cctb} package} -% \date{DATE} +% \title{The \pk{luatexbase-cctb} package} +% \date{v0.1 2010-03-26} % \author{% % Manuel P\'egouri\'e-Gonnard \\ \texttt{mpg@elzevir.fr} \and % \'Elie Roux \\ \texttt{elie.roux@telecom-bretagne.eu}} @@ -141,53 +129,101 @@ and the derived files % % \section{Implementation} % -% \subsection{\TeX\ package} +% \subsection{\tex package} % % \begin{macrocode} %<*texpackage> % \end{macrocode} % -% Here we allocate catcodetables the same way we handle attributes. +% \subsubsection{Preliminaries} +% +% Reload protection, especially for \plaintex. +% +% \begin{macrocode} + \csname lltxb@cctb@loaded\endcsname +\expandafter\let\csname lltxb@cctb@loaded\endcsname\endinput +% \end{macrocode} +% +% Package declaration. +% +% \begin{macrocode} +\begingroup + \expandafter\ifx\csname ProvidesPackage\endcsname\relax + \def\x#1[#2]{\immediate\write16{Package: #1 #2}} + \else + \let\x\ProvidesPackage + \fi +\expandafter\endgroup +\x{luatexbase-attr}[2010/03/26 v0.1 Catcodetable allocation for LuaTeX (mpg)] +% \end{macrocode} +% +% Make sure \luatex is used. +% +% \begin{macrocode} +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname RequirePackage\endcsname\relax + \input ifluatex.sty +\else + \RequirePackage{ifluatex} +\fi +\ifluatex\else + \begingroup + \expandafter\ifx\csname PackageWarningNoLine\endcsname\relax + \def\x#1#2{\begingroup\newlinechar10 + \immediate\write16{Package #1 warning: #2}\endgroup} + \else + \let\x\PackageWarningNoLine + \fi + \expandafter\endgroup + \x{luatexbase-cctb}{LuaTeX is required for this package.^^J + Aborting package loading.} + \expandafter\endinput +\fi +% \end{macrocode} +% +% Make sure the catcode of @ is correct, especially for \plaintex. +% +% \begin{macrocode} +\expandafter\edef\csname lltxb@cctb@AtEnd\endcsname{% + \catcode64 \the\catcode64\relax} +\catcode64 11 +% \end{macrocode} +% +% \subsubsection{Main content} +% +% Load the supporting Lua module. +% +% \begin{macrocode} +\directlua{dofile(kpse.find_file('luatexbase.cctb.lua', 'lua'))} +% \end{macrocode} +% +% The allocation macro. % % \begin{macrocode} - \newcount\luatexcatcodetabledefcounter - \luatexcatcodetabledefcounter = 1 - \def\newluatexcatcodetable#1{% \ifnum\luatexcatcodetabledefcounter<1114110\relax % 0x10FFFF is maximal \chardef - \global\advance\luatexcatcodetabledefcounter by 1\relax % - \allocationnumber=\luatexcatcodetabledefcounter % - \global\chardef#1=\allocationnumber % + \global\advance\luatexcatcodetabledefcounter by 1\relax + \allocationnumber=\luatexcatcodetabledefcounter + \global\chardef#1=\allocationnumber \luadirect{% luatextra.catcodetabledef_from_tex([[\noexpand#1]], '\number\allocationnumber')}% \wlog{\string#1=\string\catcodetable\the\allocationnumber}% - \else % + \else \errmessage{No room for a new \string\catcodetable}% - \fi % -} - + \fi} % \end{macrocode} % -% A small patch to manage the catcode of \@ in Plain, and to get two new -% counters in Plain too. +% A small patch to get two new counters in Plain too. % % \begin{macrocode} - -\expandafter\edef\csname ltxtra@AtEnd\endcsname{% - \catcode64 \the\catcode64\relax -} - -\catcode 64=11\relax - \expandafter\ifx\csname @tempcnta\endcsname\relax \csname newcount\endcsname\@tempcnta \fi \expandafter\ifx\csname @tempcntb\endcsname\relax \csname newcount\endcsname\@tempcntb \fi - % \end{macrocode} % % A macro that sets the catcode of a range of characters. The first @@ -196,7 +232,6 @@ and the derived files % parameter is the catcode we want them to have. % % \begin{macrocode} - \def\luatexsetcatcoderange#1#2#3{% \edef\luaSCR@temp{% \noexpand\@tempcnta=\the\@tempcnta @@ -211,9 +246,7 @@ and the derived files \catcode\@tempcnta=\count@ \advance\@tempcnta by 1\relax \repeat - \luaSCR@temp -} - + \luaSCR@temp} % \end{macrocode} % % Finally we create several catcodetables that may be used by the user. @@ -232,7 +265,6 @@ and the derived files % \end{itemize} % % \begin{macrocode} - \newluatexcatcodetable\CatcodeTableIniTeX \newluatexcatcodetable\CatcodeTableString \newluatexcatcodetable\CatcodeTableOther @@ -299,11 +331,7 @@ and the derived files \saveluatexcatcodetable\CatcodeTableOther \endgroup } - -\ltxtra@AtEnd - -\luadirect{luatextra.catcodetable_do_shortcuts()} - +\directlua{luatextra.catcodetable_do_shortcuts()} % \end{macrocode} % % \begin{macrocode} @@ -321,16 +349,12 @@ and the derived files % \texttt{\string\newluacatcodetable}. % % \begin{macrocode} - luatextra.catcodetables = {} - tex.catcodetablenumber = luatextra.catcodetables - function luatextra.catcodetabledef_from_tex(name, number) truename = name:gsub('[\\ ]', '') luatextra.catcodetables[truename] = tonumber(number) end - % \end{macrocode} % % With this function we create some shortcuts for a @@ -339,7 +363,6 @@ end % |tex.catcodetablenumber['CatcodeTableLaTeX']|. % % \begin{macrocode} - function luatextra.catcodetable_do_shortcuts() local cat = tex.catcodetablenumber local val = cat['CatcodeTableLaTeX'] @@ -369,7 +392,6 @@ function luatextra.catcodetable_do_shortcuts() cat['other'] = val end end - % \end{macrocode} % % \begin{macrocode} |