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 --- Makefile | 12 +- TODO | 7 -- lltxb-dtxstyle.tex | 13 +-- luatex.dtx | 312 ++++++++++++++++++++++++++++++++++++++++++++++++++++ luatexbase-cctb.dtx | 8 +- luatexbase.dtx | 2 +- 6 files changed, 332 insertions(+), 22 deletions(-) create mode 100644 luatex.dtx diff --git a/Makefile b/Makefile index 03784a5..3970169 100644 --- a/Makefile +++ b/Makefile @@ -23,9 +23,10 @@ UNPACKED_MODUTILS = luatexbase-modutils.sty modutils.lua test-modutils.lua \ UNPACKED_COMPAT = luatexbase-compat.sty \ test-compat-plain.tex test-compat-latex.tex UNPACKED_BASE = luatexbase.sty test-base-plain.tex test-base-latex.tex +UNPACKED_LUATEX = luatex.sty test-luatex-plain.tex test-luatex-latex.tex UNPACKED = $(UNPACKED_MCB) $(UNPACKED_REGS) $(UNPACKED_ATTR) $(UNPACKED_CCTB) \ $(UNPACKED_LOADER) $(UNPACKED_MODUTILS) $(UNPACKED_COMPAT) \ - $(UNPACKED_BASE) + $(UNPACKED_BASE) $(UNPACKED_LUATEX) COMPILED = $(DOC) GENERATED = $(COMPILED) $(UNPACKED) SOURCE = $(DTX) $(DTXSTY) README TODO Changes Makefile @@ -67,7 +68,7 @@ DO_LATEXMK = latexmk -pdf -silent $< >/dev/null # Main targets definition all: $(GENERATED) check: check-regs check-attr check-cctb check-loader check-modutils check-mcb \ - check-compat check-base + check-compat check-base check-luatex doc: $(COMPILED) unpack: $(UNPACKED) ctan: check $(CTAN_ZIP) @@ -105,6 +106,9 @@ $(UNPACKED_COMPAT): luatexbase-compat.dtx $(UNPACKED_BASE): luatexbase.dtx $(DO_TEX) +$(UNPACKED_LUATEX): luatex.dtx + $(DO_TEX) + check-regs: $(UNPACKED_REGS) luatex --interaction=batchmode test-regs-plain.tex >/dev/null lualatex --interaction=batchmode test-regs-latex.tex >/dev/null @@ -138,6 +142,10 @@ check-base: $(UNPACKED_BASE) luatex --interaction=batchmode test-base-plain.tex >/dev/null lualatex --interaction=batchmode test-base-latex.tex >/dev/null +check-luatex: $(UNPACKED_LUATEX) + luatex --interaction=batchmode test-luatex-plain.tex >/dev/null + lualatex --interaction=batchmode test-luatex-latex.tex >/dev/null + $(CTAN_ZIP): $(SOURCE) $(COMPILED) $(TDS_ZIP) @echo "Making $@ for CTAN upload." @$(RM) -- $@ diff --git a/TODO b/TODO index 1882671..75052d7 100644 --- a/TODO +++ b/TODO @@ -11,13 +11,6 @@ test suite - add debug messages to be used in the test suite? - import test files from luatex.sty -luatex.sty ----------- - -- do it (depends on cctb update) -- provide \newcatcodetable & all for now, used in l3luatex.sty (to be - investigated), with a depcracation warning - compat ------ diff --git a/lltxb-dtxstyle.tex b/lltxb-dtxstyle.tex index 89c1ac0..7a5c00b 100644 --- a/lltxb-dtxstyle.tex +++ b/lltxb-dtxstyle.tex @@ -4,6 +4,8 @@ \usepackage[T1]{fontenc} \usepackage{textcomp} \usepackage{lmodern} +\usepackage{booktabs} +\usepackage{enumitem} \usepackage{xspace} \usepackage[a4paper]{geometry} \usepackage[english]{babel} @@ -34,14 +36,9 @@ \newcommand \pk {\textsf} \newcommand \cmdname {\texttt} -% compact version of itemize -\newenvironment{itemize*}{% - \itemize - \setlength\itemsep{0pt}% - \setlength\parskip{0pt}% -}{% - \enditemize -} +% compact lists +\setitemize{itemsep=0pt, parsep=0pt} +\setdescription{itemsep=0pt, parsep=0pt} % no so nice, but anyway... \newenvironment{qcode}{% 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 diff --git a/luatexbase-cctb.dtx b/luatexbase-cctb.dtx index 0baf01e..e2c701d 100644 --- a/luatexbase-cctb.dtx +++ b/luatexbase-cctb.dtx @@ -151,7 +151,7 @@ See source file '\inFileName' for details. % used as a basis). % % For your convenience, a few catcode tables are predefined: -% \begin{itemize*} +% \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 @@ -163,7 +163,7 @@ See source file '\inFileName' for details. % 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*} +% \end{itemize} % % \subsection{Access from Lua} % @@ -187,14 +187,14 @@ See source file '\inFileName' for details. % rest of your Lua code. % % Also, nicknames are available for the predefined catcode tables: -% \begin{itemize*} +% \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*} +% \end{itemize} % % \subsection{High-level stack interface} % diff --git a/luatexbase.dtx b/luatexbase.dtx index 9014b2a..4bfd5cb 100644 --- a/luatexbase.dtx +++ b/luatexbase.dtx @@ -214,7 +214,7 @@ See source file '\inFileName' for licence and contact information. \let\x\PackageError \fi \expandafter\endgroup - \x{luatexbase-attr}{LuaTeX is required for this package. Aborting.}{% + \x{luatexbase}{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.} -- cgit v1.2.3