diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx | 108 |
1 files changed, 62 insertions, 46 deletions
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx b/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx index b0bb71b97f3..9c90e27a197 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -%% File: l3bootstrap.dtx Copyright (C) 2011-2013 The LaTeX3 project +%% File: l3bootstrap.dtx Copyright (C) 2011-2014 The 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 @@ -119,7 +119,7 @@ % \end{macrocode} % \end{macro} % \end{macro} -\GetIdInfo$Id: l3bootstrap.dtx 4629 2013-12-29 20:59:49Z joseph $ +\GetIdInfo$Id: l3bootstrap.dtx 4640 2014-01-04 16:03:52Z joseph $ {L3 Bootstrap code} %</driver|package> %<*driver> @@ -330,16 +330,16 @@ % Oberdiek's \pkg{luatex} package instead. % \begin{macrocode} %<*package> -\def\@tempa% - {% - \def\@tempa{}% - \RequirePackage{luatex}% - \RequirePackage{pdftexcmds}% - \let\pdfstrcmp\pdf@strcmp - } \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname directlua\endcsname\relax \else + \begingroup + \def\@tempa + {% + \endgroup + \RequirePackage{luatex}% + \RequirePackage{pdftexcmds}% + }% \expandafter\@tempa \fi %</package> @@ -348,7 +348,8 @@ % \subsection{The \tn{pdfstrcmp} primitive in \XeTeX{}} % % Only \pdfTeX{} has a primitive called \tn{pdfstrcmp}. The \XeTeX{} -% version is just \tn{strcmp}, so there is some shuffling to do. +% version is just \tn{strcmp}, so there is some shuffling to do. As +% this is still a real primitive, using the \pdfTeX{} name is \enquote{safe}. % \begin{macrocode} \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname pdfstrcmp\endcsname\relax @@ -359,45 +360,60 @@ % \subsection{Engine requirements} % % The code currently requires functionality equivalent to \tn{pdfstrcmp} -% in addition to \eTeX{}. The former is therefore used as a test for -% a suitable engine. +% in addition to \eTeX{}. In package mode, there is the slight caveat that +% with \LuaTeX{} emulating this primitive is be done using a different +% name as the expansion behaviour is different. % \begin{macrocode} -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname pdfstrcmp\endcsname\relax -%<*package> - \PackageError{expl3}{Required primitives not found} +\begingroup + \def\ShortText{Required primitives not found}% + \def\LongText% {% - LaTeX3 requires the e-TeX primitives and \string\pdfstrcmp.\MessageBreak - \MessageBreak - These are available in engine versions:\MessageBreak - - pdfTeX 1.30\MessageBreak - - XeTeX 0.9994\MessageBreak - - LuaTeX 0.40\MessageBreak - or later.\MessageBreak - \MessageBreak - Loading of expl3 will abort!% - } - \expandafter\endinput -%</package> + LaTeX3 requires the e-TeX primitives and \string\pdfstrcmp.\LineBreak + \LineBreak + These are available in engine versions:\LineBreak + - pdfTeX 1.30\LineBreak + - XeTeX 0.9994\LineBreak + - LuaTeX 0.40\LineBreak + or later.\LineBreak + \LineBreak + }% + \expandafter\ifx\csname pdfstrcmp\endcsname\relax %<*initex> - \newlinechar`\^^J\relax - \errhelp{% - LaTeX3 requires the e-TeX primitives and \pdfstrcmp.^^J% - ^^J% - These are available in engine versions:^^J% - - pdfTeX 1.30^^J% - - XeTeX 0.9994^^J% - - LuaTeX 0.40^^J% - or later.^^J% - ^^J% - For pdfTeX and XeTeX the '-etex' command-line switch is also - needed.^^J% - ^^J% - Format building will abort!% - } - \errmessage{Required primitives not found}% - \expandafter\end -%</initex> + \def\LineBreak{^^J}% + \edef\Error% + {% + \endgroup + \newlinechar`\noexpand\^^J\relax + \errhelp + {% + \LongText + For pdfTeX and XeTeX the '-etex' command-line switch is also + needed.\LineBreak + \LineBreak + Format building will abort!\LineBreak + }% + \errmessage{\ShortText}% + \noexpand\end + }% + \expandafter\Error +%</initex> +%<*package> + \expandafter\ifx\csname pdf@strcmp\endcsname\relax + \def\LineBreak{\noexpand\MessageBreak}% + \edef\Error% + {% + \endgroup + \noexpand\PackageError{expl3}{\ShortText} + {\LongText Loading of expl3 will abort!}% + \noexpand\endinput + }% + \expandafter\expandafter\expandafter\Error + \else + \endgroup + \fi +%</package> +\else + \endgroup \fi % \end{macrocode} % |