我想将 a 的所有内容的字体大小更改为longtable
。footnotesize
但是文档的其余部分还有标题(!)应保持正常大小。(pdflatex
已使用)
我怎样才能做到这一点?
- 我尝试将
\footnotesize
命令放在环境之外longtable
,但是这样caption
也会更小。 - 如果我将命令放在表格第一行之前,则它仅针对表格的第一个单元格执行。
- 如果我把它放在之前
\endoffirsthead
,编译时我会收到一条错误消息。
编辑:我不想成为整个文档的一部分\footnotesize
,但是仅有的表格的内容!
最小示例:
\documentclass{scrbook}
\usepackage{longtable, booktabs}
\begin{document}
\begin{longtable}{ccc}
\caption{This is the caption of the table which shall be normal size!}\\
\toprule
aaaaaaa & bbbbbb & ccccccccc\\
\midrule
a & b & c\\
a & b & c\\
a & b & c\\
a & b & c\\
a & b & c\\
a & b & c\\
\bottomrule
\end{longtable}
答案1
您可以修改的定义,\LT@makecaption
使其使用\normalsize
;因为您正在使用,所以scrbook
必须使用它是定义。我将定义一个新的环境,它会让事情变得更容易。
\documentclass{scrbook}
\usepackage{longtable, booktabs,etoolbox}
\makeatletter
\newenvironment{longtable*}[1]
{%
\renewcommand{\LT@makecaption}[3]{%
\noalign{%
\if@captionabove
\vskip\belowcaptionskip
\else
\vskip\abovecaptionskip
\fi
}%
\LT@mcol\LT@cols c{%
\hbox to\z@{\normalsize\hss\parbox[t]\linewidth{%
\@@makecaption{##1}{##2}{##3}%
\endgraf
\if@captionabove
\vskip\abovecaptionskip
\else
\vskip\belowcaptionskip
\fi
}%
\hss
}%
}%
}%
#1\begin{longtable}}
{\end{longtable}}
\makeatother
\begin{document}
\hrule
\begin{longtable*}{\footnotesize}{ccc}
\caption{This is the caption of the table which shall be normal size!}\\
\toprule
aaaaaaa & bbbbbb & ccccccccc\\
\midrule
a & b & c\\
a & b & c\\
a & b & c\\
a & b & c\\
a & b & c\\
a & b & c\\
\bottomrule
\end{longtable*}
\begin{longtable}{ccc}
\caption{This is the caption of the table which shall be normal size!}\\
\toprule
aaaaaaa & bbbbbb & ccccccccc\\
\midrule
a & b & c\\
a & b & c\\
a & b & c\\
a & b & c\\
a & b & c\\
a & b & c\\
\bottomrule
\end{longtable}
\end{document}
环境的语法longtable*
很简单:它将表格主体的所需大小作为参数;通常的参数如下longtable
。我留下了两个例子来展示差异。
答案2
由于您使用的是 KOMA-Script 文档类,因此您可以简单地使用\setkomafont
或\addtokomafont
来设置标题的大小:
\documentclass[captions=tableheading]{scrbook}
\usepackage{longtable, booktabs}
\setkomafont{caption}{\normalsize}
\begin{document}
\begingroup
\footnotesize
\begin{longtable}{ccc}
\caption{This is the caption of the table which shall be normal size!}\\
\toprule
aaaaaaa & bbbbbb & ccccccccc\\
\midrule
a & b & c\\
a & b & c\\
a & b & c\\
a & b & c\\
a & b & c\\
a & b & c\\
\bottomrule
\end{longtable}
\endgroup
\end{document}
对于其他文档类,可以包含该caption
包。只需包含就足够了,因为\normalsize
这是此处的默认标题大小(至少从 3.1 版开始):
\documentclass{book}
\usepackage{longtable, booktabs}
\usepackage[tableposition=t]{caption}
\begin{document}
\begingroup
\footnotesize
\begin{longtable}{ccc}
\caption{This is the caption of the table which shall be normal size!}\\
\toprule
aaaaaaa & bbbbbb & ccccccccc\\
\midrule
a & b & c\\
a & b & c\\
a & b & c\\
a & b & c\\
a & b & c\\
a & b & c\\
\bottomrule
\end{longtable}
\endgroup
\end{document}
如果有人没有使用 KOMA-Script 文档类,但也不想使用该caption
包,则可以ltcaption
尝试该包,它是软件包的一部分caption
,但仅修补了长表的字幕内容:
\documentclass{book}
\usepackage{longtable, booktabs}
\usepackage{ltcaption}
% The ltcaption package supports \CaptionLabelFont & \CaptionTextFont
% introduced by the NTG document classes
\renewcommand\CaptionLabelFont{\normalsize}
\renewcommand\CaptionTextFont{\normalsize}
\begin{document}
\begingroup
\footnotesize
\begin{longtable}{ccc}
\caption{This is the caption of the table which shall be normal size!}\\
\toprule
aaaaaaa & bbbbbb & ccccccccc\\
\midrule
a & b & c\\
a & b & c\\
a & b & c\\
a & b & c\\
a & b & c\\
a & b & c\\
\bottomrule
\end{longtable}
\endgroup
\end{document}
答案3
您可以通过在序言中保留以下三行来进行全局更改:
\usepackage[font=normalsize]{caption} %% make caption in normal size
\usepackage{etoolbox}
\AtBeginEnvironment{longtabu}{\footnotesize}{}{} %% change all longtabu content to foot note size
Harish Kumar 的回答在这个问题中
答案4
您可以尝试新的 LaTeX3 包tabularray
:
\documentclass{scrbook}
\usepackage{tabularray}
\UseTblrLibrary{booktabs}
\begin{document}
\begin{longtblr}[
caption = {This is the caption of the table which shall be normal size!},
]{colspec={ccc},rows={font=\footnotesize}}
\toprule
aaaaaaa & bbbbbb & ccccccccc \\
\midrule
a & b & c \\
a & b & c \\
a & b & c \\
a & b & c \\
a & b & c \\
a & b & c \\
\bottomrule
\end{longtblr}
\end{document}