我想在段落结尾和开头之间添加一些空格parts
。默认情况下,与传统的乳胶。
下面你会看到(a) Foo
问题文本下方没有太多空间。我宁愿得到与列表中相同的内容(第二个红色箭头)。
我应该在哪里调整这个参数?\vskip 1em
每次都添加一个还不够干净。
\documentclass{exam}
\setlength{\parskip}{1em}
\qformat{%
\Large\textbf{\thequestiontitle}
\quad \thepoints \hfill
\vrule depth 1.5em width 0pt
}
\renewcommand{\questionshook}{%
\setlength{\leftmargin}{0pt}%
\setlength{\labelwidth}{-\labelsep}%
}
\begin{document}
\begin{questions}
\titledquestion{1\hspace{0.7em} Foo}[10]\par
Lorem ipsum dolor sit amet\par
\begin{parts}
\part Foo
\end{parts}
\end{questions}
\section{List}
Lorem ipsum dolor sit amet\par
\begin{enumerate}
\item Foo
\end{enumerate}
\end{document}
我发现我可以更改topsep
其中的值exam.cls
:
\list{\partlabel}%
{%
\usecounter{partno}\def\makelabel##1{\hss\llap{##1}}%
\settowidth{\leftmargin}{(m)\hskip\labelsep}%
\labelwidth\leftmargin\advance\labelwidth-\labelsep
\topsep=1em % <<<<<<<<<<<<<
\partopsep=0pt
\partshook
}%
}% newenvironment{parts}
但由于它是硬编码的,我不知道如何在不对考试类进行猴子修补的情况下更改它。我试过这个,但它不起作用:
\xpatchcmd*\process@part{\topsep=0em}{\topsep=1em}{}{}
答案1
使用parthook
\documentclass{exam}
\setlength{\parskip}{1em}
\qformat{%
\Large\textbf{\thequestiontitle}
\quad \thepoints \hfill
\vrule depth 1.5em width 0pt
}
\renewcommand{\questionshook}{%
\setlength{\leftmargin}{0pt}%
\setlength{\labelwidth}{-\labelsep}%
}
\renewcommand{\partshook}{% added <<<<<<<<<<<<<<<<
\setlength{\partopsep}{5ex}%
}
\begin{document}
\begin{questions}
\titledquestion{1\hspace{0.7em} Foo}[10]\par
Lorem ipsum dolor sit amet\par
\begin{parts}
\part Foo
\end{parts}
\end{questions}
\section{List}
Lorem ipsum dolor sit amet\par
\begin{enumerate}
\item Foo
\end{enumerate}
\end{document}