期刊通常需要在审阅过程中添加行号。这是使用包实现的。接下来,使用包(环境)自动拆分长公式lineno
似乎是个好主意。breqn
dmath
dmath
但是,如果不在环境(\begin{nolinenumbers}
,\end{nolinenumbers}
)之前关闭行号,则会导致pdftex
挂起(它只会消耗 100% 的 CPU,并且编译永远不会完成)。
- 为什么会发生这种情况?
如何重新定义
dmath
(和dmath*
)环境以nolinenumbers
在其周围自动添加环境。\documentclass[twocolumn,12pt]{article} \usepackage{breqn} \usepackage{lineno} \begin{document} \linenumbers First paragraph. \begin{nolinenumbers} \begin{dmath} f(x)=x^9+x^8-x^7+x^6-x^5-x^4-x^3+x^2-x+1. \end{dmath} \end{nolinenumbers} \end{document}
答案1
加载etoolbox
时间breqn
:
\documentclass[twocolumn,12pt]{article}
\usepackage{etoolbox}
\usepackage{breqn}
\usepackage{lineno}
\BeforeBeginEnvironment{dmath}{\begin{nolinenumbers}}%
\AfterEndEnvironment{dmath}{\end{nolinenumbers}}
\begin{document}
\linenumbers
First paragraph.
%\begin{nolinenumbers}
\begin{dmath}
f(x)=x^9+x^8-x^7+x^6-x^5-x^4-x^3+x^2-x+1.
\end{dmath}
%\end{nolinenumbers}
Second Paragraph
\end{document}
答案2
手册lineno
指出它“与显示数学配合得不好”(第 13 页)。一种方法是将方程式包装在环境中,linenomath
以适应常见的数学环境,但这对 不起作用dmath
。因此,我们可以使用etoolbox
patchdmath
自动排除行号(对于 也同样如此dmath*
)。
\documentclass[twocolumn,12pt]{article}
\usepackage{etoolbox}
\usepackage{breqn}
\usepackage{lineno}
\BeforeBeginEnvironment{dmath}{\begin{nolinenumbers}}
\AfterEndEnvironment{dmath}{\end{nolinenumbers}}
\BeforeBeginEnvironment{dmath*}{\begin{nolinenumbers}}
\AfterEndEnvironment{dmath*}{\end{nolinenumbers}}
\begin{document}
\linenumbers
First paragraph.
\begin{dmath}
f(x)=x^9+x^8-x^7+x^6-x^5-x^4-x^3+x^2-x+1.
\end{dmath}
Second paragraph
\begin{dmath*}
f(x)=x^9+x^8-x^7+x^6-x^5-x^4-x^3+x^2-x+1.
\end{dmath*}
\end{document}
加载etoolbox
后breqn
仔细阅读错误消息,发现etoolbox
无法修补\end
,因此\AfterEndEnvironment
无法工作。似乎存在不兼容性(可能breqn
也修补了某些东西)。所以只需加载 etoolbox
之前的内容即可。