summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/expl3/l3final.dtx
blob: d4ece607fee41311800681f0c5310dfe47ab1d9a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
% \iffalse
%% File: l3final.dtx Copyright (C) 1990-2006 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>
%<*-ini>
%\fi
\GetIdInfo$Id: l3final.dtx 1452 2009-08-08 14:09:32Z joseph $
          {L3 Experimental final module}
%\iffalse
%</-ini>
%<*driver>
%\fi
\ProvidesFile{\filename.\filenameext}
  [\filedate\space v\fileversion\space\filedescription]
%\iffalse
\documentclass[full]{l3doc}
\begin{document}
\DocInput{\filename.\filenameext}
\end{document}
%</driver>
%\fi
%
%\section{Final Wrap-up}
%
% 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{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}
%
%\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}
%<*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