使用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