% \iffalse %% File: l3vers.dtx Copyright (C) 1990-2009 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} % %\fi \GetIdInfo$Id: l3vers.dtx 1378 2009-06-01 19:15:56Z joseph $ {L3 Experimental LaTeX format version} %\iffalse %<*driver> %\fi \ProvidesFile{\filename.\filenameext} [\filedate\space v\fileversion\space\filedescription] %\iffalse \documentclass[full]{l3doc} \begin{document} \DocInput{\filename.\filenameext} \end{document} % % \fi % % \begin{documentation} % % \section{Version Identification} % Here we identify the date and version number of this release of % \LaTeX3, and set |\tex_everyjob:D| so that it is printed at the start of % every \LaTeX3 run. % % \begin{variable}{\c_format_name|\c_format_date} % Name and date. % \end{variable} % % \begin{variable}{\c_fmt_too_old} % Age in months past "\c_format_date" after which an error is called % during format generation. % \end{variable} % % \begin{function}{\chk_format_age:w} % Function that calculates the age of the format and calls an error if it % is too old. % \end{function} % % \end{documentation} % % \begin{implementation} % % \begin{macro}{\c_format_name} % \begin{macro}{\c_format_date} % \begin{macrocode} %<*initex> \cs_set_nopar:Npn\c_format_name{Experimental~ LaTeX3} \cs_set_nopar:Npn\c_format_date{2009/06/01} %^^A\cs_set_nopar:Npx\c_format_version{--release--date--goes--here--} % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\c_fmt_too_old} % \begin{macro}{\chk_format_age:w} % Check that the format being made is not too old. While in development % it should be a rather small number. % \begin{macrocode} \int_const:Nn \c_fmt_too_old{12} \cs_set_nopar:Npn\chk_format_age:w #1/#2/#3\q_stop{ % \end{macrocode} % We just calculate the age of this file in months and give a warning % if deemed too old. % \begin{macrocode} \intexpr_compare:nNnT{(\tex_year:D-#1)*12+\tex_month:D-#2}>\c_fmt_too_old {\iow_term:x{^^J !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!^^J !~~You~are~attempting~to~make~an~experimental~LaTeX3~format~from^^J !~~source~files~that~are~more~than~ \intexpr_eval:n{\c_fmt_too_old}~months~old.^^J !^^J !~~If~you~enter~~to~scroll~past~this~message~then~the~format^^J !~~will~be~built,~but~please~consider~obtaining~newer~source~files^^J !~~before~continuing~to~build~an~experimental~LaTeX3~format.^^J !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!^^J } \tex_errhelp:D{ To~avoid~this~error~message,~obtain~new~Experimental~LaTeX3~sources.} \tex_errmessage:D{ Experimental~LaTeX3~source~files~are~more~than~ \intexpr_eval:n{\c_fmt_too_old}~months~old!} } } % \end{macrocode} % \end{macro} % \end{macro} % Then we execute it. % \begin{macrocode} \exp_after:wN\chk_format_age:w\c_format_date\q_stop % \end{macrocode} % And since it's no longer needed we remove it again. % \begin{macrocode} \cs_gundefine:N \chk_format_age:w % \end{macrocode} % % This startup banner may be further modified by the code in % |ltfinal.dtx| if a patch file is present. % \begin{macrocode} \tex_everyjob:D{\iow_term:x{\c_format_name,~<\c_format_date>}} \iow_term:x{\c_format_name,~<\c_format_date>} % % \end{macrocode} % % \end{implementation} % \PrintIndex % % \endinput