doc及びplextパッケージを読み込んだ下で,部分縦組みで始めて列挙環境を用いるとunhbox関連のエラー

doc及びplextパッケージを読み込んだ下で,部分縦組みで始めて列挙環境を用いるとunhbox関連のエラー

- Cmplstof B の投稿
返信数: 5

こんにちは。

問題は標題の通りですが,それが発生する状況が少しばかり複雑ですので,私めの考えの整理の為にも,説明を繰り返させて頂きます。

問題

docパッケージを読み込んで,\DocInput命令でパッケージ文書等を読み込むと,%文字でコメントアウトしている部分が「解説文書」として組版されますよね。 その解説文書の部分で,plextパッケージで提供されている{minipage}環境等に対する部分的に縦組を行い,その中で列挙環境(例えば{enumerate}環境など)を用いると,

! Incompatible direction list can't be unboxed.
\@item ...setbox \@labels \hbox {\unhbox \@labels 
                                                  \hskip \itemindent \hskip ...
l.27 %   \item あ
                  いうえ,
Sorry, Pandora. (You sneaky devil.)
I refuse to unbox a box in different direction.

というようなエラーが生じます(原稿と組版結果,その記録の全文は別途添付しています)。

しかしながら,私の調査が正しければ,このエラーが生じるのは,列挙環境を一度目に用いたのが部分縦組の内部である場合に限られるようです。事実,この投稿に添付した原稿main.texの25行目から始まる縦組{minipage}環境と34行目から始まる(縦組でない){minipage}環境の順序を逆にすると,当該エラーは発生しません。

このエラーの原因を知り,解決したいのですが,見当も付きません。どうかお力添えをお願いいたします。

動作環境

upLaTeX, TeX Live 2019。

Overleafに原稿を上げています(URL: https://ja.overleaf.com/3997866912mgnpkzhsnfhp)。こちらでも(当然ながら)同じ状況です。

Cmplstof B への返信

Re: doc及びplextパッケージを読み込んだ下で,部分縦組みで始めて列挙環境を用いるとunhbox関連のエラー

- Cmplstof B の投稿
Cmplstof B への返信

Re: doc及びplextパッケージを読み込んだ下で,部分縦組みで始めて列挙環境を用いるとunhbox関連のエラー

- はやて (h20y6m) の投稿
よくわかりませんが
\begin{macrocode}
\end{macrocode}
が \@labels に横組ボックスをセットしており、
これを \item が縦組で展開してエラーになるようです。
順序を逆にした場合でも間に macrocode 環境を入れるとエラーになるようです。
何らかの方法で \@labels を空にすればエラーを回避できそうです。
たとえば \end{macrocode} の後に \makeatletter\setbox\@labels\box\voidb@x\makeatother を入れるとエラーにならなくなります。
はやて (h20y6m) への返信

Re: doc及びplextパッケージを読み込んだ下で,部分縦組みで始めて列挙環境を用いるとunhbox関連のエラー

- Cmplstof B の投稿

解消しました。ありがとうございます!

はやて (h20y6m) への返信

Re: doc及びplextパッケージを読み込んだ下で,部分縦組みで始めて列挙環境を用いるとunhbox関連のエラー

- aminophen の投稿
次期 LaTeX2e のリリースでは修正されそうです.
https://github.com/latex3/latex2e/commit/a622e88aab353b3e27a867b1b061e00a5f352663
aminophen への返信

Re: doc及びplextパッケージを読み込んだ下で,部分縦組みで始めて列挙環境を用いるとunhbox関連のエラー

- Cmplstof B の投稿
おお,良かったです!情報ありがとうございます。

(とは言え,普通の文書ならともかく,docパッケージを読み込んでいる時に,
わざわざ縦組で箇条書きする機会なんてそうないですけどね……)