% \iffalse meta-comment
%% File: plvers.dtx
%
%  Copyright 1995-2006 ASCII Corporation.
%  Copyright (c) 2010 ASCII MEDIA WORKS
%  Copyright (c) 2016-2017 Japanese TeX Development Community
%
%  This file is part of the pLaTeX2e system (community edition).
%  -------------------------------------------------------------
%
% \fi
%
%
% \setcounter{StandardModuleDepth}{1}
% \StopEventually{}
%
% \iffalse
% \changes{v1.0}{1995/05/16}{p\LaTeXe\ 用に\file{ltvers.dtx}を修正}
% \changes{v1.0a}{1995/08/30}{\LaTeX\ \texttt{!<1995/06/01!>}版用に修正}
% \changes{v1.0b}{1996/01/31}{\LaTeX\ \texttt{!<1995/12/01!>}版用に修正}
% \changes{v1.0c}{1997/01/11}{\LaTeX\ \texttt{!<1996/06/01!>}版用に修正}
% \changes{v1.0d}{1997/01/23}{\LaTeX\ \texttt{!<1996/12/01!>}版用に修正}
% \changes{v1.0e}{1997/07/02}{\LaTeX\ \texttt{!<1997/06/01!>}版用に修正}
% \changes{v1.0f}{1998/02/17}{\LaTeX\ \texttt{!<1997/12/01!>}版用に修正}
% \changes{v1.0g}{1998/09/01}{\LaTeX\ \texttt{!<1998/06/01!>}版用に修正}
% \changes{v1.0h}{1999/04/05}{\LaTeX\ \texttt{!<1998/12/01!>}版用に修正}
% \changes{v1.0i}{1999/08/09}{\LaTeX\ \texttt{!<1999/06/01!>}版用に修正}
% \changes{v1.0j}{2000/02/29}{\LaTeX\ \texttt{!<1999/12/01!>}版用に修正}
% \changes{v1.0k}{2000/11/03}{\LaTeX\ \texttt{!<2000/06/01!>}版用に修正}
% \changes{v1.0l}{2001/09/04}{\LaTeX\ \texttt{!<2001/06/01!>}版用に修正}
% \changes{v1.0m}{2004/08/10}{\LaTeX\ \texttt{!<2003/12/01!>}版対応確認}
% \changes{v1.0n}{2005/01/04}{plfonts.dtxバグ修正}
% \changes{v1.0o}{2006/01/04}{plfonts.dtxバグ修正}
% \changes{v1.0p}{2006/06/27}{plfonts.dtx \LaTeX\ \texttt{!<2005/12/01!>}対応}
% \changes{v1.0q}{2006/11/10}{plfonts.dtxバグ修正}
% \changes{v1.0r}{2016/01/26}{plcore.dtx p\TeX\ (r28720)対応}
% \changes{v1.0s}{2016/02/01}{\LaTeX\ \texttt{!<2015/01/01!>}のlatexreleaseに
%    対応するためのコードを導入}
% \changes{v1.0t}{2016/02/03}{\cs{plIncludeInRelease}と
%    \cs{plEndIncludeInRelease}を新設。}
% \changes{v1.0u}{2016/04/17}{\LaTeX\ \texttt{!<2016/03/31!>}版対応確認}
% \changes{v1.0v}{2016/05/07}{パッチファイルをロードするのをやめた。}
% \changes{v1.0v}{2016/05/07}{起動時の文字列を最新の\LaTeX{}に合わせた。}
% \changes{v1.0w}{2016/05/12}{起動時の文字列に入れる\LaTeX{}のバージョンを
%    元の\LaTeX{}のバナーから引き継ぐように改良}
% \changes{v1.0w}{2016/05/12}{起動時の文字列に入れるBabelのバージョンを
%    元の\LaTeX{}のバナーから取得するコードを\file{platex.ini}から取り入れた}
% \changes{v1.0x}{2016/06/19}{パッチレベルを\file{plvers.dtx}で設定}
% \changes{v1.0y}{2016/06/27}{\file{platex.cfg}の読み込みを追加}
% \changes{v1.0z}{2016/08/26}{\file{platex.cfg}の読み込みを
%    \file{plcore.ltx}から\file{platex.ltx}へ移動}
% \changes{v1.1}{2016/09/14}{起動時のバナーを取得するコードを改良}
% \changes{v1.1a}{2017/02/20}{\LaTeX\ \texttt{!<2017/01/01!>}版対応確認}
% \changes{v1.1b}{2017/03/19}{\cs{l@nohyphenation}の定義を保証
%    (sync with ltfinal 2017/03/09 v2.0t)}
% \changes{v1.1b}{2017/03/19}{\cs{document@default@language}の定義を保証
%    (sync with ltfinal 2017/03/09 v2.0t)}
% \changes{v1.1c}{2017/04/23}{\LaTeX\ \texttt{!<2017/04/15!>}版対応確認}
% \fi
%
% \iffalse
%<*driver>
% \fi
\ProvidesFile{plvers.dtx}[2017/04/23 v1.1c pLaTeX Kernel (Version Info)]
% \iffalse
\documentclass{jltxdoc}
\GetFileInfo{plvers.dtx}
\author{Ken Nakano \& Hideaki Togashi}
\title{\filename}
\date{作成日：\filedate}
\begin{document}
  \maketitle
  \DocInput{\filename}
\end{document}
%</driver>
% \fi
%
% \section{バージョンの設定}
% まず、このディストリビューションでのp\LaTeXe{}の日付とバージョン番号
% を定義します。また、p\LaTeXe{}が起動されたときに表示される文字列の
% 設定もします。
%
% \changes{v1.0}{1995/05/16}{p\LaTeXe\ 用に\file{ltvers.dtx}を修正}
% \changes{v1.0a}{1995/08/30}{\LaTeX\ \texttt{!<1995/06/01!>}版用に修正}
% \changes{v1.0b}{1996/01/31}{\LaTeX\ \texttt{!<1995/12/01!>}版用に修正}
% \changes{v1.0c}{1997/01/11}{\LaTeX\ \texttt{!<1996/06/01!>}版用に修正}
% \changes{v1.0d}{1997/01/23}{\LaTeX\ \texttt{!<1996/12/01!>}版用に修正}
% \changes{v1.0e}{1997/07/02}{\LaTeX\ \texttt{!<1997/06/01!>}版用に修正}
% \changes{v1.0f}{1998/02/17}{\LaTeX\ \texttt{!<1997/12/01!>}版用に修正}
% \changes{v1.0g}{1998/09/01}{\LaTeX\ \texttt{!<1998/06/01!>}版用に修正}
% \changes{v1.0h}{1999/04/05}{\LaTeX\ \texttt{!<1998/12/01!>}版用に修正}
% \changes{v1.0i}{1999/08/09}{\LaTeX\ \texttt{!<1999/06/01!>}版用に修正}
% \changes{v1.0j}{2000/02/29}{\LaTeX\ \texttt{!<1999/12/01!>}版用に修正}
% \changes{v1.0k}{2000/11/03}{\LaTeX\ \texttt{!<2000/06/01!>}版用に修正}
% \changes{v1.0l}{2001/09/04}{\LaTeX\ \texttt{!<2001/06/01!>}版用に修正}
% \changes{v1.0m}{2004/08/10}{\LaTeX\ \texttt{!<2003/12/01!>}版対応確認}
% \changes{v1.0s}{2016/02/01}{\LaTeX\ \texttt{!<2015/01/01!>}版用に修正}
% \changes{v1.0u}{2016/04/17}{\LaTeX\ \texttt{!<2016/03/31!>}版対応確認}
% \changes{v1.1a}{2017/02/20}{\LaTeX\ \texttt{!<2017/01/01!>}版対応確認}
% \changes{v1.1c}{2017/04/23}{\LaTeX\ \texttt{!<2017/04/15!>}版対応確認}
%
% このバージョンのp\LaTeXe{}は、次のバージョンの\LaTeX{}\footnote{%
% \LaTeX\ authors: Johannes Braams, David Carlisle, Alan Jeffrey,
%   Leslie Lamport, Frank Mittelbach, Chris Rowley, Rainer Sch\"opf}を
% もとにしています。
%    \begin{macrocode}
%<*2ekernel>
%\def\fmtname{LaTeX2e}
%\edef\fmtversion
%</2ekernel>
%<latexrelease>\edef\latexreleaseversion
%<platexrelease>\edef\p@known@latexreleaseversion
%<*2ekernel|latexrelease|platexrelease>
   {2017/04/15}
%</2ekernel|latexrelease|platexrelease>
%    \end{macrocode}
%
% \begin{macro}{\pfmtname}
% \begin{macro}{\pfmtversion}
% \begin{macro}{\ppatch@level}
% p\LaTeXe{}のフォーマットファイル名とバージョンです。
% \changes{v1.0x}{2016/06/19}{パッチレベルを\file{plvers.dtx}で設定}
%    \begin{macrocode}
%<*plcore>
\def\pfmtname{pLaTeX2e}
\def\pfmtversion
%</plcore>
%<platexrelease>\edef\platexreleaseversion
%<*plcore|platexrelease>
   {2017/05/05}
%</plcore|platexrelease>
%<*plcore>
\def\ppatch@level{0}
%</plcore>
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \subsection{パッチファイルのロード}
%
% 次の部分は、p\LaTeXe{}のパッチファイルをロードするためのコードです。
% バグを修正するためのパッチを配布するかもしれません。
%
% パッチファイルをロードするコードはコメントアウトしました。
% \changes{v1.0v}{2016/05/07}{パッチファイルをロードするのをやめた。}
%    \begin{macrocode}
%<*plfinal>
%\IfFileExists{plpatch.ltx}
%  {\typeout{************************************^^J%
%            * Appliying patch file plpatch.ltx *^^J%
%            ************************************}
%  \def\pfmtversion@topatch{unknown}
%  \input{plpatch.ltx}
%  \ifx\pfmtversion\pfmtversion@topatch
%    \ifx\ppatch@level\@undefined
%      \typeout{^^J^^J^^J%
%   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!^^J%
%   !! Patch file `plpatch.ltx' (for version <\pfmtversion@topatch>)^^J%
%   !! is not suitable for version <\pfmtversion> of pLaTeX.^^J^^J%
%   !! Please check if iniptex found an old patch file:^^J%
%   !! --- if so, rename it or delete it, and redo the^^J%
%   !!     iniptex run.^^J%
%   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!^^J}%
%      \batchmode \@@end
%    \fi
%  \else
%      \typeout{^^J^^J^^J%
%   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!^^J%
%   !! Patch file `plpatch.ltx' (for version <\pfmtversion@topatch>)^^J%
%   !! is not suitable for version <\pfmtversion> of pLaTeX.^^J%
%   !!^^J%
%   !! Please check if iniptex found an old patch file:^^J%
%   !! --- if so, rename it or delete it, and redo the^^J%
%   !!     iniptex run.^^J%
%   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!^^J}%
%      \batchmode \@@end
%  \fi
%  \let\pfmtversion@topatch\relax
%  }{}
%    \end{macrocode}
%
% \subsection{起動時に表示するバナー}
%
% \begin{macro}{\everyjob}
% 起動時に表示される文字列です。
% \LaTeX{}にパッチがあてられている場合は、それも表示します。
%
%\iffalse
% この実装については\file{platex.dtx}のコメントを参照。(2016/09/14)
%\fi
%
% \changes{v1.0v}{2016/05/07}{起動時の文字列を最新の\LaTeX{}に合わせた。}
% \changes{v1.0w}{2016/05/12}{起動時の文字列に入れる\LaTeX{}のバージョンを
%    元の\LaTeX{}のバナーから引き継ぐように改良}
% \changes{v1.1}{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 pLaTeX
  \def\ppatch@level{0}\fi
\begingroup
  \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 \expandafter\parse@@BANNER\platexBANNER)}}%
    \else
      \everyjob{\noexpand\typeout{%
        \pfmtname\space<\pfmtversion>+\ppatch@level\space
          (based on \expandafter\parse@@BANNER\platexBANNER)}}%
    \fi
  }
\expandafter
\endgroup \platexTMP
%    \end{macrocode}
%
% p\LaTeX{}は、独自のハイフネーション・パターンを定義していません。
% \TeX\ Liveの標準的インストールでは、代わりに\LaTeX{}が読み込んでいる
% Babelパッケージのものが適用されるはずですから、起動時の文字列にも
% \file{hyphen.cfg}のバージョンを反映します（Babelパッケージの
% \file{hyphen.cfg}でない場合は、何も表示されず空行になるはずです）。
%
%\iffalse
% この実装については\file{platex.dtx}のコメントを参照。(2016/09/14)
%\fi
%
% \changes{v1.0w}{2016/05/12}{起動時の文字列に入れるBabelのバージョンを
%    元の\LaTeX{}のバナーから取得するコードを\file{platex.ini}から取り入れた}
%    \begin{macrocode}
\begingroup
  \def\parse@@BANNER\typeout#1\typeout#2#3\relax{#2}
  \edef\platexTMP{%
    \the\everyjob\noexpand\typeout{\expandafter\parse@@BANNER\platexBANNER}%
  }
  \everyjob=\expandafter{\platexTMP}%
  \edef\platexTMP{%
    \noexpand\let\noexpand\platexBANNER=\noexpand\@undefined
    \noexpand\everyjob={\the\everyjob}%
  }
  \expandafter
\endgroup \platexTMP
%</plfinal>
%    \end{macrocode}
% \end{macro}
%
% ^^A 起動時に\file{platex.cfg}がある場合、それを読み込むようにする
% ^^A コードは、\file{plcore.ltx}から\file{platex.ltx}へ移動しました。
% \changes{v1.0y}{2016/06/27}{\file{platex.cfg}の読み込みを追加}
% \changes{v1.0z}{2016/08/26}{\file{platex.cfg}の読み込みを
%    \file{plcore.ltx}から\file{platex.ltx}へ移動}
%
% \subsection{ハイフネーション関連}
%
% \begin{macro}{\l@nohyphenation}
% \LaTeXe\ 2017-04-15で、|\verb|の途中でハイフネーションが起きないように
% する修正が入りました。この修正には|\l@nohyphenation|が定義済みでなければ
% なりませんが、通常はBabelの定義ファイルによって提供されています。
% \LaTeXe{}は特殊な状況も想定してltfinalで対策しているようですので、
% p\LaTeXe{}も念のためplfinalで対策します（参考：latex2e svn r1405）。
% \changes{v1.1b}{2017/03/19}{\cs{l@nohyphenation}の定義を保証
%    (sync with ltfinal 2017/03/09 v2.0t)}
%    \begin{macrocode}
%<*plfinal>
\ifx\l@nohyphenation \@undefined
  \newlanguage\l@nohyphenation
\fi
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\document@default@language}
% \LaTeXe\ 2017-04-15で導入されたパラメータです。更新タイミングのずれの
% 可能性を考慮し、p\LaTeXe{}でも準備しておきます。verbatim環境の途中で
% 改ページが起きた場合にヘッダでハイフネーションが抑制されないように、
% |\@outputpage|で|\language|をリセットするときに使われます
% （参考：latex2e svn r1407）。
% \changes{v1.1b}{2017/03/19}{\cs{document@default@language}の定義を保証
%    (sync with ltfinal 2017/03/09 v2.0t)}
%    \begin{macrocode}
\ifx\document@default@language \@undefined
  \let\document@default@language\m@ne
\fi
%</plfinal>
%    \end{macrocode}
% \end{macro}
%
% \subsection{latexreleaseパッケージへの対応}
%
% 最後に、latexreleaseパッケージへの対応です。
% \begin{macro}{\plIncludeInRelease}
% \changes{v1.0t}{2016/02/03}{\cs{plIncludeInRelease}と
%    \cs{plEndIncludeInRelease}を新設。}
%    \begin{macrocode}
%<*plcore|platexrelease>
\def\plIncludeInRelease#1{\kernel@ifnextchar[%
  {\@plIncludeInRelease{#1}}
  {\@plIncludeInRelease{#1}[#1]}}
%    \end{macrocode}
%
%    \begin{macrocode}
\def\@plIncludeInRelease#1[#2]{\@plIncludeInRele@se{#2}}
%    \end{macrocode}
%
%    \begin{macrocode}
\def\@plIncludeInRele@se#1#2#3{%
  \toks@{[#1] #3}%
  \expandafter\ifx\csname\string#2+\@currname+IIR\endcsname\relax
    \ifnum\expandafter\@parse@version#1//00\@nil
          >\expandafter\@parse@version\pfmtversion//00\@nil
      \GenericInfo{}{Skipping: \the\toks@}%
     \expandafter\expandafter\expandafter\@gobble@plIncludeInRelease
    \else
      \GenericInfo{}{Applying: \the\toks@}%
      \expandafter\let\csname\string#2+\@currname+IIR\endcsname\@empty
    \fi
  \else
    \GenericInfo{}{Already applied: \the\toks@}%
    \expandafter\@gobble@plIncludeInRelease
  \fi
}
%    \end{macrocode}
%
%    \begin{macrocode}
\long\def\@gobble@plIncludeInRelease#1\plEndIncludeInRelease{}
\let\plEndIncludeInRelease\relax
%</plcore|platexrelease>
%    \end{macrocode}
% \end{macro}
%
% \LaTeXe{}が提供するlatexreleaseパッケージが読み込まれていて、
% かつp\LaTeXe{}が提供するplatexreleaseパッケージが読み込まれていない
% 場合は、警告を出します。
% \changes{v1.0s}{2016/02/01}{latexrelease利用時に警告を出すようにした}
%    \begin{macrocode}
%<*plfinal>
\AtBeginDocument{%
  \@ifpackageloaded{latexrelease}{%
    \@ifpackageloaded{platexrelease}{}{%
      \@latex@warning@no@line{%
        Package latexrelease is loaded.\MessageBreak
        Some patches in pLaTeX2e core may be overwritten.\MessageBreak
        Consider using platexrelease.\MessageBreak
        See platex.pdf for detail}%
    }%
  }{}%
}
%</plfinal>
%    \end{macrocode}
%
% \Finale
%
\endinput
