列挙項目リストを再開する前に段落をラベルと揃える方法

列挙項目リストを再開する前に段落をラベルと揃える方法

中断して再開する列挙リストを作成しましたenumitem。中断前の最後の項目と再開後の最初の項目の間に、テキスト段落を挿入します。その段落を水平方向に揃えるにはどうすればよいでしょうか。

  1. その段落の最初の行は、項目ラベルの末尾(ここで最後に表示されている出力に示されているように); 代わりに
  2. 段落全体の左端は、アイテムラベルの末尾。

私が試したことは次のとおりです:

\documentclass[12pt]{article}
\usepackage{calc}
\usepackage{enumitem}

\newlist{myenum}{enumerate}{1}
\setlist[myenum,1]{label= \upshape(\arabic*), ref={\arabic*}}

\begin{document}

\noindent Here is a list.

\begin{myenum}
  \item
    One
  \item
    Two
\end{myenum}

\hspace{\the\labelindent}%
Some other text will go here that may or may not fill out more than a single line of text on the page.

\begin{myenum}[resume*]
  \item 
    Three
  \item
    Four
\end{myenum}

\end{document}

中間段落の望ましい配置。

次のような長さの算術的な組み合わせが必要だと思います...

\hspace{\the\labelwidth-\the\labelsep}

...そして、これを行うにはパッケージの何らかのコマンドを使用することを期待していますcalcが、(a) このような長さを組み合わせる方法がわかりません。また、(b) どのような長さを組み合わせる必要があるのか​​わかりません。

答え1

これはうまくいくようです:

\documentclass[12pt]{article}
\usepackage{calc}
\usepackage{enumitem}

\newlist{myenum}{enumerate}{1}
\setlist[myenum,1]{label= \upshape(\arabic*), ref={\arabic*}}

\newdimen\midlistindent
\settowidth{\midlistindent}{(1)\kern-\labelindent\kern-\labelsep}
\newcommand{\midlist}[1]{%
  \begingroup
  \leftskip\midlistindent
  \noindent #1\unskip\par
  \endgroup}

\begin{document}

\noindent Here is a list.

\begin{myenum}
  \item
    One
  \item
    Two
\end{myenum}

\midlist{%
Some other text will go here that may or may not fill out more than a single line of text on the page.
}

\begin{myenum}[resume*]
  \item 
    Three
  \item
    Four
\end{myenum}

\end{document}

サンプルコードの出力

答え2

正しい考えですね! ただし、calc環境を使用する代わりに、enumitem独自に処理することもできます。参考までに、enumitemパッケージのドキュメントの寸法図を以下に示します。

ここに画像の説明を入力してください

左余白をゼロに設定し、ラベルの幅を項目のインデントと同じにしたいようです。

これは、環境に対する次の調整によって実現されますenumerate

\begin{enumerate}[
    align=left, 
    leftmargin=0pt, 
    itemindent=\labelwidth, 
    labelsep=0pt
]
\end{enumerate}

あなたの文書ではそのように見えます。これがあなたが求めていたものなのでしょうか?

ここに画像の説明を入力してください

MWE:

\documentclass[12pt]{article}
\usepackage{enumitem}

\newlist{myenum}{enumerate}{1}
\setlist[myenum,1]{label= \upshape(\arabic*), ref={\arabic*},
    align=left, 
    leftmargin=0pt, 
    itemindent=\labelwidth, 
    labelsep=0pt}

\begin{document}

    \noindent Here is a list.
    
    \begin{myenum}
      \item One
      \item Two
    \end{myenum}
    
    \noindent Some other text will go here that may or may not fill out more than a single line of text on the page.
    
    \begin{myenum}[resume*]
      \item Three
      \item Four
    \end{myenum}

\end{document}

関連情報