如何:将图形的定义放在一起,然后在不同的地方生成图片

如何:将图形的定义放在一起,然后在不同的地方生成图片

稍微解释一下:为了更好的写作体验,我想将所有\begin{figure}...图形的定义(我的意思是东西)组织到一个文件中,然后\input将其放到我的主文件中.tex,然后在我想要的地方生成图片。

我不知道是否可行,但如果可以的话会很方便。

答案1

您在寻找类似的东西吗?在这个文件中,我们将所有图形定义放在文件中myfigs.tex,将此文件输入到主文件中,然后在相关位置使用这些定义。

主文件

\documentclass{article}

% Use lipsum package for dummy text
\usepackage{lipsum}

\input myfigs.tex

\begin{document}

\lipsum[1]

\figone

\lipsum[2]
\lipsum[3]

\figtwo

\lipsum[4]
\lipsum[5]

\figthree


\lipsum[6]
\lipsum[7]

\figfour

\end{document}

myfigs.tex

\def\figone{\begin{figure}[[!tbp]]
  \centering
  Figure One
  \caption{Figure one.}
  \label{fig:one}
\end{figure}}


\def\figtwo{\begin{figure}[[!tbp]]
  \centering
  Figure Two
  \caption{Figure two.}
  \label{fig:two}
\end{figure}}



\def\figthree{\begin{figure}[[!tbp]]
  \centering
  Figure Three
  \caption{Figure three.}
  \label{fig:three}
\end{figure}}



\def\figfour{\begin{figure}[[!tbp]]
  \centering
  Figure Four
  \caption{Figure four.}
  \label{fig:four}
\end{figure}}

更新

编写了一个通用宏来定义图形定义。

myfigs.tex

% #1 Definition name
% #2 Position specifier
% #3 Actual figure
% #4 Caption
% #5 Label
\long\def\figdef#1#2#3#4#5{\long\gdef#1{\begin{figure}[#2]
    \centering#3\caption{#4}\label{#5}\end{figure}}}

\figdef{\figone}{!tbp}{Figure One}{Figure one.}{fig:one}
\figdef{\figtwo}{!tbp}{Figure Two}{Figure two.}{fig:two}
\figdef{\figthree}{!tbp}{Figure Three}{Figure three.}{fig:three}
\figdef{\figfour}{!tbp}{Figure Four}{Figure four.}{fig:four}

主文件未发生改变。

答案2

是的,这是可能的。如果你的figure.tex 组织如下:

\def\myfigI{\begin{figure} (your first figure} \end{figure}}
\def\myfigII{\begin{figure} (your second figure} \end{figure}}

然后,在\input阅读此文件之后,您可以在主文件中的任意位置使用简单的名称:\myfigI\myfigII等等。

相关内容