
Я использую 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}
на A.tex
LaTeX \MycommandA{This is a book}
автоматически применил то же изменение в B.tex
.
решение1
Многие настольные редакторы поддерживают редактирование нескольких файлов, но я не думаю, что Overleaf это делает; это не совсем вопрос 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}
sharedsec.tex
\section{Something}
This text just appears once in the source but appears in A and B