如何在不改变标题字体大小的情况下改变长表行的字体大小?

如何在不改变标题字体大小的情况下改变长表行的字体大小?

我想将 a 的所有内容的字体大小更改为longtablefootnotesize但是文档的其余部分还有标题(!)应保持正常大小。(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}

在此处输入图片描述

相关内容