TeXの記憶(103)— 2つのenumerateでごまかした

enumerate環境で、見出しの数字が2桁になったときに次の行の位置もそれに合わせて揃えたい、という場合です。

そのままだと2桁の場合は2行目の頭がズレてしまいます。

考えていたら頭が混乱してきたので、2つ環境を作ってしまうことにしました。どう考えてもうまい方法とは思えないのですが、時間もないのでこのまま進めることにしました。

1128

% 問題の番号が「1.5」のように数字2文字のとき
\newdimen\mondaiAWidth
\mondaiAWidth=8.3mm
% 問題の番号が「11.1」のように数字3文字のとき
\newdimen\mondaiBWidth
\mondaiBWidth=10.2mm

\newcounter{mondai_counter}
\newenvironment{mondaiA}{\small
  \begin{list}%
    {{\color{blue}%
        \bfseries\selectfont\thechapter.\arabic{mondai_counter}}}%
    {\usecounter{mondai_counter}%
      \topsep=\z@ \partopsep=\z@
      \itemsep=\z@ \parsep=\z@
      \leftmargin=\mondaiAWidth \rightmargin=\z@
      \@tempdima=\mondaiAWidth\advance\@tempdima-3.5mm
      \itemindent=-\@tempdima
      \labelsep=1zw
      \labelwidth=0zw \listparindent=\z@}}
{\end{list}\normalsize}

\newenvironment{mondaiB}{\small
  \begin{list}%
    {{\color{blue}%
        \bfseries\selectfont\thechapter.\arabic{mondai_counter}}}%
    {\usecounter{mondai_counter}%
      \topsep=\z@ \partopsep=\z@
      \itemsep=\z@ \parsep=\z@
      \leftmargin=\mondaiBWidth \rightmargin=\z@
      \@tempdima=\mondaiBWidth\advance\@tempdima-3.5mm
      \itemindent=-\@tempdima
      \labelsep=1zw
      \labelwidth=0zw \listparindent=\z@}}
{\end{list}\normalsize}
\setcounter{chapter}{1}

\begin{mondaiA}
\item □□□□□□□□□□□□□□□□□□□□□□
□□□□□□□□□□□□□□□□□□□□□□
□□□□□□□□□□□□□□□□□□□□□□
\setcounter{mondai_counter}{10}
\item □□□□□□□□□□□□□□□□□□□□□□
□□□□□□□□□□□□□□□□□□□□□□
□□□□□□□□□□□□□□□□□□□□□□
\end{mondaiA}

\begin{mondaiB}\setcounter{mondai_counter}{10}
\item □□□□□□□□□□□□□□□□□□□□□□
□□□□□□□□□□□□□□□□□□□□□□
□□□□□□□□□□□□□□□□□□□□□□
\item □□□□□□□□□□□□□□□□□□□□□□
□□□□□□□□□□□□□□□□□□□□□□
□□□□□□□□□□□□□□□□□□□□□□
\end{mondaiB}

コメント