Zum Verhalten der Enumerate-Umgebung

Zum Verhalten der Enumerate-Umgebung

Ich habe eine sehr einfache benutzerdefinierte Umgebung für Hausaufgaben definiert, die im Wesentlichen nur aus Folgendem besteht, enumeratejedoch ohne Einrückungen:

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

Wenn ich enumeratedarin eine tatsächliche Umgebung öffne hwprob, passiert Folgendes:

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

Ich bin mir nicht sicher, warum der erste Punkt 1. nicht in der gleichen Zeile beginnt wie1.Ich habe versucht, die Tilde zu entfernen, aber ohne Erfolg. Was mich verwirrt, ist, dass ich weiß, dass bei Verwendung enumerateinnerhalb der proofUmgebung das erste Element in derselben Zeile steht wieNachweisen., mit der richtigen Einrückung und allem.

Wie kann ich das Problem beheben? Ist dies eine Folge meiner Definition hwproboder liegt es an der Natur von enumerate?

Antwort1

Hier ist der „Wie“-Teil: Definieren Sie es hwprobals Listenumgebung und fügen Sie automatisch \itemam Anfang ein ein 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}

Bildbeschreibung hier eingeben

Was den „Warum“-Teil angeht, vermute ich, dass es etwas damit zu tun hat \trivlist(vielleicht mit \parshape), der gemeinsamen Basis, die sowohl von Listen- als auch von Theoremumgebungen verwendet wird.

Antwort2

Die Formatierung, die Sie erreichen möchten (das erste Element der enumerateListe soll in der aktuellen Zeile beginnen und nicht nach einem Zeilenumbruch), erfolgt, wenn die Umgebung innerhalb einer oder enumeratemehrerer LaTeX- Umgebungen gestartet wird.listtrivlist

Um Ihr Formatierungsziel zu erreichen, schlage ich vor, dass Sie das Paket enumitem laden und dessen Makros verwenden, \newlistum \setlisteine maßgeschneiderte, enumerate-ähnliche Listenumgebung namens zu erstellen hwprob.

Bildbeschreibung hier eingeben

\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}

verwandte Informationen