我想将包含多个“子段落”的段落转换为等效的内联列表。请参阅以下代码。
\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}
似乎每个标签后面都有一个可拉伸的跳过,这可能会导致难看的空格(具体取决于换行符)。这就是我\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}
虽然我不知道 enumitem 为什么要尝试对齐内联列表项,但对我来说,此选项似乎比任何删除\hfil
插入前后内容的方法都更安全。如果包被更改为跳过对齐步骤,则该align
选项有望安全地变为无操作。