xcoffins 包装中的 T 杆

xcoffins 包装中的 T 杆

的文档棺材包裹状态:

此外,含有垂直模式材料的棺材也具有极点,这反映了这些系统的丰富性质:

B沿着棺材底部材料基线延伸的杆子。

T沿着棺材顶部材料基线延伸的杆子。

在这个例子中,我看不出t和之间的区别T

\documentclass{article}
\usepackage{xcoffins}
\begin{document}
\NewCoffin \MyCoffin 
\SetVerticalCoffin \MyCoffin {60pt} {\noindent This\\ is a\\ small\\ g.}
\DisplayCoffinHandles \MyCoffin {red}
\end{document}

This is a small g.

答案1

此处的问题是由于我在 中犯的一个错误而引起的l3coffins。您将在那里找到

\cs_new_protected:Npn \vcoffin_set:Nnn #1#2#3
  {
    \coffin_if_exist:NT #1
      {
        \vbox_set:Nn #1
          {
            \dim_set:Nn \tex_hsize:D {#2}
            \color_group_begin:
              \color_ensure_current:
              #3
            \color_group_end:
          }
        \coffin_reset_structure:N #1
        \coffin_update_poles:N #1
        \coffin_update_corners:N #1
        \vbox_set_top:Nn \l_coffin_internal_box { \vbox_unpack:N #1 }
        \coffin_set_pole:Nnx #1 { T }
          {
            { 0 pt }
            { \dim_eval:n { \box_ht:N #1 - \box_ht:N \l_coffin_internal_box } }
            { 1000 pt }
            { 0 pt }
          }
        \box_clear:N \l_coffin_internal_box
      }
  }

问题出在这\color_ensure_current:行上,这是不正确的。在 SVN 中,这行被删除了。此修复将出现在下一个 CTAN 快照中,预计在 6 月的某个时间。在此期间,您可以使用以下方法在本地修复它

\usepackage{expl3}
\ExplSyntaxOn
\cs_set_protected:Npn \vcoffin_set:Nnn #1#2#3
  {
    \coffin_if_exist:NT #1
      {
        \vbox_set:Nn #1
          {
            \dim_set:Nn \tex_hsize:D {#2}
            \color_group_begin:
              #3
            \color_group_end:
          }
        \coffin_reset_structure:N #1
        \coffin_update_poles:N #1
        \coffin_update_corners:N #1
        \vbox_set_top:Nn \l_coffin_internal_box { \vbox_unpack:N #1 }
        \coffin_set_pole:Nnx #1 { T }
          {
            { 0 pt }
            { \dim_eval:n { \box_ht:N #1 - \box_ht:N \l_coffin_internal_box } }
            { 1000 pt }
            { 0 pt }
          }
        \box_clear:N \l_coffin_internal_box
      }
  }
\ExplSyntaxOff

在你的序言中。


对于那些想知道为什么会发生这种情况的人来说,T设置极点的方式最终是使用\vtop原始的。只有当垂直框中的第一个项目本身就是一个框时,这才会给出正确的框高度。该\color_ensure_current:函数创建了一个 whatsit,因此会破坏计算。所以目前这条线已被删除(镜像 LaTeX2e 框行为,其中只有 hboxes 确保当前颜色用于前景)。

相关内容