长表标题间距

长表标题间距

我正在写一篇论文,使用一个我尚未创建的自定义文档类,但似乎功能与文章类似。我一直在为我的表格使用 longtable,但很难在不影响表格内容间距的情况下将标题设置为单倍行距。我正在使用 longtable 和 setspacing 包,并使用 \renewcommand{\arraystretch}{0.7} 将表格中的文本设置为 0.7 倍行距。

我现在想将标题设为单倍行距,但不确定如何区分标题命令和表格内容命令。

长表标题格式有类似的问题,推荐使用 \AtBeginEnvironment{longtable}{\linespread{1}\selectfont},但是这会改变整个表格的间距,而不仅仅是标题。我试过 \captionsetup[longtable]{\linespread{1}\selectfont},但这似乎会使 LaTeX 崩溃。

我觉得这应该很简单,并且只需要 \AtBeginEnvironment{longtable}{\singlespacing} 之类的东西,尽管这会产生错误(我猜是因为我已经在其中安装了 \arraystretch 命令)。如果有人能为我指明正确的方向,我将不胜感激!

答案1

LT 字幕由

\def\LT@makecaption#1#2#3{%
  \LT@mcol\LT@cols c{\hbox to\z@{\hss\parbox[t]\LTcapwidth{%
    \sbox\@tempboxa{#1{#2: }#3}%
    \ifdim\wd\@tempboxa>\hsize
      #1{#2: }#3%
    \else
      \hbox to\hsize{\hfil\box\@tempboxa\hfil}%
    \fi
    \endgraf\vskip\baselineskip}%
  \hss}}}

所以你可以使用

\makeatletter
\def\LT@makecaption#1#2#3{%
  \LT@mcol\LT@cols c{\hbox to\z@{\hss\parbox[t]\LTcapwidth{%
    \sbox\@tempboxa{#1{#2: }#3}%
    \ifdim\wd\@tempboxa>\hsize
  \singlespacing
      #1{#2: }#3%
    \else
      \hbox to\hsize{\hfil\box\@tempboxa\hfil}%
    \fi
    \endgraf\vskip\baselineskip}%
  \hss}}}
  \makeatother

抱歉,用户界面不太好(可能软件包中caption添加了钩子让它看起来更自然一点)

相关内容