summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/expl3/l3luatex.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/expl3/l3luatex.dtx')
-rw-r--r--Master/texmf-dist/source/latex/expl3/l3luatex.dtx463
1 files changed, 0 insertions, 463 deletions
diff --git a/Master/texmf-dist/source/latex/expl3/l3luatex.dtx b/Master/texmf-dist/source/latex/expl3/l3luatex.dtx
deleted file mode 100644
index cabdde3192c..00000000000
--- a/Master/texmf-dist/source/latex/expl3/l3luatex.dtx
+++ /dev/null
@@ -1,463 +0,0 @@
-% \iffalse
-%% File: l3luatex.dtx Copyright (C) 2010,2011 LaTeX3 project
-%%
-%% It may be distributed and/or modified under the conditions of the
-%% LaTeX Project Public License (LPPL), either version 1.3c of this
-%% license or (at your option) any later version. The latest version
-%% of this license is in the file
-%%
-%% http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the ``expl3 bundle'' (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%% http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%% Snapshots taken from the repository represent work in progress and may
-%% not work or may contain conflicting material! We therefore ask
-%% people _not_ to put them into distributions, archives, etc. without
-%% prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%<*driver|package>
-\RequirePackage{l3names}
-%</driver|package>
-%\fi
-\GetIdInfo$Id: l3luatex.dtx 1985 2010-07-18 09:05:56Z joseph $
- {L3 Experimental LuaTeX functions}
-%\iffalse
-%<*driver>
-%\fi
-\ProvidesFile{\filename.\filenameext}
- [\filedate\space v\fileversion\space\filedescription]
-%\iffalse
-\documentclass[full]{l3doc}
-\begin{document}
- \DocInput{l3luatex.dtx}
-\end{document}
-%</driver>
-% \fi
-%
-% \title{The \textsf{l3luatex} package\thanks{This file
-% has version number \fileversion, last
-% revised \filedate.}\\
-% \LuaTeX-specific functions}
-% \author{\Team}
-% \date{\filedate}
-% \maketitle
-%
-%\begin{documentation}
-%
-%\section{Breaking out to \Lua}
-%
-% The \LuaTeX\ engine provides access to the \Lua\ programming language,
-% and with it access to the 'internals' of \TeX. In order to use
-% this within the framework provided here, a family of functions is
-% available. When used with \pdfTeX\ or \XeTeX these will raise an
-% error: use \cs{engine_if_luatex:T} to avoid this. Details of coding
-% the \LuaTeX\ engine are detailed in the \LuaTeX\ manual.
-%
-%\begin{function}{
-% \lua_now:n / (EXP) |
-% \lua_now:x / (EXP) |
-%}
-% \begin{syntax}
-% \cs{lua_now:n} \Arg{token list}
-% \end{syntax}
-% The \meta{token list} is first tokenized by \TeX, which will include
-% converting line ends to spaces in the usual \TeX\ manner and which
-% respects currently-applicable \TeX\ category codes. The resulting
-% \meta{\Lua\ input} is passed to the \Lua\ interpreter for processing.
-% Each \cs{lua_now:n} block is treated by \Lua\ as a separate chunk.
-% The \Lua\ interpreter will execute the \meta{\Lua\ input} immediately,
-% and in an expandable manner.
-% \begin{texnote}
-% \cs{lua_now:x} is the \LuaTeX\ primitive \cs{directlua} renamed.
-% \end{texnote}
-%\end{function}
-%
-%\begin{function}{
-% \lua_shipout:n |
-% \lua_shipout:x |
-%}
-% \begin{syntax}
-% \cs{lua_shipout:x} \Arg{token list}
-% \end{syntax}
-% The \meta{token list} is first tokenized by \TeX, which will include
-% converting line ends to spaces in the usual \TeX\ manner and which
-% respects currently-applicable \TeX\ category codes. The resulting
-% \meta{\Lua\ input} is passed to the \Lua\ interpreter when the
-% current page is finalised (\emph{i.e}.~at shipout). Each
-% \cs{lua_shipout:n} block is treated by Lua as a separate chunk.
-% The \Lua\ interpreter will execute the \meta{\Lua\ input} during the
-% page-building routine: no \TeX\ expansion of the \meta{\Lua\ input}
-% will occur at this stage.
-% \begin{texnote}
-% At a \TeX\ level, the \meta{\Lua\ input} is stored as a
-% `whatsit'.
-% \end{texnote}
-%\end{function}
-%
-%\begin{function}{
-% \lua_shipout_x:n |
-% \lua_shipout_x:x |
-%}
-% \begin{syntax}
-% \cs{lua_shipout:n} \Arg{token list}
-% \end{syntax}
-% The \meta{token list} is first tokenized by \TeX, which will include
-% converting line ends to spaces in the usual \TeX\ manner and which
-% respects currently-applicable \TeX\ category codes. The resulting
-% \meta{\Lua\ input} is passed to the \Lua\ interpreter when the
-% current page is finalised (\emph{i.e}.~at shipout). Each
-% \cs{lua_shipout:n} block is treated by Lua as a separate chunk.
-% The \Lua\ interpreter will execute the \meta{\Lua\ input} during the
-% page-building routine: the \meta{\Lua\ input} is expanded during this
-% process in addition to any expansion when the argument was read. This
-% makes these functions suitable for including material finalised
-% during the page building process (such as the page number).
-% \begin{texnote}
-% \cs{lua_sjhipout_x:n} is the \LuaTeX\ primitive \cs{latelua}
-% named using the \LaTeX3 scheme.
-%
-% At a \TeX\ level, the \meta{\Lua\ input} is stored as a
-% `whatsit'.
-% \end{texnote}
-%\end{function}
-%
-%\section{Category code tables}
-%
-% As well as providing methods to break out into \Lua, there are
-% places where additional \LaTeX3 functions are provided by the
-% \LuaTeX\ engine. In particular, \LuaTeX\ provides category code
-% tables. These can be used to ensure that a set of category codes
-% are in force in a more robust way than is possible with other
-% engines. These are therefore used by \cs{ExplSyntaxOn} and
-% \pkg{ExplSyntaxOff} when using the \LuaTeX\ engine.
-%
-%\begin{function}{ \cctab_new:N }
-% \begin{syntax}
-% \cs{cctab_new:N} \meta{category code table}
-% \end{syntax}
-% Creates a new category code table, initially with the codes as
-% used by \IniTeX.
-%\end{function}
-%
-%\begin{function}{ \cctab_gset:Nn }
-% \begin{syntax}
-% \cs{cctab_gset:Nn} \meta{category code table}
-% \Arg{category code set up}
-% \end{syntax}
-% Sets the \meta{category code table} to apply the category codes
-% which apply when the prevailing regime is modified by the
-% \meta{category code set up}. Thus within a standard code block
-% the starting point will be the code applied by \cs{c_code_cctab}.
-% The assignment of the table is global: the underlying primitive does
-% not respect grouping.
-%\end{function}
-%
-%\begin{function}{ \cctab_begin:N }
-% \begin{syntax}
-% \cs{cctab_begin:N} \meta{category code table}
-% \end{syntax}
-% Switches the category codes in force to those stored in the
-% \meta{category code table}. The prevailing codes before the
-% function is called are added to a stack, for use with
-% \cs{cctab_end:}.
-%\end{function}
-%
-%\begin{function}{ \cctab_end: }
-% \begin{syntax}
-% \cs{cctab_end:}
-% \end{syntax}
-% Ends the scope of a \meta{category code table} started using
-% \cs{cctab_begin:N}, retuning the codes to those in force before the
-% matching \cs{cctab_begin:N} was used.
-%\end{function}
-%
-%\begin{variable}{ \c_code_cctab }
-% Category code table for the code environment. This does not include
-% setting the behaviour of the line-end character, which is only
-% altered by \cs{ExplSyntaxOn}.
-%\end{variable}
-%
-%\begin{variable}{ \c_document_cctab }
-% Category code table for a standard \LaTeX\ document. This does not
-% include setting the behaviour of the line-end character, which is
-% only altered by \cs{ExplSyntaxOff}.
-%\end{variable}
-%
-%\begin{variable}{ \c_initex_cctab }
-% Category code table as set up by \IniTeX.
-%\end{variable}
-%
-%\begin{variable}{ \c_other_cctab }
-% Category code table where all characters have category code \( 12 \)
-% (other).
-%\end{variable}
-%
-%\begin{variable}{ \c_string_cctab }
-% Category code table where all characters have category code \( 12 \)
-% (other) with the exception of spaces, which have category code
-% \( 10 \) (space).
-%\end{variable}
-%
-%\end{documentation}
-%
-%\begin{implementation}
-%
-%\section{Implementation}
-%
-% Announce and ensure that the required packages are loaded.
-% \begin{macrocode}
-%<*package>
-\ProvidesExplPackage
- {\filename}{\filedate}{\fileversion}{\filedescription}
-\package_check_loaded_expl:
-%</package>
-%<*initex|package>
-% \end{macrocode}
-%
-%\begin{macro}{\lua_now:n}
-%\begin{macro}{\lua_now:x}
-%\begin{macro}{\lua_shipout_x:n}
-%\begin{macro}{\lua_shipout_x:x}
-%\begin{macro}{\lua_shipout:n}
-%\begin{macro}{\lua_shipout:x}
-%\begin{macro}{\lua_wrong_engine:}
-% When \LuaTeX\ is in use, this is all a question of primitives with new
-% names. On the other hand, for \pdfTeX\ and \XeTeX\ the argument should
-% be removed from the input stream before issuing an error. This needs
-% to be expandable, so the same idea is used as for \texttt{V}-type
-% expansion, with an appropriately-named but undefined function.
-% \begin{macrocode}
-\luatex_if_engine:TF
- {
- \cs_new_eq:NN \lua_now:x \luatex_directlua:D
- \cs_new_eq:NN \lua_shipout_x:n \luatex_latelua:D
- }
- {
- \cs_new:Npn \lua_now:x #1 { \lua_wrong_engine: }
- \cs_new_protected:Npn \lua_shipout_x:n #1 { \lua_wrong_engine: }
- }
-\cs_new:Npn \lua_now:n #1 {
- \lua_now:x { \exp_not:n {#1} }
-}
-\cs_generate_variant:Nn \lua_shipout_x:n { x }
-\cs_new_protected:Npn \lua_shipout:n #1 {
- \lua_shipout_x:n { \exp_not:n {#1} }
-}
-\cs_generate_variant:Nn \lua_shipout:n { x }
-\group_begin:
-\char_make_letter:N\!
-\char_make_letter:N\ %
-\cs_gset:Npn\lua_wrong_engine:{%
-\LuaTeX engine not in use!%
-}%
-\group_end:%
-% \end{macrocode}
-%\end{macro}
-%\end{macro}
-%\end{macro}
-%\end{macro}
-%\end{macro}
-%\end{macro}
-%\end{macro}
-%
-%\subsection{Category code tables}
-%
-%\begin{macro}{\g_cctab_allocate_int}
-%\begin{macro}{\g_cctab_stack_int}
-%\begin{macro}{\g_cctab_stack_seq}
-% To allocate category code tables, both the read-only and stack
-% tables need to be followed. There is also a sequence stack for the
-% dynamic tables themselves.
-% \begin{macrocode}
-\int_new:N \g_cctab_allocate_int
-\int_set:Nn \g_cctab_allocate_int { -1 }
-\int_new:N \g_cctab_stack_int
-\seq_new:N \g_cctab_stack_seq
-% \end{macrocode}
-%\end{macro}
-%\end{macro}
-%\end{macro}
-%
-%\begin{macro}{\cctab_new:N}
-% Creating a new category code table is done slightly differently
-% from other registers. Low-numbered tables are more efficiently-stored
-% than high-numbered ones. There is also a need to have a stack of
-% flexible tables as well as the set of read-only ones. To satisfy both
-% of these requirements, odd numbered tables are used for read-only
-% tables, and even ones for the stack. Here, therefore, the odd numbers
-% are allocated.
-% \begin{macrocode}
-\cs_new_protected_nopar:Npn \cctab_new:N #1 {
- \cs_if_free:NTF #1
- {
- \int_gadd:Nn \g_cctab_allocate_int { 2 }
- \int_compare:nNnTF
- { \g_cctab_allocate_int } < { \c_allocate_max_tl + 1 }
- {
- \tex_global:D \tex_mathchardef:D #1 \g_cctab_allocate_int
- \luatex_initcatcodetable:D #1
- }
- {
- \msg_kernel_error:nnx { code } { out-of-registers } { cctab }
- }
- }
- {
- \msg_kernel_error:nnx { code } { variable-already-defined }
- { \token_to_str:N #1 }
- }
-}
-\luatex_if_engine:F {
- \cs_set_protected_nopar:Npn \cctab_new:N #1 { \lua_wrong_engine: }
-}
-%<*package>
-\luatex_if_engine:T {
- \cs_set_protected_nopar:Npn \cctab_new:N #1
- {
- \newcatcodetable #1
- \luatex_initcatcodetable:D #1
- }
-}
-%</package>
-% \end{macrocode}
-%\end{macro}
-%
-%\begin{macro}{\cctab_begin:N}
-%\begin{macro}{\cctab_end:}
-%\begin{macro}{\l_cctab_tmp_tl}
-% The aim here is to ensure that the saved tables are read-only. This is
-% done by using a stack of tables which are not read only, and actually
-% having them as 'in use' copies.
-% \begin{macrocode}
-\cs_new_protected_nopar:Npn \cctab_begin:N #1 {
- \seq_gpush:Nx \g_cctab_stack_seq { \tex_the:D \luatex_catcodetable:D }
- \luatex_catcodetable:D #1
- \int_gadd:Nn \g_cctab_stack_int { 2 }
- \int_compare:nNnT { \g_cctab_stack_int } > { 268435453 }
- { \msg_kernel_error:nn { code } { cctab-stack-full } }
- \luatex_savecatcodetable:D \g_cctab_stack_int
- \luatex_catcodetable:D \g_cctab_stack_int
-}
-\cs_new_protected_nopar:Npn \cctab_end: {
- \int_gsub:Nn \g_cctab_stack_int { 2 }
- \seq_gpop:NN \g_cctab_stack_seq \l_cctab_tmp_tl
- \quark_if_no_value:NT \l_cctab_tmp_tl
- { \tl_set:Nn \l_cctab_tmp_tl { 0 } }
- \luatex_catcodetable:D \l_cctab_tmp_tl \scan_stop:
-}
-\luatex_if_engine:F {
- \cs_set_protected_nopar:Npn \cctab_begin:N #1 { \lua_wrong_engine: }
- \cs_set_protected_nopar:Npn \cctab_end: { \lua_wrong_engine: }
-}
-%<*package>
-\luatex_if_engine:T {
- \cs_set_protected_nopar:Npn \cctab_begin:N #1
- { \BeginCatcodeRegime #1 }
- \cs_set_protected_nopar:Npn \cctab_end:
- { \EndCatcodeRegime }
-}
-%</package>
-\tl_new:N \l_cctab_tmp_tl
-% \end{macrocode}
-%\end{macro}
-%\end{macro}
-%\end{macro}
-%
-%\begin{macro}{\cctab_gset:Nn}
-% Category code tables are always global, so only one version is needed.
-% The set up here is simple, and means that at the point of use there is
-% no need to worry about escaping category codes.
-% \begin{macrocode}
-\cs_new_protected:Npn \cctab_gset:Nn #1#2 {
- \group_begin:
- #2
- \luatex_savecatcodetable:D #1
- \group_end:
-}
-\luatex_if_engine:F {
- \cs_set_protected_nopar:Npn \cctab_gset:Nn #1#2 { \lua_wrong_engine: }
-}
-% \end{macrocode}
-%\end{macro}
-%
-%\begin{macro}{\c_code_cctab}
-%\begin{macro}{\c_document_cctab}
-%\begin{macro}{\c_initex_cctab}
-%\begin{macro}{\c_other_cctab}
-%\begin{macro}{\c_string_cctab}
-% Creating category code tables is easy using the function above.
-% The \texttt{other} and \texttt{string} ones are done by completely
-% ignoring the existing codes as this makes life a lot less complex. The
-% table for \pkg{expl3} category codes is always needed, whereas when in
-% package mode the rest can be copied from the existing \LaTeXe\ package
-% \pkg{luatex}.
-% \begin{macrocode}
-\luatex_if_engine:T {
- \cctab_new:N \c_code_cctab
- \cctab_gset:Nn \c_code_cctab { }
-}
-%<*package>
-\luatex_if_engine:T {
- \cs_new_eq:NN \c_document_cctab \CatcodeTableLaTeX
- \cs_new_eq:NN \c_initex_cctab \CatcodeTableIniTeX
- \cs_new_eq:NN \c_other_cctab \CatcodeTableOther
- \cs_new_eq:NN \c_string_cctab \CatcodeTableString
-}
-%</package>
-%<*!package>
-\luatex_if_engine:T {
- \cctab_new:N \c_document_cctab
- \cctab_new:N \c_other_cctab
- \cctab_new:N \c_string_cctab
- \cctab_gset:Nn \c_document_cctab
- {
- \char_make_space:n { 9 }
- \char_make_space:n { 32 }
- \char_make_other:n { 58 }
- \char_make_subscript:n { 95 }
- \char_make_active:n { 126 }
- }
- \cctab_gset:Nn \c_other_cctab
- {
- \prg_stepwise_inline:nnnn { 0 } { 1 } { 127 }
- { \char_make_other:n {#1} }
- }
- \cctab_gset:Nn \c_string_cctab
- {
- \prg_stepwise_inline:nnnn { 0 } { 1 } { 127 }
- { \char_make_other:n {#1} }
- \char_make_space:n { 32 }
- }
-}
-%</!package>
-% \end{macrocode}
-%\end{macro}
-%\end{macro}
-%\end{macro}
-%\end{macro}
-%\end{macro}
-%
-% \begin{macrocode}
-%</initex|package>
-% \end{macrocode}
-%
-%\end{implementation}
-%
-%\PrintChanges
-%
-%\PrintIndex \ No newline at end of file