\box\@labels 和宏代码环境

\box\@labels 和宏代码环境

我不确定macrocode环境打算用它做什么\box\@labels

  • \box\@labels為無效。
  • macrocode环境结束时,它会留下一些内容:

    \box15= \hbox(0.0+0.0)x0.0 .\glue 0.0 .\glue 0.0 .\glue -5.0 .\hbox(0.0+0.0)x0.0 .\glue 5.0

  • 当另一个列表环境(比如)开始时,内容仍然存在itemize,而当第一个\item出现时,内容就会被丢弃。

梅威瑟:

% \iffalse
\documentclass{article}
\usepackage{doc}
\begin{document}
  \DocInput{\jobname}
\end{document}
% \fi
%
% \makeatletter
% \tracingonline1
% \showboxdepth10000
% \showboxbreadth10000
%
% \showbox\@labels  ^^A -> void
%
%    \begin{macrocode}
\def\MACRO{}
%    \end{macrocode}
%
% \showbox\@labels  ^^A -> non-void???
%
% \begin{itemize}
% \showbox\@labels  ^^A -> non-void???
% \item a
% \showbox\@labels  ^^A -> void
% \item b
% \showbox\@labels  ^^A -> void
% \end{itemize}
%
% \showbox\@labels  ^^A -> void
%
\endinput

我之所以询问是因为我们在日语 pLaTeX 中遇到以下问题:

% \iffalse
\documentclass{article}
\usepackage{doc}
\usepackage{plext}
\begin{document}
  \DocInput{\jobname}
\end{document}
% \fi
%
%    \begin{macrocode}
\def\MACRO{}
%    \end{macrocode}
%
% \begin{minipage}<t>{10zw}
% The option `t' starts vertical writing.
% \begin{itemize}
% \item a
% \end{itemize}
% \end{minipage}
%
\endinput

此代码会产生错误:

! Incompatible direction list can't be unboxed.
\@item ...setbox \@labels \hbox {\unhbox \@labels 
                                                  \hskip \itemindent \hskip ...
l.17 % \item a

? 

因为\box\@labels在 tate(垂直书写)内部使用,但当时它仍然包含 yoko(水平书写)节点。

相关内容