Un ejemplo:
Sin el amsmath
paquete:
El
equation
entorno numera la ecuación automáticamente.El
align
entorno no se puede ejecutar.
Con el amsmath
paquete:
align
yequation
trabajar sin problemas en la numeración de ecuaciones: puedo usarloequation
para escribir mis dos primeras ecuaciones yalign
mi tercera ecuación, y Latex seguirá numerándolas correctamente.
Mis preguntas son:
¿El código del comando
equation
después de cargar elamsmath
paquete sigue siendo el mismo que antes de cargarlo?Además, si este es el caso, entonces, en general, ¿la carga de diferentes paquetes puede causar conflictos? ¿Y cómo lo evitamos?
Respuesta1
Todos pueden redefinir comandos o entornos. Semejante redefinición cambia el código. Esto puede provocar conflictos o efectos secundarios no deseados. Pero normalmente los escritores de paquetes saben esto y tratan de evitar tales conflictos; después de todo, nadie está obligado a usar un paquete que no se comporta y rompe otro código.
\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}
Respuesta2
Un paquete puede redefinir cualquier parte del látex y producir resultados arbitrarios.
Por ejemplo guarda esto comozzz.sty
\everypar{}
BOO!
\stop
y añadir
\usepackage{zzz}
a cualquier documento de látex.
El hecho de que equation
y align
se numeren en secuencia no requiere una redefinición de ninguno de los entornos, este documento define un nuevo entorno zzz
que se numera en la misma secuencia pero no redefine ni equation
o 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}
Los paquetes pueden tener conflictos irreconciliables si el paquete a se define \zzz
como rojo y el paquete b se define \zzz
como azul, entonces claramente no se pueden tener ambos paquetes funcionando al mismo tiempo. Si carga ambos paquetes según los detalles de implementación, es posible que obtenga un error o que aparezca rojo o azul según el orden de carga del paquete. Depende del autor del documento cargar los paquetes necesarios y no cargar paquetes que entren en conflicto.