我正在写一篇论文,使用一个我尚未创建的自定义文档类,但似乎功能与文章类似。我一直在为我的表格使用 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
添加了钩子让它看起来更自然一点)