- 我正在使用 XeLaTex。
- 我也在用这个包
exam
。 - 我正在准备多项选择题考试,但我没有 Scantron,我希望学生勾选所需的圈出用笔作答。
这是我序言的相关部分,其中我设置了命令
\circled{}
来获取所需的答案格式:\usepackage{tikz} \newcommand*\circled[1]{\tikz[baseline=(char.base)]{% \node[shape=circle,draw,inner sep=1pt] (char) {#1};}} \renewcommand\choicelabel{\circled{\thechoice}} \renewcommand\thechoice{\arabic{choice}}%
这是典型的多项选择题结构
\question Choose among the following \begin{oneparchoices} \choice wrong answer; \choice sounds-good-but-it-is-not answer; \choice right answer. \end{oneparchoices}
PDF 输出为
我不喜欢带圆圈的数字前面的空格。到目前为止,我还没有找到解决这个问题的简单方法。理想情况下,我希望获得前一个单词和带圆圈的数字之间的正常间距。
答案1
您可以像这样修补 oneparchoices
\usepackage{xpatch}
\xpatchcmd{\oneparchoices}{\penalty -50\hskip 1em plus 1em\relax}
{\penalty -50\hskip 0.4em plus 0.25em\relax} %% change here as you like
{}
{}
根据需要更改值。
\documentclass{exam}
\usepackage{tikz}
\newcommand*\circled[1]{\tikz[baseline=(char.base)]{%
\node[shape=circle,draw,inner sep=1pt] (char) {#1};}}
\renewcommand\choicelabel{\circled{\thechoice}}
\renewcommand\thechoice{\arabic{choice}}%
%
\usepackage{xpatch}
\xpatchcmd{\oneparchoices}{\penalty -50\hskip 1em plus 1em\relax}
{\penalty -50\hskip 0.4em plus 0.25em\relax} %% change here as you like
{}
{}
\begin{document}
\begin{questions}
\question Choose among the following
\begin{oneparchoices}
\choice wrong answer;
\choice sounds-good-but-it-is-not answer;
\choice right answer.
\end{oneparchoices}
\end{questions}
\end{document}
就\space
在
\xpatchcmd{\oneparchoices}{\penalty -50\hskip 1em plus 1em\relax}
{\space} %% change here as you like
{}
{}
你会得到这个: