宏:如何使用 LaTeX 中的命令在外部文件中的 {} 内应用相同的编辑

宏:如何使用 LaTeX 中的命令在外部文件中的 {} 内应用相同的编辑

我正在使用 Overleaf 编辑一些文件。

是否可以在 LaTeX 中设置将文件各部分链接到另一个文件的命令?我的意思是将一个文件内的所有内容复制到{}同一项目下的另一个外部文件中(在那里应用所有更改,这样我就不需要将该部分复制并粘贴到第二个文件中)?

例如,我有两个.tex文件,分别名为A.texB.tex。我期望的是,如果A.tex我有:

\documentclass{article}
\newcommand\MycommandA[1]{\textcolor{red}{#1}}
\begin{document}

\MycommandA{This is a text}

\end{document}

并且B.tex我有

\documentclass{article}
\newcommand\MycommandA[1]{\textcolor{red}{#1}}
\begin{document}

\MycommandA{This is text}

\end{document}

因此,我希望如果我更改为\MycommandA{This is a text},LaTeX 会自动应用相同的更改。A.tex\MycommandA{This is a book}B.tex

答案1

许多桌面编辑器支持多文件编辑,但我不认为 Overleaf 支持,这实际上不是一个 Latex 问题,因为 Latex 从不编辑其源代码。

一种 Latex 方法是将任何共享文本或命令文本放在一个文件中,如下例所示。

我的命令.tex

\newcommand\MycommandA[1]{\textcolor{red}{#1}}
\newcommand\textA{This is a shared text}

对于较小的片段,This is a shared text使用上述命令会比较方便。对于较大的片段(例如整个部分),您可以使用单独的文件。

然后文本只会出现在一个地方,并且你的A.texB.tex看起来像

特克斯

\documentclass{article}
\input{mycommands}
\begin{document}

\section{Intro for A}% not shared

\MycommandA{\textA}% shared

\MycommandA{Text just in A but using the shared command}

\input{sharedsec}% shared
\end{document}

巴氏杆菌

\documentclass{report}
\input{mycommands}
\begin{document}

\section{Intro for B}% not shared

\MycommandA{\textA}% shared

Some text just in B.

\input{sharedsec}% shared
\end{document}

共享安全

\section{Something}
This text just appears once in the source but appears in A and B

相关内容