LaTeX News斜め読み (1) Issue 37, 2023年6月発行

2024-03-03 (updated: 2024-03-09)  #LaTeX  #ltnews 

LaTeX Newsを斜め読みしていきます。完全な翻訳を目指す類のものではなく、私が興味を持った項目だけを、ざっくり説明しようと思います。網羅性と正確性には期待しないでください。

今回はLaTeX News Issue 37, June 2023 (LaTeX release 2023-06-01)を読んでいきます。



タグ付きPDFプロジェクトからの新機能

LaTeXの標準的な文書構造について、タグ付きPDFを出力する機能が拡張された。具体的には、標準の見出し命令、地の文、図表目次、フロート、グラフィックス、文献リストなどがサポートされている。有効にするには、文書冒頭で以下の宣言を行う。

\DocumentMetadata{testphase=phase-III}

現時点ではタグ出力機能はLaTeXの標準文書クラス(すなわちarticle, report, book)を用いて、LamportのLaTeX本で説明されているコマンドと環境のみを用いた文書のみがサポートされている。

新しいコマンドと改善されたコマンド

引数を取るフック

lthooksに引数を取るフックを作成する機能(\NewHookWithArguments, \UseHookWithArguments, AddToHookWithArgumentsなど)が追加された。フックの処理内容が文脈依存の場合、これまではフックが利用する変数などをフックが実行する前に設定する必要があった。これではコードの管理が大変であったが、今回の機能はこの状況を改善することが期待される。

環境のコピーと表示

2022年にコマンドをコピーする\NewCommandCopyを新しく導入した。今回はその環境バージョンにあたる\NewEnvironmentCopyが追加された。例えばitemize環境をmyitemize環境としてコピーするには次のようにする。

\NewEnvironmentCopy{myitemize}{itemize}

また、環境の\begin\endの内容を表示される\ShowEnvironmentコマンドも追加された。例えば\ShowEvironment{center}をすると次のような出力が得られる。

>> \begin{center}=environment:
>> ->>\trivlist \centering \item \relax .
<<recently read>> }
l. ...\ShowEnvironment{center}
>> \end{center}:
>> ->>\endtrivlist .
<<recently read>> }
l. ...\ShowEnvironment{center}

その他の新しいコマンド

コマンド名などからある程度機能がわかると思うので説明は割愛。

  • \IfFileAtLeastTF
  • \DeclareLowercaseMapping, \DeclareTitlecaseMapping, \DeclareUppercaseMapping
  • \BCPdata

\labelコマンドの拡張

これまでのLaTeXでは\labelコマンドはauxファイルに4つの値を保存する\newlabel宣言を書き出ていた。hyperrefやnamerefなどのパッケージはこの\labelコマンドを上書きし、5つの値を持つようにする等の挙動変更を行っていた。今回のリリース以降、LaTeXは標準で常に5つの値をもつ\newlabel宣言を書き出すようになる。

また、新たにlabelフックが追加された。

\doをデフォルトで定義済みに

plain TeXから受け継がれた仕様として、\doという一般的な名称のコマンドはリスト操作の内部コマンドとして使用されている。したがってこのコマンドをユーザが自由に利用(再定義)することはできない。従来は\begin{document}が実行されるまでは\doが未定義であったので、ユーザがプリアンブルでうっかり\doを再定義してしまう可能性があった。今後は\doを予め定義済みの状態におくことで、\newcommand等のコマンドが未定義かどうかをチェックする機構の備わった方法では、意図せずに\doを上書きしてしまうことがないようになる。

その他の細かなコード変更

  • filecontents環境に新しいキーnowarnを追加
  • 新しいフックshipoutを追加

ドキュメントの改善

ガイド文書の更新

LaTeX2eのリリース時、開発チームはパッケージ開発者向けのガイド(usrguide)と文書クラス開発者向けのガイド(clsguide)を提供した。これらのドキュメントは随時更新されてきたが、その大枠はLaTeX 2.09に慣れ親しんだ読者を想定した形のままとなってきた。この想定は、もはや時代に適合しているとは言い難い。そのため、この昔ながらのスタイルのガイドをそれぞれusrguide-historic, clsguide-historicという名前で凍結し、最新バージョンの各ガイドは新しく書き直された。

新しいusrguideではかつてのxparseスタイル(現在はカーネルの一部となっている)のコマンド定義方法やinterface3への誘導が記述されている。clsguideでもkey-val形式のオプションの取り扱い方などが新たに解説されている。

LaTeXコンパニオンの第3版について

前回の版は2004年に刊行されたが、それからLaTeXの世界ではさまざまな変化があった。これらの変化を反映し、5,000を超えるパッケージを解説したLaTeXコンパニオン第3版が発売されている。