如何自定义考试文档类的问题、部分、子部分等的水平对齐方式?

如何自定义考试文档类的问题、部分、子部分等的水平对齐方式?

我正在使用exam文档类为我的学生准备测试。众所周知,exam文档类有自己的内部编号系统,用于分层列表,包括、、questions等等。我想更改嵌套列表的水平对齐方式,使下一级编号列表标签的最左侧点与上一级(或父级)文本的首字母完全对齐。要实现这一点,首先必须将每个级别的标签对齐方式从默认选项更改为。我成功了,从这里获得帮助partssubpartssubsubpartsrightleft在这里回答(下面代码的第 16 行)。我无法成功是因为部件级别的文本对齐方式相同,如您所见,部件的第六级(代码的第 28 行)不同。我如何才能完成所有级别的编号任务?请保留标签的希腊字母,因为带有希腊字母的标签的宽度与带有拉丁字母的标签的宽度不同。

目前为止的代码是:

\documentclass[12pt]{exam}
\usepackage{calc}
\usepackage{tikz}
\usepackage[T1,LGR]{fontenc}
\usepackage[english,greek]{babel}
\renewcommand\textdexiakeraia{}
\renewcommand\textstigma{\textsigma\texttau}
\renewcommand\textStigma{\textSigma\textTau}
\renewcommand\subpartlabel{(\thesubpart)}
\usepackage[a4paper, total={180mm,257mm},left=15mm,top=20mm]{geometry}
\renewcommand{\questionshook}{%
    \setlength{\leftmargin}{\labelwidth}}
\renewcommand{\partshook}{%
    \setlength{\itemindent}{0pt}
    \setlength{\listparindent}{\labelwidth+\labelsep}
    \renewcommand\makelabel[1]{##1\hfil }}
\begin{document}
    \begin{questions}
        \question 
        \tikz[overlay,remember picture]\draw[line width=0.5pt](0,0.5) -- (0,-12);\textlatin{First question}
            \begin{parts}
                \part 
                \textlatin{Fisrt part question}
                \part \textlatin{Second}
                \part \textlatin{Third}
                \part \textlatin{Fourth}
                \part \textlatin{Fifth}
                \part \tikz[overlay,remember picture]\draw[line width=0.5pt](0,0.5) -- (0,-12);\textlatin{Sixth}
                    \begin{subparts}
                        \subpart 
                        \textlatin{Fisrt subpart question}
                        \subpart 
                        \textlatin{Second subpart question}
                        \subpart 
                        \textlatin{Third subpart question}
                        \subpart 
                        \textlatin{Fouth subpart question}
                        \subpart 
                        \textlatin{Fifth subpart question}
                        \subpart 
                        \textlatin{Sixth subpart question}
                        \subpart 
                        \tikz[overlay,remember picture]\draw[line width=0.5pt](0,0.5) -- (0,-12);\textlatin{Seventh subpart question}
                            \begin{subsubparts}
                                \subsubpart
                                \textlatin{Fisrt subsubpart question}
                                \subsubpart
                                \textlatin{Second subsubpart question}
                                \subsubpart
                                \textlatin{Third subsubpart question}
                                \subsubpart
                                \textlatin{Fourth subsubpart question}
                                \subsubpart
                                \textlatin{Fifth subpart question}
                                \subsubpart
                                \textlatin{Sixth subsubpart question}
                            \end{subsubparts}
                    \end{subparts}
            \end{parts}
    \end{questions}
\end{document}

答案1

我找到了一个解决方案,并且有效:将上述代码添加到文档的前言中:

\renewcommand{\partshook}{%
    \renewcommand\makelabel[1]{##1\hfil }}
\renewcommand{\subpartshook}{%
    \renewcommand\makelabel[1]{##1\hfil }}
\renewcommand{\subsubpartshook}{%
    \renewcommand\makelabel[1]{##1\hfil }}  

这是前四级编号。如果您需要更多编号,请以类似的方式继续上述代码。

相关内容