如何减小 \input 文件中表格的字体大小

如何减小 \input 文件中表格的字体大小

我有:

\documentclass[11pt]{article}
\begin{document}
This is the main tex document.
\input{tables}
\end{document}

tables.tex文件中,我只有数字表。我想减小表中使用的字体大小,而不修改tables.tex。是否有可以在之前输入的适当命令\input{tables}

仅供参考,tables.tex看起来像:

\begin{table}[htbp]
\caption{table caption}
\begin{tabular}{rr}
$u$   & 0.00  
\end{tabular}
\end{table}

答案1

这对我有用:

{\renewcommand\normalsize{\tiny}%
\normalsize
\input{tables}}

答案2

您可以使用etoolbox包裹点击tabular环境的开始并修改字体大小。在下面的 MWE 中,tabular字体大小设置为\Huge

在此处输入图片描述

\documentclass{article}
\usepackage{etoolbox}% http://ctan.org/pkg/etoolbox
\BeforeBeginEnvironment{tabular}{\Huge}% Adjust tabular font size to \Huge

\begin{filecontents*}{table.tex}
\begin{table}[htbp]
  \centering
  \caption{table caption}
  \begin{tabular}{rr}
    $u$ & 0.00  
  \end{tabular}
\end{table}
\end{filecontents*}

\begin{document}
Here is some dummy text.

\input{table}%

Here is some more dummy text.
\end{document}

顾名思义,命令在环境开始之前\BeforeBeginEnvironment{<env>}{<stuff>}插入-在这种情况下。<stuff><env>tabular


如果您只想修改使用 包含的表\input,那么最好定义自己的\input命令,例如\myinput,并将其与@Boris 的答案结合起来。以下是如何做到这一点的示例:

在此处输入图片描述

\documentclass{article}

\usepackage{filecontents}% http://ctan.org/pkg/filecontents
\begin{filecontents*}{table.tex}
\begin{table}
  \centering
  \caption{A table included via \texttt{input}}
  \begin{tabular}{rr}
    $u$ & 0.00  
  \end{tabular}
\end{table}
\end{filecontents*}

\newcommand{\myinput}[1]{%
  \begingroup%
  \renewcommand\normalsize{\tiny}% Specify your font modification
  \input{#1}%
  \endgroup%
}
\begin{document}
Here is some dummy text.

\myinput{table}%

Here is some more dummy text.

\begin{table}
  \centering
  \caption{A table in the main document}
  \begin{tabular}{rr}
    $u$ & 0.00  
  \end{tabular}
\end{table}

\end{document}

在命令内进行分组\myinput{<file>}(使用\begingroup...\endgroup)可确保\normalsize重新定义保持本地。

答案3

在下面的例子中,我定义了一个\CFTable带有一个可选参数的新命令,该命令重新定义了标准文档类所定义的tabletable*环境;可选参数将选择要应用于表格的字体大小切换(它不会对标题产生任何影响);可选参数的有效值为tinyscriptsizefootnotesizesmall(默认)、normalsizelargeLargeLARGEhugeHuge

\RequirePackage{filecontents}
\begin{filecontents*}{testtables.tex}
\begin{table}
  \centering
  \caption{Some test table}
  \begin{tabular}{cc}
  text & text \\
  123 & 234\\
  123 & 234\\
  123 & 234\\
  123 & 234\\
  123 & 234\\
  \end{tabular}
\end{table}
\end{filecontents*}

\documentclass{article}

\makeatletter
\newcommand\CTFont[1][small]{
\renewenvironment{table}
               {\@float{table}\csname#1\endcsname}
               {\end@float}
\renewenvironment{table*}
               {\@dblfloat{table}\csname#1\endcsname}
               {\end@dblfloat}
}
\makeatother
\begin{document}

\begingroup
\CTFont% tables in \small size
\input{testtables}
\endgroup

\begingroup
\CTFont[tiny]% tables in \tiny size
\input{testtables}
\endgroup

\begingroup
\CTFont[Large]% tables in \Large size
\input{testtables}
\endgroup

\end{document}

在此处输入图片描述

filecontents包和filecontents*环境仅提供完整的可编译示例;您在实际代码中不需要它们。

通过上述代码,字体大小的变化只会影响表格内容,而不会影响标题;要实现同时改变标题字体大小,只需加载包即可caption

\usepackage{caption}

并将的定义更改\CFTable

\makeatletter
\newcommand\CTFont[1][small]{
\captionsetup[table]{font=#1}
\renewenvironment{table}
               {\@float{table}\csname#1\endcsname}
               {\end@float}
\renewenvironment{table*}
               {\@dblfloat{table}\csname#1\endcsname}
               {\end@dblfloat}
}
\makeatother

但是 现在可选参数的唯一有效值是scriptsize、、(默认)footnotesize、、和。smallnormalsizelargeLarge

答案4

{
\renewcommand\normalsize{
  \fontsize{10pt}{17pt}\selectfont}
  \normalsize\input{your-table-or-file}
}

使用 定义大小和间距\fontsize{10pt}{17pt}

与 pdflatex 兼容,但不确定是否适用于 XeLatex 和其他产品。

相关内容