平均能量损失
\documentclass[11pt,a4paper]{exam}
%\documentclass[11pt,a4paper,answers]{exam}
\usepackage{multicol}
\begin{document}
\begin{multicols}{2}
\begin{questions}
\question FIRST QUESTION
\begin{oneparchoices}
\choice ABC
\choice DEF
\CorrectChoice GHI
\choice JKL
\choice MNO
\end{oneparchoices}
\question SECOND QUESTION
\begin{oneparchoices}
\choice ABCDEF
\choice GHIJKL
\CorrectChoice GHI
\choice JKL
\choice MNO
\end{oneparchoices}
\end{questions}
\vfill
\columnbreak
EXAM FINISH
\end{multicols}
\end{document}
我想要在最后一行居中埃回答或德和埃答案。有可能吗?
...@JasperHabicht 解决方案...
可以左对齐(在原包装中)或者分发文本吗?
答案1
一个解决方案是使用这方法将段落的最后一行居中,而其余行保持对齐。因此,您可以在文档序言中定义一个新环境并使用它来代替旧环境,如下所示:
\newenvironment{oneparchoicescentering}{
\begingroup
\leftskip=0mm plus .5fil%
\rightskip=0mm plus -.5fil%
\parfillskip=0mm plus 1fil\relax
\begin{oneparchoices}
}{
\end{oneparchoices}
\par
\endgroup
}
需要\par
以使段落在某种程度上完整。我试过不用,但这似乎不起作用。我猜,需要从水平模式改回垂直模式才能正确放置框。
结果是:
这是你想要实现的愿望吗?
顺便说一句,您应该在文档类中使用a4paper
而不是paper=a4
作为选项。另外,我认为只使用大写字母会使文本有点难以阅读...
编辑:如果您想要覆盖oneparchoices
环境以便能够保留语法,那么您可以在序言中放入以下内容(以下内容同时是 MWE):
\documentclass[11pt,a4paper]{exam}
\usepackage{multicol}
\let\oldoneparchoices\oneparchoices
\let\oldendoneparchoices\endoneparchoices
\renewenvironment{oneparchoices}{
\begingroup
\leftskip=0mm plus .5fil%
\rightskip=0mm plus -.5fil%
\parfillskip=0mm plus 1fil\relax
\begingroup\oldoneparchoices
}{
\oldendoneparchoices\endgroup
\par
\endgroup
}
\begin{document}
\begin{multicols*}{2}
\begin{questions}
\question First Question
\begin{oneparchoices}
\choice ABC
\choice DEF
\CorrectChoice GHI
\choice JKL
\choice MNO
\end{oneparchoices}
\end{questions}
\end{multicols*}
\end{document}
单行答案未居中
为了防止单行答案也居中(虽然我个人不会混合居中和右侧参差不齐的文本),可以利用包使用以下代码environ
:
\documentclass[11pt,a4paper]{exam}
\usepackage{multicol}
\let\oldoneparchoices\oneparchoices
\let\oldendoneparchoices\endoneparchoices
\let\oneparchoices\relax % We have to unset these to make \NewEnviron work
\let\endoneparchoices\relax
\usepackage{environ} % Load environ package
\newlength{\choiceslen} % Creating new length for later test
\NewEnviron{oneparchoices}{
\begingroup
\settowidth{\choiceslen}{% % Setting the above created length to the length of all answers
\begingroup\oldoneparchoices
\BODY
\oldendoneparchoices\endgroup%
}
\ifdim\choiceslen>\linewidth % Test if length exceeds one line, if yes center last line
\leftskip=0mm plus .5fil%
\rightskip=0mm plus -.5fil%
\parfillskip=0mm plus 1fil\relax
\fi
\begingroup\oldoneparchoices
\BODY
\oldendoneparchoices\endgroup
\par
\endgroup
}
\begin{document}
\begin{multicols*}{2}
\begin{questions}
\question First Question
\begin{oneparchoices}
\choice ABC
\choice DEF
\CorrectChoice GHI
\choice JKL
\choice MNO
\end{oneparchoices}
\question Second Question
\begin{oneparchoices}
\choice ABC
\choice DEF
\CorrectChoice GHI
\end{oneparchoices}
\end{questions}
\end{multicols*}
\end{document}
我希望它能正常工作。结果将是: