Ich verwende das xsim-Paket, um Übungssätze zu erstellen. Einige Übungen beginnen sofort mit den Teilen (a), (b) usw. und ohne Einführungstext. Ich habe andere Antworten von hier verwendet, um eine Enumitem-Liste mit topsep = 0pt und negativem vspace für „davor“ einzurichten. Dies scheint in den meisten Fällen in Ordnung zu sein, mit Ausnahme von Übung 2 in diesem Beispiel, bei der der hochgestellte Index die vertikale Ausrichtung zu beeinflussen scheint.
Gibt es eine bessere Möglichkeit, die Enumitem-Liste so einzurichten, dass Teil (a) immer korrekt mit der Übungsnummer übereinstimmt?
\documentclass[a4paper,11pt]{memoir}
\usepackage[T1]{fontenc}
\usepackage[defaultsans]{opensans}
\usepackage{newtxtext,newtxmath}
\setlength{\parskip}{0.6em}
\setlength{\parindent}{0pt}
\usepackage{xsim}
\DeclareExerciseEnvironmentTemplate{margin} % simulate margin-nr style from exsheets
{%
\par\vspace{\baselineskip}
\Needspace*{2\baselineskip}
\noindent
\llap{%
\smash{%
\tabular[t]{@{}r@{}}
\sffamily\textbf{\GetExerciseProperty{counter}\,}
\endtabular
} % notice the space
}%
}
{}
\xsimsetup{
exercise/template = margin,
solution/template = margin
}
\usepackage{enumitem}
\newlist{exampartsnoskip}{enumerate}{2}
\setlist[exampartsnoskip]{topsep=0pt,before={\vspace*{-1.85em}},label={(\alph*)},itemsep=0.1em,leftmargin=\oddsidemargin}
\setlist[exampartsnoskip,1]{label=(\alph*)}
\begin{document}
\begin{exercise}
\begin{exampartsnoskip}
\item First
\item Second
\end{exampartsnoskip}
\end{exercise}
\begin{exercise}
\begin{exampartsnoskip}
\item Evaluate $\left(36^\frac12+16^\frac14\right)^\frac13$
\item Second
\end{exampartsnoskip}
\end{exercise}
\begin{exercise}
\begin{exampartsnoskip}
\item $\dfrac{x}{\dfrac{1}{x+1}}$
\item Second
\end{exampartsnoskip}
\end{exercise}
\end{document}
Antwort1
Implementieren Sie die Vorlage möglicherweise margin
mit einem trivlist
:
\documentclass[a4paper,11pt]{memoir}
\usepackage[T1]{fontenc}
\usepackage[defaultsans]{opensans}
\usepackage{newtxtext,newtxmath}
\setlength{\parskip}{0.6em}
\setlength{\parindent}{0pt}
\usepackage{showframe}
\usepackage{xsim}
\DeclareExerciseEnvironmentTemplate{margin}{%
\trivlist
\item[\llap{\sffamily\textbf{\GetExerciseProperty{counter}}}]\relax
}
{\endtrivlist}
\xsimsetup{
exercise/template = margin,
solution/template = margin
}
\usepackage{enumitem}
\newlist{examparts}{enumerate}{2}
\setlist[examparts]{
topsep=0pt,
% before={\vspace*{-1.85\baselineskip}},
label={(\alph*)},
itemsep=0.1em,
leftmargin=\oddsidemargin
}
\setlist[examparts,1]{label=(\alph*)}
\begin{document}
\begin{exercise}
\begin{examparts}
\item First
\item Second
\end{examparts}
\end{exercise}
\begin{exercise}
\begin{examparts}
\item Evaluate $\left(36^\frac12+16^\frac14\right)^\frac13$
\item Second
\end{examparts}
\end{exercise}
\begin{exercise}
\begin{examparts}
\item $\dfrac{x}{\dfrac{1}{x+1}}$
\item Second
\end{examparts}
\end{exercise}
\end{document}
Antwort2
Wenn die übergroße Höhe des inneren Ausdrucks die Position der äußeren Beschriftungsnummer beeinflussen soll, müssen Sie das Festlegen dieser Nummer verzögern und sie dann an die innere Beschriftung anhängen. LaTeX macht standardmäßig etwas Ähnliches für verschachtelte Listen, aber hier mache ich es einfach von Hand.
\documentclass[a4paper,11pt]{memoir}
\usepackage[T1]{fontenc}
\usepackage[defaultsans]{opensans}
\usepackage{newtxtext,newtxmath}
\setlength{\parskip}{0.6em}
\setlength{\parindent}{0pt}
\usepackage{xsim}
\DeclareExerciseEnvironmentTemplate{margin} % simulate margin-nr style from exsheets
{%
\par\vspace{\baselineskip}
\Needspace*{2\baselineskip}
\protected\gdef\exno{\llap{%
\sffamily\textbf{\GetExerciseProperty{counter}\,} }% notice the space
\gdef\exno{}}%
}
{}
\xsimsetup{
exercise/template = margin,
solution/template = margin
}
\usepackage{enumitem}
\newlist{exampartsnoskip}{enumerate}{2}
\setlist[exampartsnoskip]{topsep=0pt,before={\vspace*{-1.85em}},label={(\alph*)},itemsep=0.1em,leftmargin=\oddsidemargin}
\setlist[exampartsnoskip,1]{label=\exno(\alph*)}
\begin{document}
\begin{exercise}
\begin{exampartsnoskip}
\item First
\item Second
\end{exampartsnoskip}
\end{exercise}
\begin{exercise}
\begin{exampartsnoskip}
\item Evaluate $\left(36^\frac12+16^\frac14\right)^\frac13$
\item Second
\end{exampartsnoskip}
\end{exercise}
\begin{exercise}
\begin{exampartsnoskip}
\item $\dfrac{x}{\dfrac{1}{x+1}}$
\item Second
\end{exampartsnoskip}
\end{exercise}
\end{document}