在其他文档中重复使用图片和段落等代码

在其他文档中重复使用图片和段落等代码

我想知道是否有办法可以重用代码,例如将一个文件中写入另一个文件中的一个图形。

我想使用类似于xr包的东西,它允许您将一个文件中的标签引用重新用于另一个文件。但我想在图形代码或整个段落中使用它。

为了说明我需要做什么,假设我有一个文件 A.tex,其中我已经定义了一个图形。我还有另一个文件 B.tex。现在我想在 B 中使用相同的图形定义。但是,我想“链接”到 A 中的图形代码;因为如果我在 A 中做了一些更改,我不必再次在 B 中复制和粘贴所有内容。此外,我想对段落执行此操作。这有点像引用前一个文件。

可以使用 LaTeX 吗?你建议我做什么?

编辑:

我需要进行“复制和粘贴”,将主文档中的文本和图片添加到第二个文档中。这些参考文献应该有相同数量的图片、相同的参考书目等。这就是为什么我说我需要类似的东西xr

我尝试使用\include\input查看它是否可读。但是,我遇到了另一个问题。第二个文档中没有保留图表和参考文献的数量。\include为每个文档创建新编号。但我需要保留与原始文档相同的编号。

有没有办法自动完成“复制和粘贴”?

答案1

standalone软件包非常适合此类任务。正如在关于 LaTeX 中的 \include使用以下内容作为图表:

\documentclass[preview=false]{standalone}

然后,在你需要这个图的地方,你就可以得到\input这个图。提供了一个很好的例子这里

这也允许您微调图形并根据需要重复使用它。这是一个例子。将以下内容保存为Ellipse.tex

\documentclass{standalone}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}

\coordinate (EllipseOrigin) at (0,0);
\newcommand*{\XRadius}{4.0}
\newcommand*{\YRadius}{3.0}

\draw [blue, thin, ->] (-5,0) -- (5,0) node [right] {$x$};
\draw [blue, thin, ->] (0,-4) -- (0,4) node [above] {$y$};

\draw [red, ultra thick]% Graph Ellipse
    (EllipseOrigin) ellipse [x radius=\XRadius,y radius=\YRadius];

\end{tikzpicture}
\end{document}

然后你想在哪里使用它:

\documentclass{article}
\usepackage{standalone}
\usepackage{tikz}

\begin{document}
Here is the graph of an ellipse:

\input{Ellipse}
\end{document}

如果您想要完全相同的内容(相同的图形编号),您应该考虑使用pdfpages

\documentclass{article}
\usepackage{pdfpages}

\begin{document}
\includepdf{Ellipse}
\end{document}

答案2

您可以将需要在多个文档中使用的代码移动到单独的.tex文件中。然后,在每个文档中写入

\input{something.tex}

要不就

\input{something}

在您想要包含.tex文件的确切位置。\input将导致 TeX 读取文件并将其内容视为直接写入而不是\input。如果您了解 C 或 C++,那么\input这与预处理器指令非常相似#include

答案3

您可以将任何想要重复使用的代码放入您自己的包中,并将其命名为mypackage.sty,然后使用将其包含在相关文档中\usepackage{mypackage.sty}

以下是 MWE 示例:

我的包.sty

\def\myfigure{\begin{figure}[!h]%
\centering%
\rule{30pt}{20pt}%
\end{figure}%
 }
 \def\myparagraph{%
 Your paragraph text goes here.%
 }

文档.tex

 \documentclass{article}
 \usepackage{mypackage}

 \begin{document}

 hello world

 \myfigure

 \myparagraph
 \end{document}

请注意,如果您计划在位于不同目录中的文档中使用mypackage.sty,则必须将其放在TeX知道要查找它的地方。

相关内容