当我在 amsmath 和 hyperref 之间加载 minted 包时,我的环境中的方程编号似乎被破坏了。
\usepackage{amsmath}
\usepackage{minted}
\usepackage{hyperref}
\newenvironment{hop}[1]{\equation#1\endequation\align}{\endalign}
\begin{document}
\begin{hop}{ a + b = c }
c - a = b\\
c - b = a
\end{hop}
\end{document}
是什么原因导致了这种现象?我怎样才能恢复每行一个数字?
当 minted 在其他地方加载时不会出现此行为,但我无法minted
在之后加载,hyperref
因为csquotes
它位于中间,我无法minted
在之前加载,amsmath
因为amsmath
它是我需要使用的类的一部分。
用硬编码公式替换参数不会改变任何东西。
问题似乎来自环境equation
,但这似乎最适合我的需求。
答案1
该minted
包与问题无关:问题在于如何lineno
重新定义equation
。处理amsmath
变得混乱。
解决方案:
\documentclass{article}
\usepackage{amsmath}
\usepackage{lineno}
\newenvironment{hop}[1]{\begin{equation}#1\end{equation}\align}{\endalign}
\begin{document}
\begin{hop}{ a + b = c }
c - a &= b+abc+de \\
c - b &= a
\end{hop}
\end{document}
答案2
我建议使用environ
包来设置它。它对内部环境的干扰较少。
\documentclass{article}
\usepackage{amsmath,environ}
\usepackage{minted}
\usepackage{hyperref}
\NewEnviron{hop}[1]{\begin{equation}#1\end{equation}\begin{align}\BODY\end{align}}
\begin{document}
\begin{hop}{ a + b = c }
c - a = b\\
c - b = a
\end{hop}
\end{document}
顺便说一句,您没有&
在正文中指定任何对齐点。