summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile12
-rw-r--r--TODO7
-rw-r--r--lltxb-dtxstyle.tex13
-rw-r--r--luatex.dtx312
-rw-r--r--luatexbase-cctb.dtx8
-rw-r--r--luatexbase.dtx2
6 files changed, 332 insertions, 22 deletions
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 <mpg@elzevir.fr>
+%
+% 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
+%</ignore>
+%<*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
+%</install>
+%<*ignore>
+\fi
+%</ignore>
+%<*driver>
+\documentclass{ltxdoc}
+\input{lltxb-dtxstyle}
+\newcommand\subpk[1]{%
+ \item[\href{luatexbase-#1.pdf}{luatexbase-#1}\normalfont:]}
+\begin{document}
+ \DocInput{luatex.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 \~}
+%
+% \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
+%</texpackage>
+% \end{macrocode}
+%
+% \section{Test file}
+%
+% Very minimal, just check that the package correctly loads.
+%
+% \begin{macrocode}
+%<testplain>\input luatex.sty
+%<testlatex>\RequirePackage{luatex}
+%<testplain>\bye
+%<testlatex>\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.}