跳过内联描述环境标签之后的内容

跳过内联描述环境标签之后的内容

我想将包含多个“子段落”的段落转换为等效的内联列表。请参阅以下代码。

\documentclass{article}
\usepackage{amsthm}
\usepackage{enumitem}
% \usepackage{tikz}

\newlist{description_inline}{description*}{1}
\setlist[description_inline]{format=\myformat}
\newcommand \myformat [1] {\normalfont\emph{#1}}

\newlist{description_inline_fixed}{description*}{1}
\setlist[description_inline_fixed]{format=\myformatfixed, afterlabel=\unskip}
\newcommand \myformatfixed [1] {\normalfont\emph{#1} }

\begin{document}
    \begin{proof}
        \emph{Case A.} We do something to show Case A. \emph{Case B.} Now we proooooooooove Case B.
    \end{proof}
    \begin{proof}
        \begin{description_inline}
            \item[Case A.] We do something to show Case A.
            \item[Case B.] Now we proooooooooove Case B.
        \end{description_inline}
    \end{proof}
    \begin{proof}
        \begin{description_inline_fixed}
            \item[Case A.] We do something to show Case A.
            \item[Case B.] Now we proooooooooove Case B.
        \end{description_inline_fixed}
    \end{proof}
\end{document}

现提供以下证明: The proofs produced

似乎每个标签后面都有一个可拉伸的跳过,这可能会导致难看的空格(具体取决于换行符)。这就是我\unskip在每个标签后面都放上它的原因。但这是正确的解决方案吗?

为什么会出现这个问题?我看不出有可伸缩跳过有什么好处。当我了解内联列表并尝试它们时,感觉不对劲,我得到的第一件事看起来像是一个错误。

也可以随意建议代码中的任何其他更改。

更新:当我尝试在论文中使用我的解决方案时,它根本不起作用。无论\unskip使用与否,都会出现难看的空格。一段时间后,我发现,当使用 TikZ 时,它不起作用。这到底是怎么回事?!

答案1

正如我在评论中所说,\hfil在项目标签后插入一个,以使其左对齐。幸运的是,我们可以使用选项更改对齐方式align,并使用定义新的对齐类型\SetLabelAlign

\documentclass{article}
\usepackage{amsthm}
\usepackage{enumitem}
\usepackage{tikz}

\newlist{description_inline}{description*}{1}
\setlist[description_inline]{format=\myformat}
\newcommand \myformat [1] {\normalfont\emph{#1} }

\SetLabelAlign{don't}{#1}
\newlist{description_inline_fixed}{description*}{1}
\setlist[description_inline_fixed]{format=\myformatfixed,align=don't}
\newcommand \myformatfixed [1] {\normalfont\emph{#1}}

\begin{document}
    \begin{proof}
        \emph{Case A.} We do something to show Case A. \emph{Case B.} Now we proooooooooove Case B.
    \end{proof}
    \begin{proof}
        \begin{description_inline}
            \item[Case A.] We do something to show Case A.
            \item[Case B.] Now we proooooooooove Case B.
        \end{description_inline}
    \end{proof}
    \begin{proof}
        \begin{description_inline_fixed}
            \item[Case A.] We do something to show Case A.
            \item[Case B.] Now we proooooooooove Case B.
        \end{description_inline_fixed}
    \end{proof}
\end{document}

output

虽然我不知道 enumitem 为什么要尝试对齐内联列表项,但对我来说,此选项似乎比任何删除\hfil插入前后内容的方法都更安全。如果包被更改为跳过对齐步骤,则该align选项有望安全地变为无操作。

相关内容