我想知道是否有办法可以重用代码,例如将一个文件中写入另一个文件中的一个图形。
我想使用类似于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
知道要查找它的地方。