![由于 parskip,任务和枚举未正确对齐](https://linux22.com/image/456626/%E7%94%B1%E4%BA%8E%20parskip%EF%BC%8C%E4%BB%BB%E5%8A%A1%E5%92%8C%E6%9E%9A%E4%B8%BE%E6%9C%AA%E6%AD%A3%E7%A1%AE%E5%AF%B9%E9%BD%90.png)
根据任务包文档,不支持环境嵌套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}