diff options
author | Manuel Pégourié-Gonnard <mpg@elzevir.fr> | 2010-03-27 19:04:41 +0100 |
---|---|---|
committer | Manuel Pégourié-Gonnard <mpg@elzevir.fr> | 2010-03-27 19:04:41 +0100 |
commit | 34b29e403d015b1ba2ba08d9a4502d044293cf52 (patch) | |
tree | 732a6a72fa982622fbab0ccd6571b83a9bc70819 /luatexbase-loader.dtx | |
parent | 86a8b1f74fad27b60acb9a14f0ad74a0f020885a (diff) | |
parent | bbade272c39f4925130374c026bdc27af7189013 (diff) | |
download | luatexbase-34b29e403d015b1ba2ba08d9a4502d044293cf52.tar.gz |
Merge branch 'master' into unstable
Diffstat (limited to 'luatexbase-loader.dtx')
-rw-r--r-- | luatexbase-loader.dtx | 264 |
1 files changed, 264 insertions, 0 deletions
diff --git a/luatexbase-loader.dtx b/luatexbase-loader.dtx new file mode 100644 index 0000000..b413a46 --- /dev/null +++ b/luatexbase-loader.dtx @@ -0,0 +1,264 @@ +% \iffalse meta-comment +% +% Written in 2009, 2010 by Manuel Pégourié-Gonnard and Élie Roux. +% <mpg@elzevir.fr> +% <elie.roux@telecom-bretagne.eu> +% +% 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 luatexbase.loader.lua +% test-loader-plain.tex test-loader-latex.tex +% +% Unpacking: +% tex luatexbase-loader.dtx +% Documentation: +% pdflatex luatexbase-loader.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 +This is a generated file. + +Written in 2009, 2010 by Manuel Pégourié-Gonnard and Élie Roux. + <mpg@elzevir.fr> + <elie.roux@telecom-bretagne.eu> + +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 luatexbase.loader.lua + test-loader-plain.tex test-loader-latex.tex + +\endpreamble + +\let\MetaPrefix\DoubleperCent + +\generate{% + \usedir{tex/luatex/luatexbase}% + \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{% + \MetaPrefix^^J% + \MetaPrefix\space End of File `\outFileName'.% +} + +\def\currentpostamble{\luapostamble}% + +\generate{% + \usedir{tex/luatex/luatexbase}% + \file{luatexbase.loader.lua}{\from{luatexbase-loader.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-loader.sty loader.lua ...} +\Msg{*} +\Msg{* Happy TeXing!} +\Msg{*} +\Msg{************************************************************************} + +\endbatchfile +%</install> +%<*ignore> +\fi +%</ignore> +%<*driver> +\documentclass{ltxdoc} +\input{lltxb-dtxstyle} +\begin{document} + \DocInput{luatexbase-loader.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 \~} +% +% \title{The \textsf{luatexbase-loader} package} +% \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}} +% +% \maketitle +% +% \begin{abstract} +% \end{abstract} +% +% \section{Documentation} +% +% \section{Implementation} +% +% \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" + local path = assert(kpse.find_file(file, 'tex'), + "File '"..file.."' no found") + texio.write_nl("("..path..")") + dofile(path)} +% \end{macrocode} +% +% That's all, folks! +% +% \begin{macrocode} +\lltxb@loader@AtEnd +%</texpackage> +% \end{macrocode} +% +% \subsection{Lua module} +% +% \begin{macrocode} +%<*luamodule> +module('luatextra', package.seeall) +% \end{macrocode} +% +% \begin{macrocode} +local function load_module(mod) + local file = kpse.find_file(mod, 'lua') + if not file then + return "\n\t[luatextra.loader] Search failed" + end + local loader, error = loadfile(file) + if not loader then + return "\n\t[luatextra.loader] Loading error:\n\t"..error + end + texio.write_nl("("..file..")") + return loader +end +% \end{macrocode} +% +% \begin{macrocode} +table.insert(package.loaders, load_module) +%</luamodule> +% \end{macrocode} +% +% \section{Test files} +% +% We just check that the package loads properly, under both LaTeX and Plain +% TeX. Anyway, the test files of other modules using this one already are a +% test\dots +% +% \begin{macrocode} +%<testplain>\input luatexbase-loader.sty +%<testlatex>\RequirePackage{luatexbase-loader} +%<*testplain,testlatex> +% \end{macrocode} +% +% \begin{macrocode} +%</testplain,testlatex> +%<testplain>\bye +%<testlatex>\stop +% \end{macrocode} +% +% \Finale +\endinput |