为什么一个空的 \textwidth 棺材与另一个棺材连接时会失去宽度?

为什么一个空的 \textwidth 棺材与另一个棺材连接时会失去宽度?

我试图理解棺材。事实上,我去使用它们。尝试去理解它们纯粹是一个工具性的目标。

我想制作一个宽度为 的棺材\textwidth和一个略小于 的棺材。然后我想使用和.5\textwidth给出的锚点将棺材连接起来。Tr

T然后我想使用和处的锚点排版连接结果l,这样文本就会被推到页面的右侧。(就像我填充了半宽 左侧的空间一样minipage,大致如此。)

然而,\textwidth当我加入第二个棺材时,第一个棺材的似乎被遗忘了,所以文本排版在页面的左侧而不是右侧。

相反,如果第一个棺材包含x,那么棺材的宽度将被保留,并且文本被推到右侧。

棺材

现在,显然,还有许多其他方法可以实现这种效果。我不是在要求另一种方法。我想知道这是否是预期的,如果是,为什么,因为考虑到我短暂进入棺材领域,我并没有想到这一点。

\documentclass{article}
\usepackage{expl3,showframe}
\begin{document}
\ExplSyntaxOn
\vcoffin_set:Nnn \l_tmpa_coffin { \textwidth }
{
}
\vcoffin_set:Nnn \l_tmpb_coffin { .5\textwidth - .5\columnsep }
{
  Some~long~stuff~here~of~some~description~typeset~somehow~or~other~but~maybe~not~so~tediously.
}
\coffin_join:NnnNnnnn \l_tmpa_coffin { T } { r } \l_tmpb_coffin { T } { r } { 0pt } { 0pt }
\noindent
\coffin_typeset:Nnnnn \l_tmpa_coffin { T } { l } { 0pt } { 0pt }
\bigskip
\par
\vcoffin_set:Nnn \l_tmpa_coffin { \textwidth }
{
  x
}
\vcoffin_set:Nnn \l_tmpb_coffin { .5\textwidth - .5\columnsep }
{
  Some~long~stuff~here~of~some~description~typeset~somehow~or~other~but~maybe~not~so~tediously.
}
\coffin_join:NnnNnnnn \l_tmpa_coffin { T } { r } \l_tmpb_coffin { T } { r } { 0pt } { 0pt }
\noindent
\coffin_typeset:Nnnnn \l_tmpa_coffin { T } { l } { 0pt } { 0pt }
\ExplSyntaxOff
\end{document}

还请注意,我知道xcoffins为文档中的棺材提供了更合适的界面。我从类文件中获取它并将其移植到 MWE 中,只是为了创建 MWE。由于这是我一直在研究的语法领域,因此这似乎是提出问题最有用的方法(对我来说!)。

答案1

我认为这是意料之中的。它的工作原理类似于经典\vbox:设置\hsize不会创建一个大框。您需要一些材料,例如\leavevmode

\documentclass{article}
\usepackage{expl3}
\begin{document}
\ExplSyntaxOn
\fbox{\vbox  {\hsize=5cm   }}\par

\fbox{\vbox  {\hsize=5cm x }}\par

\vcoffin_set:Nnn \l_tmpa_coffin { 5cm }
 { 
 }

\vcoffin_set:Nnn \l_tmpb_coffin { 5cm }
 {
  x
 }

\fbox{\coffin_typeset:Nnnnn \l_tmpa_coffin { T } { l } { 0pt } { 0pt }}
\par
\fbox{\coffin_typeset:Nnnnn \l_tmpb_coffin { T } { l } { 0pt } { 0pt }}

\ExplSyntaxOff
\end{document}

在此处输入图片描述

相关内容