私は xsim パッケージを使用して演習セットを作成しています。演習の中には、(a)、(b) などの部分からすぐに始まり、導入テキストがないものもあります。私は、ここの他の回答を使用して、topsep = 0pt で、'before' に負の vspace を持つ enumitem リストを設定しました。ほとんどの場合、これで問題ないようです。ただし、この例の演習 2 では、上付き文字が垂直方向の配置に影響しているようです。
部分 (a) が常に演習番号と正しく揃うように列挙項目リストを設定するより良い方法はありますか?
\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}
答え1
おそらく、margin
テンプレートを次のように実装します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}
答え2
内側の式の特大の高さが外側のラベル番号の位置に影響を与えるようにしたい場合は、その番号の設定を遅らせてから内側のラベルに追加する必要があります。LaTeX はネストされたリストに対してデフォルトで同様の処理を行いますが、ここでは手動で行います。
\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}