platexrelease パッケージの制約事項

platexrelease パッケージの制約事項

- aminophen の投稿
返信数: 1
「platexrelease パッケージを使えば過去のバージョンの pLaTeX をエミュレートできる」
という機能があるのですが,一つ成り立たない例があるので,書いておきます。

以下のソースを

(1) TeX Live 2016 最終版でコンパイル(例えば「TeX を使ってみよう」 https://oku.edu.mie-u.ac.jp/~okumura/texonweb/ )
(2) TeX Live 2017 最終版でコンパイル

した場合は同じ結果になります。

ところが,

(3) TeX Live 2017 最終版で冒頭に \RequirePackage[2017/01/01]{platexrelease} を加えてコンパイル
← 一応,これは「TeX Live 2017 の環境下で TeX Live 2016 最終版と互換にしたい」場合の正常な書き方。

すると,結果が変わります。

# 具体的には,ヘッダー内の長い英単語が p1--2, p5--6 ではハイフネーションされますが,
# p3--4 ではハイフネーションされなくなります。(Underfull 警告も出る)
# この原因は,p3--4 のヘッダーの組版処理が「verbatim 環境の途中でのページ分割」の途中に割り込んでくるためです。

これは pLaTeX の問題ではなく LaTeX 本家でも起こる非互換なので,pLaTeX でもサポート外になります。

% =====
\documentclass{article}

\addtolength\textheight{-30\baselineskip}
\addtolength\headheight{10pt}

\makeatletter
\def\@oddhead{\parbox{\textwidth}{[\thepage]
Supercalifragilisticexpialidocious
Supercalifragilisticexpialidocious
Supercalifragilisticexpialidocious
\the\language\typeout{lan=\the\language}}}
\makeatother
\begin{document}

verbatim環境がハイフネーションを抑制しても、途中のヘッダーで
ハイフネーションが抑制されないことのテスト。

a $x$

zzz\\zzz\\zzz\\zzz\\zzz\\zzz\\zzz\\zzz\\zzz\\zzz\\zzz\\zzz\\zzz

zzz\\zzz\\zzz\\zzz\\zzz\\zzz\\zzz\\zzz\\zzz\\zzz\\zzz\\zzz\\zzz\\zzz\\zzz

zzz\\zzz\\zzz\\zzz\\zzz\\zzz\\zzz\\zzz\\zzz\\zzz\\zzz\\zzz\\zzz\\zzz\\zzz
\begin{verbatim}
a
a
  a
  a
    a
    a
      a
      a
        a
        a
          a
a
a
  a
  a
    a
    a
      a
      a
        a
        a
          a
\end{verbatim}

\clearpage

\end{document}
% =====
aminophen への返信

Re: platexrelease パッケージの制約事項

- aminophen の投稿
ここで例示したソースについて LaTeX team に報告し,修正が取り込まれたため,
LaTeX2e 2018-04-01 に付属の latexrelease パッケージでは
この問題が起こりません。

# 個人的には,LaTeX 本体は割とよくテストされているけど
# latexrelease パッケージは全然テストされていない印象です。
# (“かえって互換性が失われる”事象が今までに数回発生している。)
# 「latexrelease パッケージを過信すると危険」と思っておいた方が安全かも。