
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 .tex
Dateien mit den Namen A.tex
und B.tex
. Ich erwarte, dass in A.tex
Folgendes enthalten ist:
\documentclass{article}
\newcommand\MycommandA[1]{\textcolor{red}{#1}}
\begin{document}
\MycommandA{This is a text}
\end{document}
und in B.tex
ich 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 text
ist 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.tex
und B.tex
kann 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