更改文档范围内表格的字体大小

更改文档范围内表格的字体大小

使用scrartcl我的文档类,表格的字体大小比我的正常文本略大(我猜是 12pt 而不是 11pt)。如何更改文档宽度表格的字体大小?目前我只是\small向所有表格添加一个。

答案1

\makeatletter
\renewenvironment{table}{%
  \if@tablecaptionabove\let\caption\captionabove
  \else\let\caption\captionbelow\fi
  \small\@float{table}%
}{%
  \end@float
}
\makeatother

答案2

您可以使用 提供的环境钩子etoolbox。以下代码将表内容更改为\tiny\tiny虽然没有人会真正使用它,但对于演示目的来说可能更好)。

钩子插在 处tabular。使用\AtBeginEnvironment{table}{\tiny}没有效果。事实上,如果它有效果,你不会真的想要它,因为它也会改变标题。你可能想通过另一个包(如caption或 ccaption`)自定义标题,而不是在这里更改它。

由于您实际上不会使用十几种表格环境,因此调用\AtBeginEnvironment您使用的那些就足够了(为了良好的印刷习惯,您不应该使用两种以上的表格类型,一种用于短表格,一种用于长表格)。

\documentclass{article}
\usepackage{etoolbox}

\AtBeginEnvironment{tabular}{\tiny}

\begin{document}
  Some text in normal text.
  \begin{table}[ht]
    \caption{A table}
    \begin{tabular}{c}
      Some text in  table size
    \end{tabular}
  \end{table}
\end{document}

答案3

Marco 的解决方案,重新定义table环境并插入,\small是个好方法。但是,它还不起作用。当然,它无法测试,因为没有给出示例。

\@floatboxreset调用\normalsize。可以使用\small来重新定义它,或者直接省略\normalsize。为了不影响其他浮点数,也可以在重新定义中完成此操作table。我\normalsize在环境结束时调用了 。

因此,这里有一个可按预期工作的可编译示例:

\documentclass[10pt]{scrartcl}
\makeatletter
\renewenvironment{table}{%
  \if@tablecaptionabove\let\caption\captionabove
  \else\let\caption\captionbelow\fi
  \renewcommand* {\@floatboxreset}{%
    \reset@font\@setminipage}
  \small\@float{table}%
}{%
  \end@float\normalsize
}
\makeatother
\begin{document}
Text in 10pt

\begin{table}[!htbp]
\begin{tabular}{l}
Text in 9pt
\end{tabular}
\end{table}

Text in 10pt
\end{document}

我再次提出这个问题,因为我在LaTeX 社区今天。

答案4

这里提到的方法非常有用。这里还有另一种简便方法,只需重新定义表环境即可,如下所示:

 \makeatletter
 \renewenvironment{table}
     {\@float{table} \small}
     {\end@float}
 \makeatother

相关内容