enumerate環境での相互参照

書類ばかり書いています。相変わらずワープロは大嫌いなのでLaTeXを愛用。今日書いていた文書で、enumerate環境(番号つき箇条書き)の相互参照でデフォルトでは思いどおりにならないことがありました。

TeXを知らない人には「相互参照」ってなんだって思われるかもしれないのでちょっと解説。最近のワープロなんかにはそんな機能もあるみたいですが、文書中の章や項の番号、ページ数なんかを他の箇所から参照してその章番号やページ数を埋め込んでくれる機能なんです。

たとえば番号つきの箇条書きができるenumerate環境で相互参照するときはこう書きます。

\begin{enumerate}
    \item アンスポーツマンライクファウル
    \item テクニカルファウル
  \begin{enumerate}   
        \item 審判の警告を無視する。\label{enum:無視}
        \item リングをつかんで体重をかける。\label{enum:体重}
        \item \ref{enum:無視},\ref{enum:体重}のほかにもいっぱいあります。
    \end{enumerate}
\end{enumerate}

コンパイルするとこんな出力になります。

1.アンスポーツマンライクファウル
2.テクニカルファウル
 (a)審判の警告を無視する。
 (b)リングをつかんで体重をかける。
 (c) 2a,2bのほかにもいっぱいあります。

なにが便利かっていうと、参照している番号(上記例だとaやb)が変わってしまうような変更をした場合でも番号を直接書いていないので、変更に自動的に追従してくれること。
たとえば上記の例を以下のように変更したとします。

\begin{enumerate}
    \item アンスポーツマンライクファウル
    \item テクニカルファウル
  \begin{enumerate}
    \item ファウルされたように見せかけるために床にたおれる。          
        \item 審判の警告を無視する。\label{enum:無視}
        \item リングをつかんで体重をかける。\label{enum:体重}
        \item \ref{enum:無視},\ref{enum:体重}のほかにもいっぱいあります。
    \end{enumerate}
\end{enumerate}

そうすると出力は以下のようになります。

1.アンスポーツマンライクファウル
2.テクニカルファウル
 (a)ファウルされたように見せかけるために床にたおれる。 
 (b)審判の警告を無視する。
 (c)リングをつかんで体重をかける。
 (d) 2b,2cのほかにもいっぱいあります。

今回やりたかったのは、enumerate環境が複数の入れ子になっている場合の相互参照の表記方法。デフォルトだと上記例でも分かるように親+子(2aとか,2b)になっていますね。これを子だけ(a,bだけ)にしたかった。ちょっと調べるとenumerate環境2階層め相互参照時のデフォルト表記は

{\p@enumii}

となっていることがわかりました。そうするとこれを\renewcommandで書き換えればいい。ちょっと試行錯誤して以下のようにすると望みのとおりの出力を得ることができました。

\makeatletter
\renewcommand{\p@enumii}{}
\makeatother
(中略)
\begin{enumerate}
    \item アンスポーツマンライクファウル
    \item テクニカルファウル
  \begin{enumerate}
    \item ファウルされたように見せかけるために床にたおれる。
        \item 審判の警告を無視したとき\label{enum:無視}
        \item リングをつかんで体重をかける\label{enum:体重}
        \item (\ref{enum:無視}),(\ref{enum:体重})のほかにもいっぱいあります。
    \end{enumerate}
\end{enumerate}

結果はこんなの。

1.アンスポーツマンライクファウル
2.テクニカルファウル
 (a)ファウルされたように見せかけるために床にたおれる。 
 (b)審判の警告を無視する。
 (c)リングをつかんで体重をかける。
 (d)(b),(c)のほかにもいっぱいあります。

参考書はこちら。

The LATEXコンパニオン (アスキーアジソンウェスレイシリーズ)

The LATEXコンパニオン (アスキーアジソンウェスレイシリーズ)

12/100

空気と戦争 (文春新書)

空気と戦争 (文春新書)

高橋建夫さんという技術将校の体験を軸に、「空気」で戦争に突入していくさまを解説。東工大での講義を本にしたものらしいです。陸軍省内部でも戦わば必ず負ける、中国から撤兵して日米開戦は避けるべきという冷静な判断ができていた将校は多数いた模様。

高橋氏と東条陸相とのエピソードも興味深い。