23

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

我正在使用 LyX 1.6.4,目前,当公式太大时,它什么也不做(它只是不打印它的最后一部分,即“超出”页面)。

这在 LyX 中可行吗?

4

7 回答 7

5

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

查看:

  1. 如何在我的长 LaTeX 方程中有换行符?
  2. 乳胶多线方程

Lyx 有一个“插入 -> 数学 -> AMS 多线环境”控件,或者您可以通过使用插入 Latex 控件直接输入 Latex 来使用上面推荐的解决方案。

关于 breqn 的注意事项

Michael Downes 用这个包做了一些非凡的 Tex 编码,但它对于一般用途来说不够健壮 - 例如,它与 Amsmath 大多不兼容,以难以理解的方式中断,并且在公式中产生了一些明显不合理的换行符。

显示公式中的自动换行被列为Tex 中最重要的开放研究问题之一

于 2010-05-25T13:06:29.680 回答
4

如果您在 LyX“LaTeX 序言”(加上以下代码)中包含 \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 月 8 日:

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

\DeclareRobustCommand\[{\begin{equation*}}
\DeclareRobustCommand\]{\end{equation*}}
于 2011-08-19T15:49:21.140 回答
3

你可能想试试这个breqn包。它为大公式提供自动换行。这样就无需手动修复分隔符或选择断点。当然,这不是真正的 LyX 功能,但它完全符合您的要求。

于 2010-05-26T16:36:09.913 回答
1

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

写下你的方程,然后在你想分割的地方点击“Ctrl+Enter”然后右键点击方程并选择数字整个公式

于 2019-08-07T21:20:45.733 回答
0

最近我不得不处理同样的问题。我的简单解决方案(不知道是否最好)是对多行使用 ctrl+enter,对于括号问题,您可以在括号、括号和大括号之后使用按钮,这将打开一个包含这些和许多其他内容的窗口选项,重要的是,同时有不同选择的选项,(像这样}。特别是,你可以选择“无”,每行只有“(”或“)”,(像 +/this ) 希望能帮助到你。

于 2014-01-16T11:45:21.370 回答
0

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

在 LyX "LaTeX Preamble" 中放入以下内容

\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) 围绕方程( s) 使用 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 并看到长方程由 breqn “自动”处理。未包含在 dmath 或 dgroup 中的方程不会受到影响。

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

于 2015-03-10T13:18:07.943 回答
0

我知道这有点老了,但有人可能仍然需要这些信息,就像我不久前一样。我最近遇到了类似的问题,中间打断了一条编号线。(lyx 2.04 及更高版本)。我使用了 lyx eqn 数组。将方程式全部放入 eqn 数组的右侧框中(其中有两个) 在要打破方程式的位置,按 CTRL+Enter。这会将您的方程式分成两行。如果您有一个编号的方程式数组,请使用以下命令切换上面的行: Alt+M Shift+N 以删除方程式编号,两行上只有一个方程式。

于 2017-05-03T21:48:59.163 回答