Ein Beispiel:
Ohne das amsmath
Paket:
Die
equation
Umgebung nummeriert die Gleichung automatisch.Die
align
Umgebung kann nicht ausgeführt werden.
Mit dem amsmath
Paket:
align
undequation
nahtlos beim Nummerieren von Gleichungen arbeiten: Ich kannequation
zum Schreiben meiner ersten beiden Gleichungen undalign
zum Schreiben meiner dritten Gleichung verwenden, und Latex wird sie trotzdem korrekt nummerieren.
Meine Fragen sind:
Ist der Code für den Befehl
equation
nach dem Laden desamsmath
Pakets noch derselbe wie vor dem Laden des Pakets?Wenn dies der Fall ist, kann das Laden unterschiedlicher Pakete dann im Allgemeinen zu Konflikten führen? Und wie können wir dies vermeiden?
Antwort1
Jeder kann Befehle oder Umgebungen neu definieren. Eine solche Neudefinition ändert den Code. Dies kann zu Konflikten oder unerwünschten Nebeneffekten führen. Normalerweise wissen Paketautoren dies jedoch und versuchen, solche Konflikte zu vermeiden – schließlich ist niemand gezwungen, ein Paket zu verwenden, das sich nicht verhält und anderen Code beschädigt.
\documentclass{article}
\usepackage{xcolor}
\begin{document}
\begin{equation}
x=4
\end{equation}
\renewenvironment{equation}
{\par\color{red}\Huge\centering}
{\par}
\begin{equation}
x=4
\end{equation}
\end{document}
Antwort2
Ein Paket kann jeden Teil von Latex neu definieren und beliebige Ergebnisse produzieren.
Speichern Sie dies beispielsweise alszzz.sty
\everypar{}
BOO!
\stop
und füge hinzu
\usepackage{zzz}
zu jedem Latex-Dokument.
Die Tatsache, dass die equation
und align
in Folge nummeriert sind, erfordert keine Neudefinition der einen oder der anderen Umgebung. Dieses Dokument definiert eine neue Umgebung, zzz
die in der gleichen Folge nummeriert, aber weder noch neu equation
definiert align
.
\documentclass{article}
\usepackage{amsmath}
\newenvironment{zzz}
{\par\refstepcounter{equation} \fbox{this is \theequation zzz}}
{zzz ends here\par}
\begin{document}
equation
\begin{equation}
1=1
\end{equation}
zzz
\begin{zzz}
qqq
\end{zzz}
align
\begin{align}
a&=1\\
b&=2
\end{align}
\end{document}
Pakete können unüberbrückbare Konflikte aufweisen. Wenn Paket A \zzz
als rot und Paket B \zzz
als blau definiert ist, können Sie offensichtlich nicht beide Pakete gleichzeitig ausführen. Wenn Sie beide Pakete laden, kann je nach Implementierungsdetails ein Fehler auftreten oder Sie erhalten je nach der Reihenfolge, in der die Pakete geladen werden, Rot oder Blau. Es liegt am Autor des Dokuments, die benötigten Pakete zu laden und keine Pakete zu laden, die miteinander in Konflikt stehen.