我文章中的每个图都在一个单独的.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
环境,以便您可以捕获其全部内容并根据自己的喜好进行扩展。