From ddf0ebc277361f955b47575e08dfc8fc63fe493a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Sat, 21 May 2011 16:03:52 +0200 Subject: new luatex.dtx --- luatex.dtx | 312 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 312 insertions(+) create mode 100644 luatex.dtx (limited to 'luatex.dtx') diff --git a/luatex.dtx b/luatex.dtx new file mode 100644 index 0000000..843148c --- /dev/null +++ b/luatex.dtx @@ -0,0 +1,312 @@ +% \iffalse meta-comment +% +% Written in 2011 by Manuel Pégourié-Gonnard +% +% This work is under the CC0 license. +% +% This work consists of the main source file luatex.dtx +% and the derived files +% luatex.sty +% +% Unpacking: +% tex luatex.dtx +% Documentation: +% pdflatex luatex.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 +% +%<*install> +\input docstrip.tex + +\keepsilent +\askforoverwritefalse + +\preamble + +See source file '\inFileName' for licence and contact information. + +\endpreamble + +\generate{% + \usedir{tex/luatex/luatexbase}% + \file{luatex.sty}{\from{luatex.dtx}{texpackage}}% +} + +\generate{% + \usedir{doc/luatex/luatexbase}% + \file{test-luatex-plain.tex}{\from{luatex.dtx}{testplain}}% + \file{test-luatex-latex.tex}{\from{luatex.dtx}{testlatex}}% +} + +\obeyspaces +\Msg{************************************************************************} +\Msg{*} +\Msg{* To finish the installation you have to move the following} +\Msg{* files into a directory searched by TeX:} +\Msg{*} +\Msg{* luatex.sty} +\Msg{*} +\Msg{* Happy TeXing!} +\Msg{*} +\Msg{************************************************************************} + +\endbatchfile +% +%<*ignore> +\fi +% +%<*driver> +\documentclass{ltxdoc} +\input{lltxb-dtxstyle} +\newcommand\subpk[1]{% + \item[\href{luatexbase-#1.pdf}{luatexbase-#1}\normalfont:]} +\begin{document} + \DocInput{luatex.dtx}% +\end{document} +% +% \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 \~} +% +% \author{% +% Heiko Oberdiek \& Manuel P\'egouri\'e-Gonnard\\ +% Support: \email{lualatex-dev@tug.org}% +% } +% \hypersetup{% +% pdfauthor = {Manuel Pegourie-Gonnard and Heiko Oberdiek}, +% } +% \pkdate{luatex}{v0.5 2011-05-21} +% +% \maketitle +% +% \begin{abstract} +% This package provides resource management for the LuaTeX macro programmer. +% +% It is now a wrapper around \pk{luatexbase} subpackages, with additinal names +% for some macros in order to ensure compatibility with previous versions of +% this package. You are encouraged to use \pk{luatexbase} directly and switch +% to the new names. +% \end{abstract} +% +% \tableofcontents +% +% \section{Documentation} +% +% The \pk{luatex} package loads the following sub-packages of \pk{luatexbase}: +% \begin{description} +% \subpk{compat} compatibility helpers for \verb+\directlua+, primitive +% names and version information from Lua. +% \subpk{loader} extension of \luatex's Lua module loader (since version +% 0.60.0, this is more of a compatibility layer for older versions than a +% real extension). +% \subpk{regs} extented allocation scheme for registers and the like, +% \emph{\`a la} \pk{etex}. +% \subpk{cctb} catcode table allocation. +% \subpk{attr} attribute allocation. +% \end{description} +% +% In addition, it defines the following synonyms: +% \begin{center} +% \begin{tabular}{rl} +% \toprule +% Deprecated name & New name \\ +% \midrule +% \cs{newattribute} & \cs{newluatexattribute} \\ +% \cs{setattribute} & \cs{setluatexattribute} \\ +% \cs{unsetattribute} & \cs{unsetluatexattribute} \\ +% \cs{newcatcodetable} & \cs{newluatexcatcodetable} \\ +% \bottomrule +% \end{tabular} +% \end{center} +% The deprecated names trigger a warning and will be removed in a future +% version. +% +% +% \section{Implementation} +% +% \begin{macrocode} +%<*texpackage> +% \end{macrocode} +% +% \subsection{Preliminaries} +% +% Reload protection, especially for \plaintex. +% +% \begin{macrocode} + \csname lltxb@luatex@loaded\endcsname +\expandafter\let\csname lltxb@luatex@loaded\endcsname\endinput +% \end{macrocode} +% +% Catcode defenses. +% +% \begin{macrocode} +\begingroup + \catcode123 1 % { + \catcode125 2 % } + \catcode 35 6 % # + \toks0{}% + \def\x{}% + \def\y#1 #2 {% + \toks0\expandafter{\the\toks0 \catcode#1 \the\catcode#1}% + \edef\x{\x \catcode#1 #2}}% + \y 123 1 % { + \y 125 2 % } + \y 35 6 % # + \y 10 12 % ^^J + \y 34 12 % " + \y 36 3 % $ $ + \y 39 12 % ' + \y 40 12 % ( + \y 41 12 % ) + \y 42 12 % * + \y 43 12 % + + \y 44 12 % , + \y 45 12 % - + \y 46 12 % . + \y 47 12 % / + \y 60 12 % < + \y 61 12 % = + \y 64 11 % @ (letter) + \y 62 12 % > + \y 95 12 % _ (other) + \y 96 12 % ` + \edef\y#1{\endgroup\edef#1{\the\toks0\relax}\x}% +\expandafter\y\csname lltxb@luatex@AtEnd\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{luatex}[2010/10/06 v0.3 Module utilities 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{luatex}{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.} + \lltxb@luatex@AtEnd + \expandafter\endinput +\fi +% \end{macrocode} +% +% \subsection{Packages loading} +% +% \begin{macrocode} +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname RequirePackage\endcsname\relax + \input luatexbase-compat.sty + \input luatexbase-loader.sty + \input luatexbase-regs.sty + \input luatexbase-attr.sty + \input luatexbase-cctb.sty +\else + \RequirePackage{luatexbase-compat} + \RequirePackage{luatexbase-loader} + \RequirePackage{luatexbase-regs} + \RequirePackage{luatexbase-attr} + \RequirePackage{luatexbase-cctb} +\fi +% \end{macrocode} +% +% \subsection{Compatibility names} +% +% Defined a synonym, triggerring a one-time warning. +% +% \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}} +% \end{macrocode} +% +% Now the list of synonyms. +% +% \begin{macrocode} +\lltxb@synonym \newattribute \newluatexattribute +\lltxb@synonym \setattribute \setluatexattribute +\lltxb@synonym \unsetattribute \unsetluatexattribute +\lltxb@synonym \newcatcodetable \newluatexcatcodetable +% \end{macrocode} +% +% This is the end, my friend\dots the end. +% +% \begin{macrocode} +\lltxb@luatex@AtEnd +% +% \end{macrocode} +% +% \section{Test file} +% +% Very minimal, just check that the package correctly loads. +% +% \begin{macrocode} +%\input luatex.sty +%\RequirePackage{luatex} +%\bye +%\stop +% \end{macrocode} +% +% +% \Finale +\endinput -- cgit v1.2.3