我正在使用 Overleaf 编辑一些文件。
是否可以在 LaTeX 中设置将文件各部分链接到另一个文件的命令?我的意思是将一个文件内的所有内容复制到{}
同一项目下的另一个外部文件中(在那里应用所有更改,这样我就不需要将该部分复制并粘贴到第二个文件中)?
例如,我有两个.tex
文件,分别名为A.tex
和B.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.tex
和B.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