我以前没有遇到过这种情况,并且不确定哪种方式是对带有连字符的单词进行连字符连接的推荐方式。
下面的 MWE 根据文本的排版方式产生两种不同的结果。请注意每个输出中第二行的开头:
问题:
- 主要问题是如何使这两种排版文本的方法保持一致?
- 既然我们讨论这个话题,哪一个是“正确”的输出?
代码:
\documentclass{article}
\usepackage{enumitem}
\usepackage{tikz}
\usepackage{caption}
\captionsetup{margin=0pt,labelfont=sl}
\newlist{MyList*}{enumerate*}{1}%
\setlist[MyList*,1]{%
label={\slshape Figure \arabic*:},
}%
\newcommand*{\TextWidth}{27.0em}
\newcommand*{\MyText}{%
Some text to test hyphenation in words such as
left-and-right that already have dashes in them.%
}%
\begin{document}
\begin{tikzpicture}
\node [draw=red, thick, align=justify, text width=\TextWidth]
{%
\begin{MyList*}
\item \MyText%
\end{MyList*}%
};
\end{tikzpicture}%
\fboxsep=1pt
\fbox{%
\begin{minipage}{\TextWidth}
\captionof{figure}{\MyText}%
\end{minipage}%
}%
\end{document}
答案1
正如 @egreg 所指出的,问题在于enumerate*
,这是两个(在我看来)缺陷造成的。第一个是 TeX 在框选文本时处理自由裁量项的方式;第二个是默认enumitem
设置。那么,有两个解决方案。mode=boxed
要么使用
luatex
,它可以修复自由裁量项在盒子中的行为方式。或者设置
mode=unboxed
:
\setlist[MyList*,1]{%
mode=unboxed,
label={\slshape Figure \arabic*:},
}