使用 strut 在 parbox 中对第一个单词进行连字

使用 strut 在 parbox 中对第一个单词进行连字

我在 parbox 间距与连字符结合方面遇到了问题。我希望以类似表格的方式将 parbox 设置为键值对。因此,我有两个 parbox,每行具有给定的宽度。第一个问题是 parbox 中第一个单词的连字符,这通过使用 解决了\hspace{0pt}。现在,当我有多行时,每行都有一个键和一个值 parbox,它们之间没有垂直间距。

无支撑

所以我尝试使用 来解决这个问题\strut。现在,我有了垂直间距,但第一个单词的连字符不再起作用。

带支撑架

请参阅以下最小工作示例:

\documentclass[10pt,a4paper]{article}

\newcommand{\myKey}{MyLongKeyLabel}
\newcommand{\myValue}{ThisIsMyLongValue}

\newcommand{\myKeyValuePair}{%
    \parbox[t]{20mm}{\raggedright%
        \hspace{0pt}\myKey%\strut%
    }%
    \hspace{3mm}%
    \parbox[t]{20mm}{\raggedright%
        \hspace{0pt}\myValue%\strut%
    }\par
}

\begin{document}

    \myKeyValuePair
    \myKeyValuePair
    \myKeyValuePair

\end{document}

当取消注释\strut命令时,连字符将不再起作用。

我的问题是:如何实现 parbox 中第一个单词的连字,并且在连续行中的 parbox 之间有垂直间距?

提前感谢您的任何想法。

答案1

TeX 中,单词连字符的可能形式是一系列字母(非零\lccode),以 glue(即\hskip单词间 glue)开头,以不同于 box 或 line 的字符结尾。算法更复杂,但上面提到的句子很重要。并且\strut是 box 或 line。这否定了连字符。您需要使用此代码:

    \strut\hskip0pt\relax\myKey\nobreak\hskip0pt\strut

    \strut\hskip0pt\relax\myValue\nobreak\hskip0pt\strut

现在,该词以 by 开头\hskip,也以 eded by\hskip结尾。两个\struts(before 和 after)都很重要,因为使用了第一个支柱的高度,也使用了第二个支柱的深度。

相关内容