![使用 Tikz 和考试类时带圆圈的数字间距错误](https://linux22.com/image/302165/%E4%BD%BF%E7%94%A8%20Tikz%20%E5%92%8C%E8%80%83%E8%AF%95%E7%B1%BB%E6%97%B6%E5%B8%A6%E5%9C%86%E5%9C%88%E7%9A%84%E6%95%B0%E5%AD%97%E9%97%B4%E8%B7%9D%E9%94%99%E8%AF%AF.png)
- 我正在使用 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
{}
{}
你会得到这个: