调整整个图形的大小

调整整个图形的大小

我文章中的每个图都在一个单独的.tex文件中(在图形环境中,并且有\includegraphics),我使用\input将每个图都包含在我的文章中。这些.tex文件是使用我编写的 MATLAB 程序自动生成的。

我想在演示文稿.tex中使用相同的图形beamer,但它们不适合。我该如何调整它们的大小?我试过:

\scalebox{.5}{\input{myfig.tex}}

没有成功。


这是一个例子myfig.tex

\begin{figure}
\centering
\begin{tabular}{c}
\includegraphics[scale=0.45]{myfig.eps}\\
Some text
\end{tabular}
\end{figure}

答案1

尝试这个版本\scalefiginput[<scale>]{<file>}

在此处输入图片描述

\documentclass{article}

\usepackage{graphicx}

\usepackage{filecontents}
\begin{filecontents*}{myfig.tex}
\begin{figure}
  \centering
  \begin{tabular}{c}
    \includegraphics[scale=0.45]{example-image} \\
    Some text
  \end{tabular}
\end{figure}
\end{filecontents*}

\let\oldincludegraphics\includegraphics
\newcommand{\scalefiginput}[2][1]{%
  % Update \includegraphics to scale its argument
  \renewcommand{\includegraphics}[2][]{\scalebox{#1}{\oldincludegraphics[##1]{##2}}}%
  \input{#2}% Input figure
  % Restore \includegraphics
  \let\includegraphics\oldincludegraphics
}
\begin{document}

\input{myfig.tex}

\scalefiginput{myfig.tex}

\scalefiginput[.5]{myfig.tex}

\end{document}

该宏更新了功能方式\includegraphics,将其更改为\scalebox{<scale>}{\includegraphics[..]{...}}仅用于包含的版本<file>

<scale>可选的(默认为1)。如果需要,您也可以将其设为必填项。


如果你想缩放所有内容(图片text),下面这个应该可以解决问题:

在此处输入图片描述

\documentclass{article}

\usepackage{graphicx,environ}

\usepackage{filecontents}
\begin{filecontents*}{myfig.tex}
\begin{figure}
  \centering
  \begin{tabular}{c}
    \includegraphics[scale=0.45]{example-image} \\
    Some text
  \end{tabular}
\end{figure}
\end{filecontents*}

\let\oldtabular\tabular
\let\endoldtabular\endtabular
\newcommand{\scalefiginput}[2][1]{{%
  \RenewEnviron{tabular}[1]{%
    \scalebox{#1}{\begin{oldtabular}{##1}
      \BODY
    \end{oldtabular}}}%
  \input{#2}%
}}

\begin{document}

\input{myfig.tex}

\scalefiginput{myfig.tex}

\scalefiginput[.5]{myfig.tex}

\end{document}

这个想法是重新定义tabular环境,以便您可以捕获其全部内容并根据自己的喜好进行扩展。

相关内容