Skip to content

Commit

Permalink
uplatex.dtx, uplcore.dtx: Improve banner adjustment.
Browse files Browse the repository at this point in the history
  • Loading branch information
aminophen committed Sep 14, 2016
1 parent 4ac0508 commit 72108ff
Show file tree
Hide file tree
Showing 4 changed files with 74 additions and 21 deletions.
49 changes: 46 additions & 3 deletions uplatex.dtx
Original file line number Diff line number Diff line change
Expand Up @@ -54,13 +54,14 @@
% \changes{v1.0l-u01}{2016/06/19}{パッチレベルを\file{uplvers.dtx}から取得}
% \changes{v1.0m-u01}{2016/08/26}{\file{uplatex.cfg}の読み込みを
% \file{uplcore.ltx}から\file{uplatex.ltx}へ移動}
% \changes{v1.0n-u01}{2016/09/14}{\LaTeX{}のバナーの保存しかたを改良}
% \fi
%
% \iffalse
%<*driver>
\NeedsTeXFormat{pLaTeX2e}
% \fi
\ProvidesFile{uplatex.dtx}[2016/08/26 v1.0m-u01 upLaTeX document file]
\ProvidesFile{uplatex.dtx}[2016/09/14 v1.0n-u01 upLaTeX document file]
% \iffalse
\documentclass{jltxdoc}
\usepackage{plext}
Expand Down Expand Up @@ -257,11 +258,53 @@
\let\dump\relax
% \end{macrocode}
%
% \file{latex.ltx}を読み込み、起動時のバナーを保存します。
% \file{latex.ltx}を読み込み、起動時のバナーを保存します。\TeX\ Liveの標準的
% インストールでは、この中でBabel由来のハイフネーション・パターン
% \file{hyphen.cfg}が読み込まれ、そのバージョンも含めて保存されるはずです。
%
%\iffalse
% 2016/05/07の実装では、\file{platex.ltx}のなかで
%\begin{verbatim}
% \edef\platexBANNER{\the\everyjob}
%\end{verbatim}
% としてバナーを保存し、この内容が
%\begin{verbatim}
% \typeout{LaTeX2e version}\typeout{Babel version}
%\end{verbatim}
% という4つのトークンから成ると仮定して、\file{plcore.ltx}のなかで
%\begin{verbatim}
% \def\parse@@BANNER#1#2#3#4{#2}
%\end{verbatim}
% のようにパースしていました。ところが、この「4つのトークンから成る」と
% いう仮定はBabel由来の\file{hyphen.cfg}を使用した場合のみ成り立ち、
% それ以外の特別な\file{hyphen.cfg}や\file{hyphen.ltx}を使用した場合に
% エラーになってしまいます。
% そこで、新たに2016/09/14の実装では、\file{platex.ltx}のなかで
%\begin{verbatim}
% \edef\platexBANNER{\the\everyjob\noexpand\typeout{}\relax}
%\end{verbatim}
% としてダミーを追加します(|\relax|はただの区切りトークンの役割)。
% こうすると、|\platexBANNER|の内容は、Babelの\file{hyphen.cfg}のとき
%\begin{verbatim}
% \typeout{LaTeX2e version}\typeout{Babel version}\typeout{}\relax
%\end{verbatim}
% となり、それ以外のとき
%\begin{verbatim}
% \typeout{LaTeX2e version}\typeout{}\relax
%\end{verbatim}
% となるはずです。このように、少なくとも|\typeout|が2回含まれています
% ので、\file{plcore.ltx}のなかで
%\begin{verbatim}
% \def\parse@@BANNER\typeout#1\typeout#2#3\relax{#1}
%\end{verbatim}
% とパースすることができるようになります。
%\fi
%
% \changes{v1.0g-u00}{2016/05/07}{フォーマット作成時に\LaTeX{}のバナーを一旦保存}
% \changes{v1.0n-u01}{2016/09/14}{\LaTeX{}のバナーの保存しかたを改良}
% \begin{macrocode}
\input latex.ltx
\edef\platexBANNER{\the\everyjob}% save LaTeX banner
\edef\platexBANNER{\the\everyjob\noexpand\typeout{}\relax}% save LaTeX banner
% \end{macrocode}
%
% \file{uplcore.ltx}を読み込み、このup\LaTeX{}のバージョンを表示します。
Expand Down
2 changes: 1 addition & 1 deletion uplatex.ltx
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
\let\orgdump\dump
\let\dump\relax
\input latex.ltx
\edef\platexBANNER{\the\everyjob}% save LaTeX banner
\edef\platexBANNER{\the\everyjob\noexpand\typeout{}\relax}% save LaTeX banner
\typeout{**************************^^J%
*^^J%
* making upLaTeX format^^J%
Expand Down
12 changes: 5 additions & 7 deletions uplcore.ltx
Original file line number Diff line number Diff line change
Expand Up @@ -1014,26 +1014,24 @@
\ifx\ppatch@level\@undefined % fallback if undefined in upLaTeX
\def\ppatch@level{0}\fi
\begingroup
\def\parse@BANNER#1{\expandafter\parse@@BANNER#1}
\def\parse@@BANNER#1#2#3#4{#2}
\def\parse@@BANNER\typeout#1\typeout#2#3\relax{#1}
\edef\platexTMP{%
\ifnum\ppatch@level=0
\everyjob{\noexpand\typeout{%
\pfmtname\space<\pfmtversion>\space
(based on \parse@BANNER{\platexBANNER})}}%
(based on \expandafter\parse@@BANNER\platexBANNER)}}%
\else
\everyjob{\noexpand\typeout{%
\pfmtname\space<\pfmtversion>+\ppatch@level\space
(based on \parse@BANNER{\platexBANNER})}}%
(based on \expandafter\parse@@BANNER\platexBANNER)}}%
\fi
}
\expandafter
\endgroup \platexTMP
\begingroup
\def\parse@BANNER#1{\expandafter\parse@@BANNER#1}
\def\parse@@BANNER#1#2#3#4{#4}
\def\parse@@BANNER\typeout#1\typeout#2#3\relax{#2}
\edef\platexTMP{%
\the\everyjob\noexpand\typeout{\parse@BANNER{\platexBANNER}}%
\the\everyjob\noexpand\typeout{\expandafter\parse@@BANNER\platexBANNER}%
}
\everyjob=\expandafter{\platexTMP}%
\edef\platexTMP{%
Expand Down
32 changes: 22 additions & 10 deletions uplvers.dtx
Original file line number Diff line number Diff line change
Expand Up @@ -58,12 +58,13 @@
% \changes{v1.0y-u01}{2016/06/29}{\file{uplatex.cfg}の読み込みを追加}
% \changes{v1.0z-u01}{2016/08/26}{\file{uplatex.cfg}の読み込みを
% \file{uplcore.ltx}から\file{uplatex.ltx}へ移動}
% \changes{v1.1-u01}{2016/09/14}{起動時のバナーを取得するコードを改良}
% \fi
%
% \iffalse
%<*driver>
% \fi
\ProvidesFile{uplvers.dtx}[2016/08/26 v1.0z-u01 upLaTeX Kernel (Version Info)]
\ProvidesFile{uplvers.dtx}[2016/09/14 v1.1-u01 upLaTeX Kernel (Version Info)]
% \iffalse
\documentclass{jltxdoc}
\GetFileInfo{uplvers.dtx}
Expand Down Expand Up @@ -198,43 +199,54 @@
%
% 起動時に表示される文字列です。
% \LaTeX{}にパッチがあてられている場合は、それも表示します。
%
%\iffalse
% この実装については\file{uplatex.dtx}のコメントを参照。(2016/09/14)
%\fi
%
% \changes{v1.0v-u00}{2016/05/07}{起動時の文字列を最新の\LaTeX{}に合わせた。}
% \changes{v1.0w-u00}{2016/05/12}{起動時の文字列に入れる\LaTeX{}のバージョンを
% 元の\LaTeX{}のバナーから引き継ぐように改良}
% \changes{v1.1-u01}{2016/09/14}{起動時のバナーを取得するコードを改良}
% \begin{macrocode}
\ifx\patch@level\@undefined % fallback if undefined in LaTeX
\def\patch@level{0}\fi
\ifx\ppatch@level\@undefined % fallback if undefined in upLaTeX
\def\ppatch@level{0}\fi
\begingroup
\def\parse@BANNER#1{\expandafter\parse@@BANNER#1}
\def\parse@@BANNER#1#2#3#4{#2}
\def\parse@@BANNER\typeout#1\typeout#2#3\relax{#1}
\edef\platexTMP{%
\ifnum\ppatch@level=0
\everyjob{\noexpand\typeout{%
\pfmtname\space<\pfmtversion>\space
(based on \parse@BANNER{\platexBANNER})}}%
(based on \expandafter\parse@@BANNER\platexBANNER)}}%
\else
\everyjob{\noexpand\typeout{%
\pfmtname\space<\pfmtversion>+\ppatch@level\space
(based on \parse@BANNER{\platexBANNER})}}%
(based on \expandafter\parse@@BANNER\platexBANNER)}}%
\fi
}
\expandafter
\endgroup \platexTMP
% \end{macrocode}
%
% p\LaTeX{}やup\LaTeX{}は、独自のハイフネーション・パターンを定義していません。
% 代わりに、\LaTeX{}が読み込んでいるBabelパッケージのものが適用されます。
% 起動時の文字列にも\file{hyphen.cfg}のバージョンを反映します。
% \TeX\ Liveの標準的インストールでは、代わりに\LaTeX{}が読み込んでいる
% Babelパッケージのものが適用されるはずですから、起動時の文字列にも
% \file{hyphen.cfg}のバージョンを反映します(Babelパッケージの
% \file{hyphen.cfg}でない場合は、何も表示されず空行になるはずです)。
%
%\iffalse
% この実装については\file{uplatex.dtx}のコメントを参照。(2016/09/14)
%\fi
%
% \changes{v1.0w-u00}{2016/05/12}{起動時の文字列に入れるBabelのバージョンを
% 元の\LaTeX{}のバナーから取得するコードを\file{uplatex.ini}から取り入れた}
% \begin{macrocode}
\begingroup
\def\parse@BANNER#1{\expandafter\parse@@BANNER#1}
\def\parse@@BANNER#1#2#3#4{#4}
\def\parse@@BANNER\typeout#1\typeout#2#3\relax{#2}
\edef\platexTMP{%
\the\everyjob\noexpand\typeout{\parse@BANNER{\platexBANNER}}%
\the\everyjob\noexpand\typeout{\expandafter\parse@@BANNER\platexBANNER}%
}
\everyjob=\expandafter{\platexTMP}%
\edef\platexTMP{%
Expand Down

0 comments on commit 72108ff

Please sign in to comment.