列挙環境の動作について

列挙環境の動作について

私は宿題の問題に対して非常にシンプルなカスタム環境を定義しました。これは基本的にenumerateインデントなしのものです。

\newcounter{hwprob}
\newenvironment{hwprob}{\refstepcounter{hwprob} \textbf{\thehwprob.} ~ }{}

enumerate内部で実際の環境を開くとhwprob、次のようになります。

\begin{hwprob}
   \begin{enumerate}
      \item Some text.
      \item Some other text.
   \end{enumerate}
\end{hwprob}

最初の項目1.がなぜ同じ行で始まっていないのか分かりません。1.チルダを削除しようとしましたが、効果はありませんでした。私を困惑させるのは、環境enumerate内で使用する場合proof、最初の項目が次の行と同じになることを知っていることです。証拠。、インデントもすべて正しく行われます。

これを修正するにはどうすればいいでしょうか? これは の定義方法の結果でしょうかhwprob、それとも に固有のものなのでしょうかenumerate?

答え1

「方法」の部分は次のとおりです。 をhwprobリスト環境として定義し、\itemの先頭に を自動的に挿入しますhwprob

\documentclass{article}
\usepackage{enumitem}

\newlist{hwprob}{enumerate}{1}
\setlist[hwprob]{label=\textbf{\arabic*.}, first*=\item}

\begin{document}
\begin{hwprob}
   \begin{enumerate}
      \item Some text.
      \item Some other text.
   \end{enumerate}
\end{hwprob}
\end{document}

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

「なぜ」の部分については、リスト環境と定理環境の両方で使用される共通基数である と関係があると思われます\trivlist(おそらく と関係があると思われます)。\parshape

答え2

希望する書式設定 (enumerateリストの最初の項目を改行後ではなく現在の行から開始する) は、enumerate環境が 1 つの LaTeXlistまたはtrivlist環境内で開始された場合に実行されます。

\newlistフォーマットの目的を達成するには、enumitem パッケージをロードし、そのマクロと\setlistマクロを使用して、と呼ばれるカスタムの列挙型リスト環境を作成することをお勧めしますhwprob

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

\documentclass{article}
\usepackage{enumitem}
\newlist{hwprob}{enumerate}{1}
\setlist[hwprob,1]{label=\bfseries\arabic*.,left=0pt}

\begin{document}
\begin{hwprob}
\item
   \begin{enumerate}
      \item Some text.
      \item Some other text.
   \end{enumerate}
\end{hwprob}
\end{document}

関連情報