summaryrefslogtreecommitdiff
path: root/luatexbase-loader.dtx
diff options
context:
space:
mode:
authorManuel Pégourié-Gonnard <mpg@elzevir.fr>2010-03-27 16:42:01 +0100
committerManuel Pégourié-Gonnard <mpg@elzevir.fr>2010-03-27 16:42:01 +0100
commit234bcbbd16c240fa889010c8ca0b0fd74f3db7f9 (patch)
tree16267e2a079ee8a4cc3e3341d1cc7a8e7e0670c2 /luatexbase-loader.dtx
parentd40f0c4f1dc134bb5258aab331a78d6581131ed1 (diff)
downloadluatexbase-234bcbbd16c240fa889010c8ca0b0fd74f3db7f9.tar.gz
Declaration, protection, etc. for loader.
Diffstat (limited to 'luatexbase-loader.dtx')
-rw-r--r--luatexbase-loader.dtx95
1 files changed, 75 insertions, 20 deletions
diff --git a/luatexbase-loader.dtx b/luatexbase-loader.dtx
index 5e7c77b..5fe77f1 100644
--- a/luatexbase-loader.dtx
+++ b/luatexbase-loader.dtx
@@ -1,8 +1,5 @@
% \iffalse meta-comment
%
-% Template : look for 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-loader.dtx
% and the derived files
-% luatexbase-loader.sty loader.lua ...
+% luatexbase-loader.sty luatexbase.loader.lua
+% test-loader-plain.tex test-loader-latex.tex
%
% Unpacking:
% tex luatexbase-loader.dtx
% Documentation:
% pdflatex luatexbase-loader.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-loader.dtx
and the derived files
- luatexbase-loader.sty loader.lua ...
+ luatexbase-loader.sty luatexbase.loader.lua
+ test-loader-plain.tex test-loader-latex.tex
\endpreamble
@@ -62,6 +56,12 @@ and the derived files
\file{luatexbase-loader.sty}{\from{luatexbase-loader.dtx}{texpackage}}%
}
+\generate{%
+ \usedir{doc/luatex/luatexbase}%
+ \file{test-loader-plain.tex}{\from{luatexbase-loader.dtx}{testplain}}%
+ \file{test-loader-latex.tex}{\from{luatexbase-loader.dtx}{testlatex}}%
+}
+
\def\MetaPrefix{-- }
\def\luapostamble{%
@@ -73,7 +73,7 @@ and the derived files
\generate{%
\usedir{tex/luatex/luatexbase}%
- \file{loader.lua}{\from{luatexbase-loader.dtx}{luamodule}}%
+ \file{luatexbase.loader.lua}{\from{luatexbase-loader.dtx}{luamodule}}%
}
\obeyspaces
@@ -94,12 +94,8 @@ and the derived files
\fi
%</ignore>
%<*driver>
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesFile{luatexbase-loader.drv}
- [DATE DESC]
\documentclass{ltxdoc}
-\EnableCrossrefs
-\CodelineIndex
+\input{lltxb-dtxstyle}
\begin{document}
\DocInput{luatexbase-loader.dtx}%
\end{document}
@@ -124,10 +120,8 @@ and the derived files
% Grave accent \` Left brace \{ Vertical bar \|
% Right brace \} Tilde \~}
%
-% \GetFileInfo{luatexbase-loader.drv}
-%
% \title{The \textsf{luatexbase-loader} package}
-% \date{DATE}
+% \date{v0.1 2010-03-27}
% \author{%
% Manuel P\'egouri\'e-Gonnard \\ \texttt{mpg@elzevir.fr} \and
% \'Elie Roux \\ \texttt{elie.roux@telecom-bretagne.eu}}
@@ -141,12 +135,70 @@ and the derived files
%
% \section{Implementation}
%
-% \subsection{\TeX\ package}
+% \subsection{\tex package}
%
% \begin{macrocode}
%<*texpackage>
% \end{macrocode}
%
+% \subsubsection{Preliminaries}
+%
+% Reload protection, especially for \plaintex.
+%
+% \begin{macrocode}
+ \csname lltxb@loader@loaded\endcsname
+\expandafter\let\csname lltxb@loader@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-loader}[2010/03/26 v0.1 Lua module loader 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-loader}{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@loader@AtEnd\endcsname{%
+ \catcode64 \the\catcode64\relax}
+\catcode64 11
+% \end{macrocode}
+%
+% \subsubsection{Main content}
+%
+% Load the supporting Lua module.
+%
% \begin{macrocode}
\directlua{%
local file = "luatexbase.loader.lua"
@@ -156,7 +208,10 @@ and the derived files
dofile(path)}
% \end{macrocode}
%
+% That's all, folks!
+%
% \begin{macrocode}
+\lltxb@loader@AtEnd
%</texpackage>
% \end{macrocode}
%