Makro: So wenden Sie mit einem Befehl in LaTeX dieselben Änderungen innerhalb eines {} in externen Dateien an

Makro: So wenden Sie mit einem Befehl in LaTeX dieselben Änderungen innerhalb eines {} in externen Dateien an

Ich verwende Overleaf, um einige Dateien zu bearbeiten.

Ist es in LaTeX möglich, einen Befehl festzulegen, der Teile einer Datei mit einer anderen verknüpft? Ich meine, genau alles innerhalb einer Datei {}in eine andere externe Datei im selben Projekt zu kopieren (alle Änderungen dort anzuwenden, sodass ich diesen Abschnitt nicht in die zweite Datei kopieren und einfügen muss)?

Ich habe beispielsweise zwei .texDateien mit den Namen A.texund B.tex. Ich erwarte, dass in A.texFolgendes enthalten ist:

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

\MycommandA{This is a text}

\end{document}

und in B.texich habe ist wie

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

\MycommandA{This is text}

\end{document}

Ich möchte also, dass wenn ich \MycommandA{This is a text}in A.texändere \MycommandA{This is a book}, LaTeX automatisch die gleiche Änderung in anwendet B.tex.

Antwort1

Viele Desktop-Editoren unterstützen die Bearbeitung mehrerer Dateien, aber ich glaube nicht, dass Overleaf dies tut. Es ist nicht wirklich eine Latex-Frage, da Latex seinen Quellcode nie bearbeitet.

Eine Latex-Methode wäre, alle gemeinsam genutzten Texte oder Befehlstexte in nur einer Datei zu haben, wie im folgenden Beispiel.

meinebefehle.tex

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

Für kleine Fragmente wie diese This is a shared textist es praktisch, einen Befehl wie oben zu verwenden. Für größere Fragmente wie einen ganzen Abschnitt können Sie eine separate Datei verwenden.

Dann erscheint der Text nur an einer Stelle und Ihr A.texund B.texkann aussehen wie

A.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}

B.tex

\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

verwandte Informationen