由于 parskip,任务和枚举未正确对齐

由于 parskip,任务和枚举未正确对齐

根据任务包文档,不支持环境嵌套tasks,因此对于包含多个部分的问题,我通常将任务与枚举结合起来。问题是加载parskip 包当 \item 后面紧跟着一个任务环境时,似乎会破坏对齐:

在此处输入图片描述

以下是相应的 MWE:

\documentclass[12pt]{article}
\usepackage{parskip}
\usepackage{tasks}
\begin{document}
    \begin{enumerate}
        \item This looks fine.
        \begin{tasks}(2)
            \task The first part
            \task The second part
        \end{tasks}
        \item \begin{tasks}(2)
            \task This doesn't though
        \end{tasks}
    \end{enumerate}
\end{document}

我应该指出的是类似问题我已经在网站上修复了这个问题,但由于某种原因,这个修复对我不起作用。如果能提供任何帮助,我将不胜感激。

答案1

您可以为每个问题创建一个自定义计数器,然后将计数器插入到每个形成问题的段落前面。这样您就可以避免不必要地嵌套两个环境。tasks还接受设置以格式化列表。

如果\parskip不为零,我认为您的示例中的情况就是如此,则跳过也会添加到问题(段落)和答案(环境)之间。取消它的一种方法是简单地添加负空间。但是,为了避免重复,可以添加一个钩子,它会自动在每个 实例之前附加一个代码tasks

以下是完整代码

\documentclass[12pt]{article}
\usepackage{tasks}
\usepackage{kantlipsum}
\settasks{
    label-width=12pt,
    item-indent=3em,
    before-skip=0pt,
    after-skip=0pt,
    after-item-skip=0pt,
}
\newcounter{question}
\newcommand\question{%
    \stepcounter{question}%
    \noindent%
    \makebox[1em][r]{\thequestion.}\hspace{0.5em}}
\AddToHook{env/tasks/before}{%
    \ifdim\parskip=0pt\else\vspace{-6pt}\fi}


\begin{document}
\parskip12pt\parindent0pt
\kant[1][1]
\kant[1][2]

\question Question one
\begin{tasks}(2)
    \task Answer 1
    \task Answer 2
    \task Answer 3
\end{tasks}

\question Question two
\begin{tasks}(2)
    \task Answer 1
    \task Answer 2
    \task Answer 3
    \task Answer 4
\end{tasks}

\question Question three
\begin{tasks}(2)
    \task Answer 1
    \task Answer 2
    \task Answer 3
    \task Answer 4
\end{tasks}

\kant[1][3]
\kant[1][4]
\end{document}

在此处输入图片描述

相关内容