summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/expl3/l3final.dtx
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2009-09-06 23:20:13 +0000
committerKarl Berry <karl@freefriends.org>2009-09-06 23:20:13 +0000
commit2b8eb47b09b2d853b8243d0fb61b408edb3d04a7 (patch)
treed581f2afc11c2d53246c31da8a8a7de24c855b0c /Master/texmf-dist/source/latex/expl3/l3final.dtx
parentd9919f44994077f178b0ebda415a1638f8acc0ec (diff)
expl3 1509 (5sep09)
git-svn-id: svn://tug.org/texlive/trunk@15163 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/expl3/l3final.dtx')
-rw-r--r--Master/texmf-dist/source/latex/expl3/l3final.dtx70
1 files changed, 57 insertions, 13 deletions
diff --git a/Master/texmf-dist/source/latex/expl3/l3final.dtx b/Master/texmf-dist/source/latex/expl3/l3final.dtx
index 65da64c7f7f..d4ece607fee 100644
--- a/Master/texmf-dist/source/latex/expl3/l3final.dtx
+++ b/Master/texmf-dist/source/latex/expl3/l3final.dtx
@@ -37,7 +37,7 @@
%</driver|package>
%<*-ini>
%\fi
-\GetIdInfo$Id: l3final.dtx 1362 2009-05-28 20:19:21Z joseph $
+\GetIdInfo$Id: l3final.dtx 1452 2009-08-08 14:09:32Z joseph $
{L3 Experimental final module}
%\iffalse
%</-ini>
@@ -53,28 +53,72 @@
%</driver>
%\fi
%
-% \section{Final Wrap-up}
+%\section{Final Wrap-up}
%
-% This module will contain all the last minute coding necessary to
-% round off the format.
+% This module will contain all the last minute coding necessary to round
+% off the format.
+%
+%\begin{function}{\par}
+% \begin{syntax}
+% "\par"
+% \end{syntax}
+% \cs{par} needs to be defined, as \TeX\ uses it in some runaway
+% situtations.
+%\end{function}
+%
+%\begin{function}{\latex_format_dump:}
+% \begin{syntax}
+% "\latex_format_dump:"
+% \end{syntax}
+% Dumps the format, settting category codes back to user space and
+% undefines itself (as it can only every be used once).
+%\end{function}
%
-% \subsection{Cleaning up}
-%
-% Some of the macros needed in creating the format are no longer
-% needed and will either be removed are modified to generate error
-% messages.
+%\subsection{Dumping the format}
%
+%\begin{macro}{\par}
+% \TeX\ has a nasty habit of inserting a command with the name \cs{par}
+% so we had better make sure that that command at least has a definition.
% \begin{macrocode}
%<*initex>
+\cs_set_eq:NN \par \tex_par:D
% \end{macrocode}
+%\end{macro}
%
-% \subsection{Dumping the format}
-%
-% The last action to take is to dump the format.
+%\begin{macro}{\ExplSyntaxOff}
+% We re-define \cs{ExplSyntaxOff} as the version that comes through
+% from \pkg{l3names} is defined using \TeX\ primitives, which we no
+% longer have! Here, we can also make a fixed decision about the
+% category codes to fix.
% \begin{macrocode}
-\tex_dump:D
+%<*initex>
+\cs_set_nopar:Npn \ExplSyntaxOff {
+ \intexpr_if_odd:nT { \ExplSyntaxStatus } {
+ \tl_set:Nn \ExplSyntaxStatus { 0 }
+ \char_set_catcode:nn { 126 } { 13 }
+ \char_set_catcode:nn { 32 } { 10 }
+ \char_set_catcode:nn { 9 } { 10 }
+ \char_set_catcode:nn { 95 } { 8 }
+ \char_set_catcode:nn { 58 } { 12 }
+ \tex_endlinechar:D = 13 \scan_stop:
+ }
+}
% \end{macrocode}
+%\end{macro}
%
+%\begin{macro}{\latex_format_dump:}
+% The last action to take is to dump the format. So that the document
+% starts with user category codes, \cs{ExplSyntaxOff} is called along
+% with tokenizing \cs{tex_dump:D} before actually calling it.
% \begin{macrocode}
+\cs_new_nopar:Nn \latex_format_dump: {
+ \ExplSyntaxOff
+ \cs_gundefine:N \latex_format_dump:
+ \tex_dump:D
+}
+\latex_format_dump:
%</initex>
% \end{macrocode}
+%\end{macro}
+%
+%\endinput