LyX - 打破长配方线

时间:2010-05-25 13:00:26

标签: latex lyx

如何将LyX中的长公式分成两行(或更多行)?我知道如何在一个“数学框”中编写几行方程,但我正在寻找一种解决方法,即使在括号中间也能打破线条。

我正在使用LyX 1.6.4,目前,当公式太大时,它没有做任何事情(它只是不打印它的最后一段,这是“超出”页面。)< / p>

这在LyX中是否可行?

7 个答案:

答案 0 :(得分:5)

是的,但你必须手工完成。

退房:

  1. How can I have linebreaks in my long LaTeX equations?
  2. Latex Multiline Equations
  3. Lyx有一个“插入 - &gt;数学 - > AMS多线环境”控件,或者您可以使用Insert Latex控件直接输入Latex来使用上面推荐的解决方案。

    关于breqn的注释

    迈克·唐斯用这个软件包做了一些非常特别的Tex编码,但是它不够强大,不适合一般用途 - 例如,它与Amsmath大部分不兼容,例如,以难以理解的方式打破,并且使得一些明显不合理的换行符在公式中。

    显示公式中的自动换行符列为one of the top open research problems in Tex

答案 1 :(得分:4)

如果在LyX“LaTeX Preamble”(加上以下代码)中包含\ usepackage {breqn},那么标准的“方程式”环境(显示的公式)将自动中断。

% Add support for automatic equation breaking
\gdef\wrap@breqn@environ#1#2{
    \expandafter\let\csname breqn@oldbegin@#1\expandafter\endcsname\csname #1\endcsname
    \expandafter\let\csname breqn@oldend@#1\expandafter\endcsname\csname end#1\endcsname
    \expandafter\gdef\csname breqn@begin@#1\endcsname{%
        \expandafter\let\csname #1\expandafter\endcsname\csname breqn@oldbegin@#1\endcsname%
        \begin{#2}%
    }
    \expandafter\gdef\csname breqn@end@#1\endcsname{%
        \expandafter\let\csname end#1\expandafter\endcsname\csname breqn@oldend@#1\endcsname%
        \end{#2}%
        \expandafter\let\csname #1\expandafter\endcsname\csname breqn@begin@#1\endcsname%
        \expandafter\let\csname end#1\expandafter\endcsname\csname breqn@end@#1\endcsname%
    }
    \expandafter\let\csname #1\expandafter\endcsname\csname breqn@begin@#1\endcsname
    \expandafter\let\csname end#1\expandafter\endcsname\csname breqn@end@#1\endcsname
}
\wrap@breqn@environ{equation}{dmath}
\wrap@breqn@environ{equation*}{dmath*}

已添加2016-12-08:

如果您希望覆盖默认(未编号)LyX方程式环境,则还要添加以下内容:

\DeclareRobustCommand\[{\begin{equation*}}
\DeclareRobustCommand\]{\end{equation*}}

答案 2 :(得分:3)

您可能想尝试breqn包。它为大型配方提供自动换行功能。这样就不需要手动修复分隔符或选择断点。当然,这不是实际的LyX功能,但它完全符合您的要求。

答案 3 :(得分:1)

插入->数学-> AMS多行环境

编写方程式,然后在要拆分的位置单击“ Ctrl + Enter” 然后右键单击方程式,然后选择数字整个方程式

答案 4 :(得分:0)

最近我不得不处理同样的问题。我的简单解决方案(不知道是否最好)是使用ctrl + enter进行多行,对于括号问题,您可以使用括号,括号和括号后面的按钮,这将打开一个窗口,其中包含这些和许多其他选项,更重要的是,可以同时选择不同的选项,(比如这个)。特别是,你可以选择“none”,每行只有“(”或“)”, (喜欢 + /此) 希望它有所帮助。

答案 5 :(得分:0)

我的方式&#34;在lyx&#34;中打破长的公式线是按需使用breqn。该方法在这篇文章中进行了演示。

在LyX&#34; LaTeX Preamble&#34;把以下

\usepackage{amsmath}
\usepackage{etoolbox} 
\usepackage{breqn}

\newcommand{\breqnoverloadothers}
{% 
    \renewenvironment{equation}{\ignorespaces\begin{dmath}}{\end{dmath}\ignorespacesafterend}%
    \renewenvironment{equation*}{\ignorespaces\begin{dmath*}}{\end{dmath*}\ignorespacesafterend}%
    \renewenvironment{multline}{\ignorespaces\begin{dmath}}{\end{dmath}\ignorespacesafterend}%
    \renewenvironment{multline*}{\ignorespaces\begin{dmath*}}{\end{dmath*}\ignorespacesafterend}%

}

\newcommand\breqnundefineothers
{%  
    \renewenvironment{equation}{}{}%
    \renewenvironment{equation*}{}{}%
    \renewenvironment{multline}{}{}%
    \renewenvironment{multline*}{}{}%

}

\AtBeginEnvironment{dmath}{\breqnundefineothers}
\AtBeginEnvironment{dmath*}{\breqnundefineothers}

\AtBeginEnvironment{dgroup}{\def\breqnundefineothers{}\breqnoverloadothers}
\AtBeginEnvironment{dgroup*}{\def\breqnundefineothers{}\breqnoverloadothers}

在Lyx中,对于要应用breqn的长方程,只需1)使用上面已经过载的任何数学环境排版方程式,即方程/方程* / multline / multline *,和2)环绕使用dmath环境或dgroup环境的等式,如:

\begin{dmath}
    hit ctrl+shift+M to insert a long equation here, and number the equation
\end{dmath} 

\begin{dgroup}
    hit ctrl+shift+M to insert a long equation here, and number the equation
    hit ctrl+shift+M again to insert another long equation here, and number the equation
\end{dgroup} 

现在您可以导出为PDF并查看长方程式处理&#34;自动&#34;由breqn。未包含在dmath或dgroup中的方程式不会受到影响。

生成了屏幕截图,但我没有上传它们的10点声誉。

答案 6 :(得分:0)

我知道这有点老了,但有人可能仍然需要这个信息,就像我不久前一样。 我最近遇到了类似的问题,在中间打破了一个数字线。 (lyx 2.04及更高版本)。 我使用了lyx eqn数组。 把等式,所有这些都放到eqn数组的右边框中(有两个) 在您要打破方程式时,请按CTRL + Enter。 这会将您的等式分成两行。 如果您有一个带编号的方程式数组,请将上一行切换为: 按Alt + M Shift + N删除公式编号,在两行上只留下一个公式。