1 % \iffalse meta-comment
4 % The LaTeX3 Project and any individual authors listed elsewhere
7 % This file is part of the LaTeX base system.
8 % -------------------------------------------
10 % It may be distributed and/or modified under the
11 % conditions of the LaTeX Project Public License, either version 1.3c
12 % of this license or (at your option) any later version.
13 % The latest version of this license is in
14 % http://www.latex-project.org/lppl.txt
15 % and version 1.3c or later is part of all distributions of LaTeX
16 % version 2005/12/01 or later.
18 % This file has the LPPL maintenance status "maintained".
20 % The list of all files belonging to the LaTeX base distribution is
21 % given in the file `manifest.txt'. See also `legal.txt' for additional
24 % The list of derived (unpacked) files belonging to the distribution
25 % and covered by LPPL is defined by the unpacking scripts (with
26 % extension .ins) which are part of the distribution.
31 %%% From File: ltvers.dtx
35 \ProvidesFile{ltvers.dtx}
36 [2015/08/23 v1.0v LaTeX Kernel (Version Info)]
38 \documentclass{ltxdoc}
39 \GetFileInfo{ltvers.dtx}
51 \MaintainedByLaTeXTeam{latex}
60 % \section{Version Identification}
61 % First we identify the date and version number of this release of
62 % \LaTeX, and set |\everyjob| so that it is printed at the start of
67 % \changes{v1.0g}{1996/11/28}
68 % {Check for old format modified /2319}
69 % \changes{v1.0f}{1996/11/20}
70 % {Check for old format modified /2319}
71 % \changes{v1.0e}{1995/05/12}
72 % {Add autoload docstrip guards}
73 % \changes{v1.0e}{1995/05/12}
74 % {Check for format older than 1 year}
75 % \changes{v1.0d}{1994/05/25}
76 % {Remove PRELIMINARY TEST RELEASE from startup banner
78 % \changes{v1.0b}{1994/04/12}
79 % {Have version info generated automatically.}
80 % \changes{v1.0a}{1994/03/04}
81 % {Initial version, split from latex.dtx}
82 % \changes{v1.0r}{2015/02/21}{Removed autoload code}
83 % \changes{v1.0t}{2015/06/23}
84 % {set \cs{patch@level} in ltvers rather than in ltfinal/ltpatch}
86 % \begin{macro}{\fmtname}
87 % \begin{macro}{\fmtversion}
88 % \begin{macro}{\patch@level}
94 %<latexrelease>\edef\latexreleaseversion
95 %<*2ekernel|latexrelease>
97 %</2ekernel|latexrelease>
105 % Check that the format being made is not too old.
106 % The error message complains about `more than 5 years'
107 % but in fact the error is not triggered until 65 months.
109 % This code is currently not activated as we don't know if we already
110 % got to the last official 2e version (due to staff shortage or due to
111 % a successor (think positive:-)).
112 % \changes{v1.0i}{2001/06/04}{Check for old format disabled}
113 % \changes{v1.0k}{2004/01/28}{Check for old format made 5 years (pr/3601)}
114 % \changes{v1.0l}{2009/09/24}{Stop checking for old format}
117 \def\reserved@a#1/#2/#3\@nil{%
119 \advance\count@-#1\relax
120 \multiply\count@ by 12\relax
121 \advance\count@\month
122 \advance\count@-#2\relax}
123 \expandafter\reserved@a\fmtversion\@nil
125 % |\count@| is now the age of this file in months. Take a generous
126 % definition of `year' so this message is not generated too often.
130 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!^^J%
131 ! You are attempting to make a LaTeX format from a source file^^J%
132 ! That is more than five years old.^^J%
134 ! If you enter <return> to scroll past this message then the format^^J%
135 ! will be built, but please consider obtaining newer source files^^J%
136 ! before continuing to build LaTeX.^^J%
137 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!^^J%
139 \errhelp{To avoid this error message, obtain new LaTeX sources.}
140 \errmessage{LaTeX source files more than 5 years old!}
142 \let\reserved@a\relax
146 % \changes{v1.0p}{2015/01/22}{Preserve any \cs{everyjob} material inserted
147 % by a loader (\texttt{.ini} file)}
148 % \changes{v1.0v}{2015/08/23}{Allow negative patchlevel for pre-release}
151 \everyjob\expandafter{\the\everyjob
152 \typeout{\fmtname \space<\fmtversion>}}
154 \write16{\fmtname \space<\fmtversion>}
155 \else\ifnum\patch@level>0
156 \everyjob\expandafter{\the\everyjob
157 \typeout{\fmtname \space<\fmtversion> patch level \patch@level}}
159 \write16{\fmtname \space<\fmtversion> patch level \patch@level}
161 \everyjob\expandafter{\the\everyjob
162 \typeout{\fmtname \space<\fmtversion> pre-release\patch@level}}
164 \write16{\fmtname \space<\fmtversion> pre-release\patch@level}
170 % \begin{macro}{\IncludeInRelease}
171 % \changes{v1.0n}{2015/01/07}{macro added}
172 % \changes{v1.0m}{2015/01/17}{modified with \cs{@currname}}
173 % \changes{v1.0o}{2015/01/19}{Optional argument}
174 % \changes{v1.0q}{2015/02/19}{Swap argument order}
176 %<*2ekernel|latexrelease>
177 \def\IncludeInRelease#1{\kernel@ifnextchar[%
178 {\@IncludeInRelease{#1}}
179 {\@IncludeInRelease{#1}[#1]}}
182 % If a specific date has not been specified in |latexrelease|
185 \def\@IncludeInRelease#1[#2]{\@IncludeInRele@se{#2}}
189 \def\@IncludeInRele@se#1#2#3{%
191 \expandafter\ifx\csname\string#2+\@currname+IIR\endcsname\relax
192 \ifnum\expandafter\@parse@version#1//00\@nil
193 >\expandafter\@parse@version\fmtversion//00\@nil
194 \GenericInfo{}{Skipping: \the\toks@}%
195 \expandafter\expandafter\expandafter\@gobble@IncludeInRelease
197 \GenericInfo{}{Applying: \the\toks@}%
198 \expandafter\let\csname\string#2+\@currname+IIR\endcsname\@empty
201 \GenericInfo{}{Already applied: \the\toks@}%
202 \expandafter\@gobble@IncludeInRelease
208 \long\def\@gobble@IncludeInRelease#1\EndIncludeInRelease{}
209 \let\EndIncludeInRelease\relax
213 %</2ekernel|latexrelease>