О поведении перечислимой среды

О поведении перечислимой среды

Я определил очень простую пользовательскую среду для домашних заданий, которая по сути проста, 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среда запускается внутри одной из сред LaTeX listили trivlist.

Чтобы достичь цели форматирования, я предлагаю вам загрузить пакет enumitem и использовать его \newlistмакросы \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}

Связанный контент