diff options
Diffstat (limited to 'Master/texmf-dist/source/luatex/luatexbase/luatexbase-cctb.dtx')
-rw-r--r-- | Master/texmf-dist/source/luatex/luatexbase/luatexbase-cctb.dtx | 765 |
1 files changed, 0 insertions, 765 deletions
diff --git a/Master/texmf-dist/source/luatex/luatexbase/luatexbase-cctb.dtx b/Master/texmf-dist/source/luatex/luatexbase/luatexbase-cctb.dtx deleted file mode 100644 index 4b15776a236..00000000000 --- a/Master/texmf-dist/source/luatex/luatexbase/luatexbase-cctb.dtx +++ /dev/null @@ -1,765 +0,0 @@ -% \iffalse meta-comment -% -% Copyright 2009, 2010 by Élie Roux <elie.roux@telecom-bretagne.eu> -% Copyright 2010, 2011 by Manuel Pégourié-Gonnard <mpg@elzevir.fr> -% -% 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 -% test-cctb-plain.tex test-cctb-latex.tex -% -% Unpacking: -% tex luatexbase-cctb.dtx -% Documentation: -% pdflatex luatexbase-cctb.dtx -% -%<*ignore> -\begingroup - \def\x{LaTeX2e}% -\expandafter\endgroup -\ifcase 0\ifx\install y1\fi\expandafter - \ifx\csname processbatchFile\endcsname\relax\else1\fi - \ifx\fmtname\x\else 1\fi\relax -\else\csname fi\endcsname -%</ignore> -%<*install> -\input docstrip.tex - -\keepsilent -\askforoverwritefalse - -\let\MetaPrefix\relax - -\preamble - -See the aforementioned source file(s) for copyright and licensing information. - -\endpreamble - -\let\MetaPrefix\DoubleperCent - -\generate{% - \usedir{tex/luatex/luatexbase}% - \file{luatexbase-cctb.sty}{\from{luatexbase-cctb.dtx}{texpackage}}% -} - -\generate{% - \usedir{doc/luatex/luatexbase}% - \file{test-cctb-plain.tex}{\from{luatexbase-cctb.dtx}{testplain}}% - \file{test-cctb-latex.tex}{\from{luatexbase-cctb.dtx}{testlatex}}% -} - -\def\MetaPrefix{-- } - -\def\luapostamble{% - \MetaPrefix^^J% - \MetaPrefix\space End of File `\outFileName'.% -} - -\def\currentpostamble{\luapostamble}% - -\generate{% - \usedir{tex/luatex/luatexbase}% - \file{cctb.lua}{\from{luatexbase-cctb.dtx}{luamodule}}% -} - -\obeyspaces -\Msg{************************************************************************} -\Msg{*} -\Msg{* To finish the installation you have to move the following} -\Msg{* files into a directory searched by TeX:} -\Msg{*} -\Msg{* luatexbase-cctb.sty cctb.lua} -\Msg{*} -\Msg{* Happy TeXing!} -\Msg{*} -\Msg{************************************************************************} - -\endbatchfile -%</install> -%<*ignore> -\fi -%</ignore> -%<*driver> -\documentclass{ltxdoc} -\input{lltxb-dtxstyle} -\begin{document} - \DocInput{luatexbase-cctb.dtx}% -\end{document} -%</driver> -% \fi -% -% \CheckSum{0} -% -% \CharacterTable -% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z -% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z -% Digits \0\1\2\3\4\5\6\7\8\9 -% Exclamation \! Double quote \" Hash (number) \# -% Dollar \$ Percent \% Ampersand \& -% Acute accent \' Left paren \( Right paren \) -% Asterisk \* Plus \+ Comma \, -% Minus \- Point \. Solidus \/ -% Colon \: Semicolon \; Less than \< -% Equals \= Greater than \> Question mark \? -% Commercial at \@ Left bracket \[ Backslash \\ -% Right bracket \] Circumflex \^ Underscore \_ -% Grave accent \` Left brace \{ Vertical bar \| -% Right brace \} Tilde \~} -% -% \pkdate{luatexbase-cctb}{v0.6 2013-05-11} -% -% \maketitle -% -% \begin{abstract} -% In addition to the registers existing in \tex and \etex, \luatex introduces -% a new concept: catcode tables. This package takes care of catcode table -% allocation just like Plain TeX and LaTeX do for other registers. It also -% provides a few handy macros from common use cases. -% \end{abstract} -% -% \tableofcontents -% -% \section{Documentation} -% -% \subsection{Allocation and setting} -% -% The main macro defined here is |\newluatexcatcodetable|. It behaves the same -% as |\newbox|. Additionally, the newly allocated catcode table is initialised -% to the catcodes of Ini\tex. In order to help you define the catcode tables -% (once they are allocated), two helper macros are available. -% -% \begin{quote} -% \cs{SetCatcodeRange}\marg{from}\marg{to}\marg{value} -% \end{quote} -% Set all characters code in the range \meta{from}--\meta{to} to the given -% catcode \meta{value}. -% -% \begin{quote} -% \cs{setluatexcatcodetable}\marg{table}\marg{catcode statements} -% \end{quote} -% Set a previously allocated \meta{table} to the catcodes given by executing -% \meta{catcode statements}. Note that \meta{table} must not be the current -% active catcode table. You may, however, load another catcode table in your -% \meta{catcode statements} (if you don't, then the current catcodes will be -% used as a basis). -% -% For your convenience, a few catcode tables are predefined: -% \begin{itemize} -% \item |\CatcodeTableIniTeX|: Ini\tex catcodes. -% \item |\CatcodeTableString|: the catcode regime used by |\string| and -% |\meaning|: everything has catcode 12, except space (U+0020) that has -% catcode 10. -% \item |\CatcodeTableOther|: everything (included space) has catcode 12. -% \item |\CatcodeTableLaTeX|: basic \LaTeXe\ catcodes. -% \item |\CatcodeTableLaTeXAtLetter|: same as above, but |@| is a letter. -% \item |\CatcodeTableExpl|: catcodes used by \latex{}3 with |\ExplSyntaxOn|. -% Be aware that this does not provide the exact same environment as -% |\ExplSyntaxOn|: most noticibly, some booleans are not set, and -% |\endlinechar| is not adjusted (it should be 32). -% \end{itemize} -% -% \subsection{Access from Lua} -% -% Various Lua functions, such as |tex.print| accept a catcode table number as -% argument. In order to use in Lua the catcode tables allocated in \tex, the -% package writer needs to know their number. Since |\chardef| is used for the -% definition of the control sequence, this is rather easy to do. However, for -% extra ease of use, the numbers are also directly accessible from Lua as the -% value of the table |luatexbase.catcodetables|, whose keys is the name of the -% control sequence (without any leading backslash). For example, after -% \begin{quote} -% |\newluatexcatcodetable\mycatcodes| -% \end{quote} -% the variable |luatexbase.catcodetables.mycatcodes| will hold the number of -% the catcode table |\mycatcodes|. You will usually want to do -% \begin{quote} -% |local mycatcodes = luatexbase.catcodetables.mycatcodes| -% \end{quote} -% at the beginning of your Lua module (assuming it is loaded after the catcode -% table has been allocated) and then use |tex.print(mycatcodes, ...)| in the -% rest of your Lua code. -% -% Also, nicknames are available for the predefined catcode tables: -% \begin{itemize} -% \item |CatcodeTableIniTeX| = |ini|, -% \item |CatcodeTableString| = |string|, -% \item |CatcodeTableOther| = |other|, -% \item |CatcodeTableLaTeX| = |latex|, -% \item |CatcodeTableLaTeXAtLetter| = |latex-atletter| = |latex-package|, -% \item |CatcodeTableExpl| = |expl| = |expl3|, -% \end{itemize} -% -% \subsection{High-level stack interface} -% -% In many situations, you want to ensure a proper set of catcodes for some -% time, then go back to the previous catcodes without using a group. The -% obvious use case is a package, which may be loaded while unexpected -% catcodes are active. A pair of macros is provided to deal precisely with -% this situation. -% \begin{quote} -% \cs{BeginCatcodeRegime}\marg{catcode table}\\ -% \meta{code}\\ -% \cs{EndCatcodeRegime} -% \end{quote} -% \cs{BeginCatcodeRegime} remembers the current catcode table, then -% initializes a new one with a copy of the \meta{catcode table} given (so that -% this table is not changed by anything in \meta{code}), and makes it the -% active table. \cs{EndCatcodeRegime} restores the previous catcode table. -% -% For example, a \latex package might do: -% \begin{quote} -% |\BeginCatcodeRegime\CatcodeTableLaTeXAtLetter|\\ -% |% package code|\\ -% |\EndCatcodeRegime| -% \end{quote} -% Every catcode change made in the package code will be lost avec -% \cs{EndCatcodeRegime}; if you want them to survive, please use -% \cs{AtEndOfPackage} or \cs{AtBeginDocument}. -% -% By the way, you may add catcode statements in the argument of -% \cs{BeginCatcodeRegime} after the name of a catcode table. So the first line -% of the previous example is equivalent to -% \begin{quote} -% |\BeginCatcodeRegime{\CatcodeTableLaTeX \makeatletter}| -% \end{quote} -% -% \subsection{Low-level stack interface} -% -% The previous macros use internally two stacks : the first on holds the -% numbers of the active catcodes tables, so remembering the current table -% means pushing its number on the stack, and restoring the previously active -% table means popping it off the stack. This is done with: -% \begin{quote} -% \cs{PushCatcodeTableNumStack}\\ -% \cs{PopCatcodeTableNumStack} -% \end{quote} -% Note that \cs{PushCatcodeTableNumStack} doesn't change current catcodes -% but \cs{PopCatcodeTableNumStack} does. -% -% The second stack consists of temporary tables, mainly used to hold copies of -% existing tables. A temporary table are allocated with -% \cs{IncCatcodeTableStack}, accessed with \cs{CatcodeTableStack} and the -% freed with \cs{DecCatcodeTableStack}, none of which changes the current -% table. -% -% As an illustration, \cs{BeginCatcodeRegime} does -% \begin{quote} -% |\PushCatcodeTableNumStack|\\ -% |\IncCatcodeTableStack|\\ -% |\setluatexcatcodetable\CatcodeTableStack{\luatexcatcodetable#1}%|\\ -% |\luatexcatcodetable\CatcodeTableStack| -% \end{quote} -% and \cs{EndCatcodeRegime} is defined as -% \begin{quote} -% |\DecCatcodeTableStack|\\ -% |\PopCatcodeTableNumStack| -% \end{quote} -% -% If you choose to use this low-level interface, it is your responsibility to -% ensure proper balancing of push-pop and inc-dec, as well as making sure that -% a temporary table is never used after it has been freed. -% -% \section{Implementation} -% -% \subsection{\tex package} -% -% \begin{macrocode} -%<*texpackage> -% \end{macrocode} -% -% \subsubsection{Preliminaries} -% -% Catcode defenses and reload protection. -% -% \begin{macrocode} -\begingroup\catcode61\catcode48\catcode32=10\relax% = and space - \catcode123 1 % { - \catcode125 2 % } - \catcode 35 6 % # - \toks0\expandafter{\expandafter\endlinechar\the\endlinechar}% - \edef\x{\endlinechar13}% - \def\y#1 #2 {% - \toks0\expandafter{\the\toks0 \catcode#1 \the\catcode#1}% - \edef\x{\x \catcode#1 #2}}% - \y 13 5 % carriage return - \y 61 12 % = - \y 32 10 % space - \y 123 1 % { - \y 125 2 % } - \y 35 6 % # - \y 64 11 % @ (letter) - \y 10 12 % new line ^^J - \y 39 12 % ' - \y 40 12 % ( - \y 41 12 % ) - \y 44 12 % , - \y 45 12 % - - \y 46 12 % . - \y 47 12 % / - \y 58 12 % : - \y 60 12 % < - \y 62 12 % > - \y 91 12 % [ - \y 93 12 % ] - \y 94 7 % ^ - \y 95 8 % _ - \y 96 12 % ` - \toks0\expandafter{\the\toks0 \relax\noexpand\endinput}% - \edef\y#1{\noexpand\expandafter\endgroup% - \noexpand\ifx#1\relax \edef#1{\the\toks0}\x\relax% - \noexpand\else \noexpand\expandafter\noexpand\endinput% - \noexpand\fi}% -\expandafter\y\csname luatexbase@cctb@sty@endinput\endcsname% -% \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-cctb}[2013/05/11 v0.6 Catcodetable allocation for LuaTeX] -% \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 PackageError\endcsname\relax - \def\x#1#2#3{\begingroup \newlinechar10 - \errhelp{#3}\errmessage{Package #1 error: #2}\endgroup} - \else - \let\x\PackageError - \fi - \expandafter\endgroup - \x{luatexbase-cctb}{LuaTeX is required for this package. Aborting.}{% - This package can only be used with the LuaTeX engine^^J% - (command `lualatex' or `luatex').^^J% - Package loading has been stopped to prevent additional errors.} - \expandafter\luatexbase@cctb@sty@endinput% -\fi -% \end{macrocode} -% -% \subsubsection{Load supporting Lua module} -% -% First load \pk{luatexbase-modutils} (hence \pk{luatexbase-loader} -% and \pk{luatexbase-compat}), then the supporting Lua module. -% -% \begin{macrocode} -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname RequirePackage\endcsname\relax - \input luatexbase-modutils.sty -\else - \RequirePackage{luatexbase-modutils} -\fi -\luatexbase@directlua{require('luatexbase.cctb')} -% \end{macrocode} -% -% \subsubsection{Primitives needed} -% -% \pk{luatexbase-compat} is already loaded; just make sure the primitives -% we need are available. -% -% \begin{macrocode} -\luatexbase@ensure@primitive{luaescapestring} -\luatexbase@ensure@primitive{catcodetable} -\luatexbase@ensure@primitive{initcatcodetable} -\luatexbase@ensure@primitive{savecatcodetable} -% \end{macrocode} -% -% \subsubsection{Allocation and temporary tables} -% -% Counters for the allocated and temporary tables. -% -% \begin{macrocode} -\newcount\lltxb@catcodetable@alloc -\lltxb@catcodetable@alloc\m@ne -\newcount\CatcodeTableStack -\CatcodeTableStack\z@ -% \end{macrocode} -% -% The allocation macro. Allocate only odd numbers to allow using even -% numbers for temporary tables. -% -% \begin{macrocode} -\def\newluatexcatcodetable#1{% - \ifnum\lltxb@catcodetable@alloc<65535\relax - \global\advance\lltxb@catcodetable@alloc\tw@ - \allocationnumber\lltxb@catcodetable@alloc - \global\chardef#1\allocationnumber - \luatexinitcatcodetable\allocationnumber - \begingroup\escapechar\m@ne - \luatexbase@directlua{luatexbase.catcodetabledef_from_tex( - '\luatexluaescapestring{\string#1}', '\number\allocationnumber')}% - \endgroup - \wlog{\string#1=\string\luatexcatcodetable\the\allocationnumber}% - \else - \errmessage{No room for a new \string\luatexcatcodetable}% - \fi} -% \end{macrocode} -% -% Allocate a new temporary table, using even numbers. -% -% \begin{macrocode} -\def\IncCatcodeTableStack{% - \ifnum\CatcodeTableStack<65534\relax - \global\advance\CatcodeTableStack\tw@ - \else - \errmessage{CatcodeTableStack overflow}% - \fi} -% \end{macrocode} -% -% Free a temporary table. -% -% \begin{macrocode} -\def\DecCatcodeTableStack{% - \ifnum\CatcodeTableStack>\z@ - \global\advance\CatcodeTableStack-2\relax - \else - \errmessage{CatcodeTableStack underflow}% - \fi} -% \end{macrocode} -% -% \subsubsection{Setting catcode tables} -% -% A small patch to get two new counters in Plain too. -% -% \begin{macrocode} -\expandafter\ifx\csname @tempcnta\endcsname\relax - \csname newcount\endcsname\@tempcnta -\fi -\expandafter\ifx\csname @tempcntb\endcsname\relax - \csname newcount\endcsname\@tempcntb -\fi -% \end{macrocode} -% -% Set the catcodes for a range of characters. -% -% \begin{macrocode} -\def\SetCatcodeRange#1#2#3{% - \edef\luaSCR@temp{% - \noexpand\@tempcnta=\the\@tempcnta - \noexpand\@tempcntb=\the\@tempcntb - \noexpand\count@=\the\count@ - \relax}% - \@tempcnta=#1\relax - \@tempcntb=#2\relax - \count@=#3\relax - \loop\unless\ifnum\@tempcnta>\@tempcntb - \catcode\@tempcnta=\count@ - \advance\@tempcnta\@ne - \repeat - \luaSCR@temp} -% \end{macrocode} -% -% Make \cs{SetCatcodeRange} available with its old name. -% -% \begin{macrocode} -\def\lltxb@synonym#1#2{% - \def#1{% - \begingroup - \ifdefined\PackageWarning - \let\x\PackageWarning - \else - \def\x####1####2{% - \begingroup \endlinechar10 - \message{Package ####1 warning: ####2}% - \endgroup} - \fi - \expandafter\endgroup - \x{luatex}{\string#1 is deprecated^^J% - and will be removed in the next version of the package.^^J% - Please use \string#2 instead.} - \let#1#2% - #1}} -\lltxb@synonym \setcatcoderange \SetCatcodeRange -% \end{macrocode} -% -% Set a catcode table. -% -% \begin{macrocode} -\def\setluatexcatcodetable#1#2{% - \begingroup - #2% - \luatexsavecatcodetable#1% - \endgroup} -% \end{macrocode} -% -% \subsubsection{Predefined tables} -% -% The |IniTeX| catcode table needs no extra initialisation. -% -% \begin{macrocode} -\newluatexcatcodetable\CatcodeTableIniTeX -% \end{macrocode} -% -% The |String| and |Other| catcode tables. -% -% \begin{macrocode} -\newluatexcatcodetable\CatcodeTableString -\setluatexcatcodetable\CatcodeTableString{% - \luatexcatcodetable\CatcodeTableIniTeX - \catcode0 12 % nul - \catcode13 12 % carriage return - \catcode37 12 % percent - \SetCatcodeRange{65}{90}{12}% A-Z - \SetCatcodeRange{97}{122}{12}% a-z - \catcode92 12 % backslash - \catcode127 12 } -% \end{macrocode} -% -% \begin{macrocode} -\newluatexcatcodetable\CatcodeTableOther -\setluatexcatcodetable\CatcodeTableOther{% - \luatexcatcodetable\CatcodeTableString - \catcode32 12 } -% \end{macrocode} -% -% Tables for \LaTeXe. -% -% \begin{macrocode} -\newluatexcatcodetable\CatcodeTableLaTeX -\setluatexcatcodetable\CatcodeTableLaTeX{% - \luatexcatcodetable\CatcodeTableIniTeX - \SetCatcodeRange{0}{31}{15}% - \catcode9 10 % tab - \catcode10 12 % newline - \catcode12 13 % form feed - \catcode13 5 % carriage return - \catcode35 6 % hash - \catcode36 3 % dollar - \catcode38 4 % ampersand - \catcode94 7 % circumflex - \catcode95 8 % underscore - \catcode123 1 % brace left - \catcode125 2 % brace right - \catcode126 13 % tilde - \catcode127 15 } -% \end{macrocode} -% -% \begin{macrocode} -\newluatexcatcodetable\CatcodeTableLaTeXAtLetter -\setluatexcatcodetable\CatcodeTableLaTeXAtLetter{% - \luatexcatcodetable\CatcodeTableLaTeX - \catcode64=11 } -% \end{macrocode} -% -% A table for \pk{expl3}. -% -% \begin{macrocode} -\newluatexcatcodetable\CatcodeTableExpl -\setluatexcatcodetable\CatcodeTableExpl{% - \luatexcatcodetable\CatcodeTableLaTeX - \catcode126 10 % tilde is a space char - \catcode32 9 % space is ignored - \catcode9 9 % tab also ignored - \catcode95 11 % underscore letter - \catcode58 11 % colon letter - } -% \end{macrocode} -% -% Now do the shortcuts. -% -% \begin{macrocode} -\luatexbase@directlua{luatexbase.catcodetable_do_shortcuts()} -% \end{macrocode} -% -% \subsubsection{Catcode table number stack and regimes} -% -% The stack is implemented as a list of (brace-enclosed) \tex arguments. -% Initially, in contains only $0$, the number of the active table when -% \luatex starts. -% -% \begin{macrocode} -\def\lltxb@cctb@numstack{0} -% \end{macrocode} -% -% Pushing a number on the stack actually means adding it to the beginning -% of the list (ie, unshifting it). -% -% \begin{macrocode} -\def\PushCatcodeTableNumStack{% - \xdef\lltxb@cctb@numstack{{\the\luatexcatcodetable}\lltxb@cctb@numstack}} -% \end{macrocode} -% -% Popping a number off the stack means shifting it. -% -% \begin{macrocode} -\def\PopCatcodeTableNumStack{% - \expandafter\lltxb@cctb@numstack@pop\lltxb@cctb@numstack\@nil} -\def\lltxb@cctb@numstack@pop#1#2\@nil{% - \ifx\empty#2\empty - \begingroup - \ifdefined\PackageWarning - \let\x\PackageWarning - \else - \def\x####1####2{% - \begingroup \endlinechar10 - \message{Package ####1 warning: ####2}% - \endgroup}% - \fi - \expandafter\endgroup - \x{luatexbase-cctb}{Popping from an empty CatcodeTableNumStack}% - \luatexcatcodetable\z@ - \else - \gdef\lltxb@cctb@numstack{#2}% - \luatexcatcodetable#1\relax - \fi} -% \end{macrocode} -% -% Now the catcode regime pseudo-environment as presented in the -% documentation. -% -% \begin{macrocode} -\def\BeginCatcodeRegime#1{% - \PushCatcodeTableNumStack - \IncCatcodeTableStack - \setluatexcatcodetable\CatcodeTableStack{\luatexcatcodetable#1}% - \luatexcatcodetable\CatcodeTableStack} -% \end{macrocode} -% -% \begin{macrocode} -\def\EndCatcodeRegime{% - \DecCatcodeTableStack - \PopCatcodeTableNumStack} -% \end{macrocode} -% -% That's all, folks! -% -% \begin{macrocode} -\luatexbase@cctb@sty@endinput% -%</texpackage> -% \end{macrocode} -% -% \subsection{Lua module} -% -% \begin{macrocode} -%<*luamodule> -luatexbase = luatexbase or { } -local luatexbase = luatexbase -luatexbase.provides_module({ - name = "luatexbase-cctb", - version = 0.6, - date = "2013/05/11", - description = "Catcodetable allocation for LuaTeX", - author = "Heiko Oberdiek, Elie Roux and Manuel Pegourie-Gonnard", - copyright = "Heiko Oberdiek, Elie Roux and Manuel Pegourie-Gonnard", - license = "CC0", -}) -% \end{macrocode} -% -% The number associated to a CS name is remembered in the |catcodetables| -% table. -% -% \begin{macrocode} -luatexbase.catcodetables = luatexbase.catcodetables or { } -local catcodetables = luatexbase.catcodetables -local function catcodetabledef_from_tex(name, number) - catcodetables[name] = tonumber(number) -end -luatexbase.catcodetabledef_from_tex = catcodetabledef_from_tex -% \end{macrocode} -% -% The next function creates some shortcuts for better readability in lua -% code. This makes |luatexbase.catcodetables.latex| equivalent to -% |luatexbase.catcodetables.CatcodeTableLaTeX|. -% -% \begin{macrocode} -local function catcodetable_do_shortcuts() - local cat = catcodetables - cat['latex'] = cat.CatcodeTableLaTeX - cat['latex-package'] = cat.CatcodeTableLaTeXAtLetter - cat['latex-atletter'] = cat.CatcodeTableLaTeXAtLetter - cat['ini'] = cat.CatcodeTableIniTeX - cat['expl3'] = cat.CatcodeTableExpl - cat['expl'] = cat.CatcodeTableExpl - cat['string'] = cat.CatcodeTableString - cat['other'] = cat.CatcodeTableOther -end -luatexbase.catcodetable_do_shortcuts = catcodetable_do_shortcuts -% \end{macrocode} -% -% \begin{macrocode} -%</luamodule> -% \end{macrocode} -% -% \section{Test files} -% -% The tests done are very basic: we just make sure that the package loads -% correctly and the macros don't generate any error, under both LaTeX en -% Plain TeX. -% -% \begin{macrocode} -%<testplain,testlatex>\catcode00 15 -%<testplain>\input luatexbase-cctb.sty -%<testlatex>\RequirePackage{luatexbase-cctb} -%<*testplain,testlatex> -\begingroup \catcode64 11 \global\let\lua\luatexbase@directlua \endgroup -% \end{macrocode} -% -% Also check that the catcodetable's number is remembered well, -% independently of the current value of |\escapechar|. - -% \begin{macrocode} -\newluatexcatcodetable\testcctb -\lua{assert(luatexbase.catcodetables.testcctb)} -\begingroup -\escapechar64 -\newluatexcatcodetable\anothercctb -\endgroup -\lua{assert(luatexbase.catcodetables.anothercctb)} -% \end{macrocode} -% -% Now, play a little bit with predefined tables. Be careful to change -% catcodes only inside a group to avoid chaos. -% -% \begin{macrocode} -\def\test#1#2#3{% - \begingroup - \ifcsname CatcodeTable#1\endcsname \else \INTERR \fi - \luatexcatcodetable\csname CatcodeTable#1\endcsname - \ifnum\catcode#2=#3 \else \ERROR \fi - \endgroup} -\test {IniTeX} {00} {09} -\test {IniTeX} {92} {00} -\test {IniTeX} {64} {12} -\test {IniTeX} {65} {11} -\test {String} {92} {12} -\test {String} {65} {12} -\test {String} {32} {10} -\test {Other} {92} {12} -\test {Other} {65} {12} -\test {Other} {32} {12} -\test {LaTeXAtLetter} {64} {11} -\test {LaTeX} {64} {12} -\test {Expl} {32} {09} -%<testlatex>\documentclass{minimal} -\lua{% - tex.sprint('\string\\setbox0=\string\\hbox{') - tex.sprint(luatexbase.catcodetables.string, "\string\\undef # _^&") - tex.sprint('}') - } -% \end{macrocode} -% -% \begin{macrocode} -%</testplain,testlatex> -%<testplain>\bye -%<testlatex>\stop -% \end{macrocode} -% -% \Finale -\endinput |