LaTeX News斜め読み (7) Issue 43, 2026年6月発行

2026-06-22 #LaTeX #ltnews

LaTeX Newsを斜め読みしていきます。方針は前回と同様です。今回はLaTeX News Issue 43, June 2026 (LaTeX release 2026-06-01)を“斜め”の角度から読んでいきます。


イントロダクション

LaTeXの全面改修の一環1として、タグ付けコードのカーネルへの組み込みは継続して進捗している。定理環境などのブロック構造や各種の見出し(\sectionの類)の実装が更新された。多くの文書作成者が追加のコードやパッケージを必要とせずに使える、柔軟なインターフェースの提供に向けて淀みなく進んでいる。

この作業は、LaTeXコードを振り返り、問題点を洗い出す機会でもある。特定の状況における空白の処理を改善したほか、長年の技術的な瑕釁にも対処した。具体的には、単に要素を垂直方向に揃えるためだけに数式モードを(誤って)使用していたことである。この“偽の数式”2は深刻なタグ付け上の問題であると同時に、たとえばすべての数式に色変更を適用したい場合など、ユーザの意図と異なる結果に。今回のリリースにより、数式モードの使用は本来の意味での3“真の数式”に限定された。

テンプレート4に係わる作業を進めるうちに、近年カーネルに追加されたいくつかの概念をさらに見直し、ユーザーにとって最も自然なアプローチにより近づけるようコードを調整することになった。

更新点はもちろんタグ付け関連だけではない。記号のコピー&ペーストのさらなる改善、amsmathにおけるコーナーケースのバグ修正、variorefの言語サポート拡充なども実施された。低レベルでは、L3プログラミング層の拡充が継続しており、特にupTeXエンジンでのプログラム的な文字列生成をよりよくサポートするための調整を行った。

タグ付きPDFプロジェクトからのニュース

\DocumentMetadataでの言語設定

これまで\DocumentMetadataは主言語を設定するlangキーにしか対応していなかった。このキーはPDFカタログとXMPメタデータの言語設定に使われる一方、babelやpolyglossiaで言語を指定する場合のように、文書の〔組版ないし見た目に係わる〕言語設定には影響しなかった。

今回のリリースでは、新たにlanguageother-languagesという2つのキーを追加した。languageキーはBCP 47形式の言語コードを引数に取る。たとえばde-ATfrgsw-u-sd-chzh(チューリッヒ州で使われるスイスドイツ語)などである。その値は文書プロパティに保存され、\GetDocumentProperty{document/language}で(展開可能に)取得できる。

languageキーの値はPDFメタデータの言語設定にも使われるため、langキーの代替にもなる。PDFメタデータに異なる(より短い、あるいはより一般的な)値を入れたい場合は、オプション引数を使用する。すなわちlanguage=[de]{gsw-u-sd-chzh}のような指定が可能である。あるいは、languageキーの後にlangキーを使って値を上書きすることも可能だ(例:language=gsw-u-sd-chzh,lang=de)。

langと同様、languageキーは〔現時点では〕文書の言語設定を自動的に変更することはない。すなわちハイフネーションパターンや固定名5を変更せず、クラスオプションも設定しない。また言語パッケージの読み込みを強制することもない。将来的には、babelやpolyglossiaのように文書言語を知る必要のあるパッケージが、この値を読んで反応するようになることが期待されている。

other-languagesキーは、文書中で主言語に加えて使われる追加の言語を宣言するために使用する。引数はBCP 47形式の言語のカンマ区切りリストである(例:other-languages={fr,en-US,ar})。このリストも文書プロパティに保存され、\GetDocumentProperty{document/other-languages}のように取得できる。

\DocumentMetadataで言語を設定しない場合

文書の主言語は、langキーまたは新しいlanguageキーを使って\DocumentMetadataで常に明示的に設定することが推奨される。この値はPDFの/Langの設定に使われ、その後パッケージや文書クラスがロケール設定を調整するのにも利用できる。

ただし、これらの設定がない場合には、カーネルはbabelやpolyglossiaで設定された主言語を使用する。さらにこれらのパッケージも使用されていない場合は、LaTeXの従来からのデフォルトであったlang=enが適用される。langキーを導入した際には、こうした場合にログへ警告を出すようにしていたが、それが懸念を招くというフィードバックを受け取ったため、現在ではフォールバックが警告なしで適用される。

\DocumentMetadataを複数回使用する場合

これまでは\DocumentMetadataを複数回使用することは可能で、2回目以降の使用はキー割り当てのみを実行していたが、この仕様は変更された。\documentclassがそうであるように、複数の\DocumentMetadata宣言はエラーを発生させるようになった。

ブロック環境の全面的な見直し

ブロック環境の実装を見直し、特に当初はやや気まぐれであったキー名を整理・統合した。ブロックテンプレートはblocks-doc.pdfに詳しく文書化されており、完全なコードはblocks-code.pdfにある。

ブロック環境に適用できないキーの検出

すべてのブロック環境は、各インスタンスで通常使われる〔デフォルトの〕値を上書きするためのキー設定が可能なオプション引数を受け取る。未知のキーを適用しようとした場合、リスト環境では警告を生じていたが、quoteなどの他の環境ではそうしたキーが警告なしに無視されていた。この挙動は修正され、すべてのブロック環境で警告を生ずるようになった。

連続するディスプレイブロック環境の処理改善

ディスプレイブロック環境が(空行を挟まずに)直接続く場合、それらは概念的に同じ意味段落に属する。つまり、横組みのテキストに直接続いた場合と同じように扱われるべきである(すなわち、たとえば\partopsepは追加されるべきでない)。しかし、LaTeX2eの実装ではそのようになっていなかった。たとえば

Start of paragraph ...
  \begin{center} text-1 \end{center}
  \begin{center} text-2 \end{center}
more text finishing the paragraph.

のようにすると、2つめのcenter環境には\partopsepを伴い、1つめには伴わないため、不均一な〔垂直方向の〕余白が生じていた。この例は作為的だが、同様の問題は実用の文書でも発生してきた。\DocumentMetadataを宣言した文書については、この挙動は修正された。

description環境の設計をより柔軟に

LaTeX2eではdescription環境のレイアウトはすべてのネストレベルで常に同一だった。ブロックテンプレートに基づく新しい実装では、すべてのレベルに個別のインスタンス(description-<level>;ここで<level>1から6の数字)を提供することで、各ネストレベルごとに設定可能になった。ただしデフォルトでは、それらはすべて同一レイアウトに設定されている。

enumitemパッケージのエミュレーション

新しいブロックテンプレートを使ってenumitemパッケージのエミュレーションを提供する準備を進めている。enumitemのほとんどのキーはすでにサポートされている。\newlist\setlistのサポートも追加した。パッケージインターフェースのその他の側面は今後順次対応していく。これは進行中の作業であり、現状はlatex-lab-enumitem.pdfに文書化されている。

\newtheoremstyleのサポート

AMS文書クラスとamsthmパッケージは、定理風環境の新しいレイアウトスタイルを宣言するための\newtheoremstyleを提供していた。新しいブロックの実装は、このインターフェースのエミュレーションを提供するようになったが、現時点ではまだいくつかの制約がある。

\newtheoremstyleの最初の実装に関するいくつかの問題はすでに修正された。残る制限は今後のリリースで対処される予定である。

見出しコマンドのテンプレートによる再実装

今回のリリースでは、テンプレート機構を使った見出しコマンドの最初の実装を提供する。これには、レガシーな文書クラスをサポートするため\@startsectionの再実装と、\secdefの(些か)限定的な再実装が含まれる。これらの再実装の提供は、最小限のコード調整でレガシーな文書クラスをアクセシブルにする助けとするためである。今夏中に、titlesecパッケージのインターフェースのエミュレーションや、可能であればこの機構を使った他のパッケージの再実装も追加する予定なので、楽しみにしていてほしい。詳しい文書についてはlatex-lab-sec-template.pdfを参照のこと。

フロートのタグ付けの改善

フロートのタグ付けサポートコードが全面的に見直された。これにより、listingsやtcolorboxといった新しいフロート種にもタグ付けサポートを追加できるようになった。デフォルトではフロート構造は文書の末尾に先送りされるが、そのオン・オフを切り替えたり、〔文書の〕構造中のほかの位置にフロート出力したりすることが可能になった。詳細はlatex-lab-float.pdfにある。

組版におけるコンテキスト処理の強化

前回のLaTeXリリース〔ltnews42その斜め読みを参照〕では、組版コンテキストを扱うためのプロトタイプ実装を導入した。これはたとえば、本文と脚注などでリストのレイアウトを別々に設定するためのものである。いくつかの実験の後、この概念を拡張し、現在ではプライマリコンテキスト(従来どおり)、プライマリコンテキストの下位構造を扱うセカンダリコンテキスト(たとえばプライマリコンテキストfloatに対して、セカンダリコンテキストとしては現在のフロートタイプ――たとえばtable)、そしてターシャリコンテキスト(フォントサイズ)をサポートする。ドキュメントとしてはlatex-lab-context.pdfを参照のこと。今後これは、テンプレート機構を使ったキャプション処理を実装する際に使われる予定である。

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

インスタンスの値の復元

時として、テンプレートインスタンスを編集するには現在のインスタンスの値を知る必要がある。こうした状況をサポートするため、展開可能なコマンド\InstanceValue{〈タイプ名〉}}{〈インスタンス名〉}{〈キー名〉}を追加した。これは値が利用可能であればその値を返し、そうでなければ(キーまたはインスタンスが存在しなければ)空を返す。

エイリアスカウンタの宣言

補題や定義のような定理風環境は、採番に共通のカウンタを使うことが多い。このため、参照時に適切なプレフィックスを作るのが難しくなる。そこで、カウンタのエイリアスを作成し、あるカウンタを別の名前で使えるようにする新しいコマンド\newcounteraliasを追加した。このコードはaliascntパッケージの同様のコマンドに基づいている。LaTeXおよびamsthmの\newtheoremコマンドはこの\newcounteraliasを使用するように変更された。これにより、hyperref、zref-clever、cleverefといったパッケージが環境を正しく識別できるようになる。たとえば以下のコードは、補題を望みどおり「lemma 1」として参照し、「theorem 1」とは参照しないようになる。

\documentclass{article}
\newtheorem{theorem}{Theorem}
\newtheorem{lemma}[theorem]{Lemma}
\usepackage{zref-clever}
\begin{document}
\begin{lemma} \label{lem} ... \end{lemma}
In \zcref{lem} we claim \ldots
\end{document}

テンプレートのデバッグサポート

テンプレート使用に関するデバッグサポートを追加した。この機能は\DebugTemplatesOnで有効化できる。テンプレートの作成とは異なり、テンプレートとインスタンスの使用は高速な処理であることが意図されている。そのため、デバッグメッセージの出力にあたっては、日常的な使用ですばやくスキップできるよう、低レベルの手法を用いている。

picture環境のオプション引数

タグ付けコードはpicture環境を拡張し、たとえば代替説明を追加するために使えるオプション引数を取れるようにした。このオプション引数は、タグ付き文書と非タグ付き文書の両方に対応するコードを著者が書きやすくするため、〔latex-labだけではなく〕カーネル版の環境にも追加された。\DocumentMetadataが使われていない場合、オプション引数は警告なしに無視される。

直前のスペースを保存・復元するコマンド

hyperrefパッケージは、リンクのアンカーを2つのコマンドで囲み、それらのアンカーが\addvspaceのような空白コマンドを乱さないように、直前のスペース(skip)を保存・復元する。これらのコマンドを\SaveLastSkip\RestoreLastSkipという名前で直接提供し、カーネル定義の\MakeLinkTargetでも使用するようにした。

コードの改善

「値なし」概念の処理の見直し

\NewDocumentCommandなどのコマンドは、指定されていないオプション引数と空の引数を区別する考え方を導入している。あるオプションがそもそも指定されていない場合、特別な「値なし」マーカーが与えられる。以前のリリースでは、これは意図的に扱いにくい文字トークンの集合であった。これは意図せずに「値なし」マーカーが入力されてしまうのを防ぐためであった。

これにより「値なし」を簡単に検出できたが、そうした値を〔意図的に〕持たせたい場面があることが判明した。こうした状況は、特にタグ付けプロジェクトの一環として、文書構造の一部のテンプレートを作成する際に頻出する。

そこで、「値なし」マーカーとしては〔扱いにくい文字トークンの集合ではなく〕\NoValueを使う方式に変更し、\IfNoValue(TF)テストとその関連コマンドを更新した。これにより、「存在しない」と解釈されるオプション引数を入力できるようになったが、これが意図せず偶然そうなることはまずないだろう。

空の引数に対するkeyval変換の見直し

今回のリリースにおける\NewDocumentCommand類への2つ目の見直しは、昔ながらの形式をもつ引数のkeyval形式への変換に適用される。たとえば、

\DeclareDocumentCommand \caption
    {s ={short-title} +O{#3} +m}

という定義は\captionの昔ながらのオプション引数を、short-titleというkeyval引数に変換する。今回のリリースでは、オプション引数が与えられているが空白の場合、結果はshort-title = と等価ではなくそもそも指定がなかった場合と等価になる。これは、keyvalモデルに移行する中で、空の引数の意味は空のkeyvalリストとみなすのが自然であるとの考えを反映した結果である。オプション引数[]が明示的に「空であること」を意味する場合には、空のブレースグループを中に与えて[{}]とすることで、新しいコードでも古いコードでも機能する。

テンプレート内の関数の\protectedステータスの見直し

テンプレートの使用が拡大するにつれて、ワークフローへの細かな調整が必要となった。その一環として、関数として宣言されたキーが\protectedステータスで保存されるようテンプレートの実装を調整した。

カーネルからの「偽の数式」の除去

内部的に、LaTeXのいくつかのテキスト構造の実装には数式モードが使われてきた。これにより、マクロでの処理を最小限に要素の組み込み配置が可能であったからである。歴史的にはこれは有用な性能を得るために重要だったが6、今日ではより問題が多い。正確なタグ付けを行うにはこうした「偽の数式」を取り除く必要があり、右横書きの言語を扱う際にはさらに問題となる。(LuaTeXにおけるテキストと数式の方向の相互作用は複雑である。)

今回のリリースでは、以下の実装から「偽の数式」の内部使用を取り除いた。

  • \textsuperscript\textsubscript
  • \parboxとminipage環境
  • tabular周辺

既存コードへの影響をできる限り避けるため、デフォルトでは上付き・下付き文字の配置に引き続き数式フォントの寸法値を使用する7。しかし新規作成する文書については、テキストフォントの寸法に基づく予測可能なオフセット(たとえばx-heightの固定割合)を設定することを推奨する。

\showoutput類の結果を監視するシステムを使う開発者は、\mathon/\mathoffのペアの除去と、一部のボックス構造の両方に変化を見るだろう。

L3プログラミング層の要求リリースの正式化

今回のリリースで、LaTeXカーネルが要求するL3プログラミング層(L3PL; expl3)のリリースを正式に定めた。今後LaTeXカーネルは2023-11-27以降のL3PLリリースを必要とする。これにより、カーネルがL3PLを使う箇所、特にL3PLで改善を行いそれをカーネルで使いたい箇所を整理できた。利用可能なL3PLのバージョンが古すぎる場合、エラーが発生し、フォーマット構築は中止される。

新しいドキュメントと改善されたドキュメント

LaTeXに新機能を追加することは、新しいドキュメントを書くことを意味する。これまで、新しいソースには(lthooks-doc.pdfのように)それぞれ独立したドキュメントがあった。これは、特にコードが安定する前の開発が進む段階では便利な方法である。一方で、情報を見つけにくくしてしまう欠点がある。

そこで、こうした情報をすべて1つのドキュメントcmdguide.pdfに集約する作業に着手した。長期的には、すべての新機能に関する説明をこのドキュメントに含めることを目指す。また最終的には、LaTeX2e全体から(関連する)既存のドキュメントも集約し、この文書がLaTeXプログラミング層におけるinterface3.pdfに相当する、LaTeXカーネルの開発者向けリファレンスマニュアルとして機能するようにしたいと考えている。

これは進行中の作業なので、このドキュメントは今後成長し、その構造も(フィードバックと使用体験に基づいて)徐々に変化していくかもしれない。特に、現在の内容は独立して読まれることを意図して書かれたファイルの寄せ集めに過ぎない。そのため、重複や最適でない順序、書式の不統一がある。それらの問題はいずれも、単一の一貫したドキュメントを目指すなかで、時間をかけて対処されていく。

グリフ、文字、エンコーディング

pdfTeXおよびLuaTeX文書のコピー&ペーストの改善

2021年、pdfTeXでコンパイルする際に、たとえば一般的な合字(リガチャ)のテキストのコピーや検索を改善するため、glyphtounicode.texファイルからの追加情報がPDFファイルに加えられた。

今回これを拡張し、数式記号のコピーを改善するglyphtounicode-cmex.texファイルを追加で読み込むようにした。

バージョン1.24以降、LuaTeXは\pdfglyphtounicodeの拡張構文をサポートし、記号フォントのコピー&ペーストを改善できるようになった。そのため、PDFモードが有効であれば、このエンジンでもこれらのファイルを読み込んで有効化する。他のエンジンは拡張された\pdfglyphtounicode\pdfgentounicodeをサポートしていない。こうしたエンジンでは、記号フォント用のパッケージがエンジンを最初にテストせずにこれらのコマンドを使えるよう、これらのコマンドを何もしないコマンドとして〔LaTeXカーネルで〕定義している。

バグ修正

\label\indexなどの透過性の改善

\label\indexのようなコマンドは、周囲の空白に対して透過的であるべきである。つまり、両側の空白が、組版されたテキストで複数の空白につながってはならない8。コマンドが1つだけの場合は、これは常にそれなりにうまく機能していた。しかし、それらが連続して複数ある場合〔例:\indexコマンドを2連続で使用してエントリを2つ追加する〕、余分な空白が生じることがあった。これがようやく修正された。

数式スクリプトフォントファミリーのグローバルマッピング

前回のリリースで追加された\DeclareMathScriptfontMappingコマンドは、scriptsizeおよびscriptscriptsizeの数式に使われる関連フォントファミリーを宣言する。以前はこのマッピングはローカルに適用されていたため、.fdファイルで使うことができなかった。これが、ほかのフォント宣言と同様にグローバルに適用されるよう修正された。

amsmathカテゴリのパッケージへの変更

\xrightarrowの前の\dotsを正しく扱う

以前のamsmathでは、$ a \to \dots \to b $と書くと、下に示すように、\dotsは二項演算の点として扱われる。\to\xrightarrowに置き換えると、点が突然コンマの点〔つまり\ldots相当〕になり、二項演算の点に戻すには\cdotsを使わなければならなかった。これが\xrightarrow\xleftarrowの両方について修正された。

dots: $a \to \dots \to b$ \\
xrightarrow: $a \xrightarrow{p} \dots \xrightarrow{p} b$

【修正前の出力】

修正前の出力

【修正後の出力】

修正後の出力

fleqnでQED記号を失わないように

amsthmのproof環境は、証明の末尾に自動的にQED記号を置く。しかし末尾が最適な位置でないこともあり、その場合、著者は適切な場所で\qedhereを使うことでLaTeXに同記号を規定より早く置くよう指示できる。しかし、fleqnオプションが有効な場合、これが常にうまく機能するわけではなく、記号が脱落してしまう場合があった。これが修正された。

fleqnでmultlineの右マージンをゼロに設定

amsmathのmultline環境は、fleqnオプションが有効なときにより広いマージンを使う。ただし、変更が意図されているのは左マージンのみである。その結果、multline環境は意図より幅の広いボックスで組版される。視覚的には通常気付かないが、たとえばページボックスをtextwidthより広くしてしまうことがある。要素がページボックス全体にまたがる場合(hlineなど)、それが周囲の段落より広く見えることがある。これが修正された。

multlineの上の垂直空白を修正

alignやgatherのような複数行の表示数式環境では、背の高い数式記号が衝突しないように、行間の距離が(\jotで制御される量だけ)わずかに増やされる。

その後、multline環境がこの補正を適用していないことが判明し、その結果、multlineの表示が他の複数行の数式よりも前の段落からわずかに離れて現れていた。これが修正された。

その結果、より多くの素材が1ページに収まるようになり、ページ割りが変わる可能性がある。それが起きた場合、明示的な\pagebreakで古い文書の元のページ割りを復元できる。

整列環境における列の追跡と空白の改善

整列環境9に関するいくつかの微妙な不整合が最近特定され、修正された。

  • gathered環境は、他の整列構造の中にネストされたときに列数を正しく分離できておらず、親環境の書式を狂わせることがあった。
  • aligned環境やalignedat環境の最後で最終的な\\の改行を省略した場合、最終行が最大列数のチェックを回避し、不要な末尾の空白を残すことがあった。
  • aligned環境は行間で内部カウンタを必ずしもリセットしておらず、整列の右端で小さな空白の不具合を断続的に引き起こすことがあった。

現在では、最終行であっても深くネストされていても、空白が一貫して適用され、過剰な列が正確に検出される。

toolsカテゴリのパッケージへの変更

longtableで使うグルーの調整

最近のLaTeXリリースは、無限のグルー収縮に関する無視される警告を出していた。longtableのグルーが、有限の収縮成分のみを使うよう調整された。

arrayとlongtableのためのフック

arrayパッケージにいくつかのフックを追加し、拡張パッケージがarrayの実装の内部を上書きすることなく、定められた場所にコードを追加できるようにした。これにより、そうしたパッケージのメンテナンス性が改善される。array自体に変更があったときに更新する必要がなくなるからである。このフックを最初に活用するパッケージはfcolumnである。

同じフックはlongtableでも利用できるが、arrayも読み込まれている場合に限られる。そうでない場合、これらのフックは作動しない。将来的には(つまり新しい文書の冒頭で\DocumentMetadataが宣言されていれば)arrayは常に読み込まれるようになる。

varioref:ドイツ語向けのいくつかの新しいバリアント

ドイツ語の言語バリアント向けにいくつかのオプションが追加され、austriannaustriangermanngermanswissgermannswissgermanを選択できるようになった。デフォルトでは、それらはすべて同じ文字列になる。

varioref:ハンガリー語のデフォルト文字列の更新

ハンガリー語のテキスト文字列が修正された。同時に、それらを選択するための2つ目のオプションが追加され、magyarまたはhungarianのいずれかを使用できるようになった。いずれも同じ結果を得る。

varioref:中国語ロケール文字列

variorefにchineseオプションが追加され、すべての参照テキストマクロと書式マクロに対して簡体字中国語のロケール文字列を提供する。書式マクロの括弧には、既存の日本語オプションと一貫して、全角の左右括弧(U+FF08/U+FF09)が使われる。

L3プログラミング層への変更

L3プログラミング層は、異なるエンコーディング間を変換する関数を提供する。これはたとえばPDFメタデータの作成に必要である。最近、エンジンレベルで混合入力エンコーディングを使うupTeXエンジンのサポートをここで改善した10。これにより、より多くの日本語文書が、PDFメタデータ作成などのために標準的なLaTeXツールで直接動作するようになるはずである。


  1. LaTeXカーネルへの更新はこれまで、内部的な実装の交換を中心としており、一般ユーザ向けの新たなインターフェース(命令、環境、オプション、etc.)の導入は控えめであった。しかし、この直後に説明されるように、どうやらLaTeXチームは単なる内部実装の変更やタグ付け対応のみを行うのではなく、ユーザインターフェース全般の大幅な見直しと更新を行うことにしたように見える。今回のこのイントロの一文はLaTeXチーム(あるいはFrank)らしい――率直にいえばあまり親切でない――レトリックの模範的な例に思える。ここではあたかも「LaTeXインターフェースの全面改修が先に大きな目標としてあり、タグ付けPDF対応の一連の活動はその一部である」と、さらにはまるでそれが最初からそのような位置付けであったかのように、既成事実化されている。だが実際には、これは順序があべこべであろう。これまでのLaTeXチームのドキュメントでは常にタグ付けPDFが主要な目標としてあり、その他の古いバグ修正などは副次的な要素と位置付けられるに過ぎなかった。経緯はおそらく、数多のサードパーティパッケージのタグ付けPDF対応を行ううちにこれでは収拾がつかないことが露見し、より多くの需要の高い機能をカーネルに実装し、よりコントロール可能なデファクトスタンダードを作ることにしたのではないだろうか。その中央集権的な方針は、LaTeXというよりはConTeXtが当初から採ってきた姿勢に近づくようにも思われる。 ↩︎

  2. 原文では(mis)usingや“fake math”(クオテーション付き)と表記されているが、これは些か強い政治的主張である。そもそもTeXやオリジナルのLaTeXが作られた時代においては、タグ付けやアクセシビリティ、機械可読であることは特段重要視されていなかった。それがfakeであるというのは、現代の(LaTeXチームの)解釈であることは明らかである。字句通りの用途よりむしろ“悪用”されることの多い\romannumeralの例を思い出されたい。根本的な不便さや職人技(いわゆるTeX芸)の跋扈を許しつつも、こうした創意工夫の余地があることが個人的にはTeXのよさであった。アクセシビリティという大義名分の下、それが本来は多様性を推進する姿勢であったものが、却って全体主義的・効率主義的な考えの普及と強化を推し進める結果となっているのは皮肉なものだ。 ↩︎

  3. 原文ではessenciallyが使われており、鹿野さんによって校正されることだろう。あるいはZRさんにより☃に置換される。各々好きに解釈するとよい。 ↩︎

  4. もともとxtemplateと呼ばれていたもののこと。ltnews39(その斜め読み)を参照。 ↩︎

  5. thebibliography環境で自動的に出力される見出し名\refnameやその類のこと。ちなみに\refnameは一般に文書クラスのレイヤで定義されている。 ↩︎

  6. TeX/LaTeXの実装では、いまよりも計算機環境が貧弱だった時代に、少しでも効率よく処理が行われるよう“手動最適化”が行われてきた。Knuth以来の伝統芸である。 ↩︎

  7. 原註:数式モードの上付き・下付き文字の配置に使われる計算は『The TeXbook』の付録Gに記述されている。その方法は、複数の数式フォント寸法に依存している。 ↩︎

  8. TeXの字句解析のルールとして、連続する空白文字は1つにまとめられる。\label\indexのようなコマンドが、このルールにおける「空白の連続性」を中断しないようにしたい、という意味。 ↩︎

  9. 原文ではalignment environments。数式モードのなかで使用して、数式内で複数の行を整列するための環境のこと。具体的にはsplit, aligned, alignedat, gatheredの類。LaTeXの文脈で、この意味で「整列環境」という用語が日本語文献で使われている例は見つけられなかったが、本稿では直訳した。 ↩︎

  10. おそらくこのIssueの内容を指す:https://github.com/latex3/latex3/issues/1880 ↩︎