我有很长的方程式,希望 LaTeX 自动将其拆分。经过一番搜索,我还是无法找到实现此效果的方法。我breqn
的软件包列表中有这个功能,但它不会拆分我在环境或数学模式(或标题模式)中拥有的方程式equation
。例如,它不会拆分:
A[A, k_a](M(\Box_0)) | I[k_a, d_k] | R(K[K, d_k, x]) \rightarrowtriangle A[A,k_a](M(\Box_0 | T[k_t])) | I[k_a,d_k] | I[k_t, d_k] | R(K[K,d_k,x])
我认为这意味着我想添加和\mathpunct
符号,并且只允许深度一的中断。但是我实际上无法做到这一点。我不知道如何使用命令或找到或的符号编号。\rightarrowtriangle
|
\mathpunct
\rightarrowtriangle
|
编辑:
一个最小的工作示例:
\documentclass{report}
\usepackage{stmaryrd}
\usepackage{amssymb}
\usepackage{breqn}
\begin{document}
\begin{dmath}
A[A, k_a](M(\Box_0)) | I[k_a, d_k] | R(K[K, d_k, x]) \rightarrowtriangle A[A,k_a](M(\Box_0 | T[k_t])) | I[k_a,d_k] | I[k_t, d_k] | R(K[K,d_k,x])
\end{dmath}
\end{document}
答案1
\rightarrowtriangle
以能够理解的方式进行定义breqn
;然后添加一层支撑并告知breqn
仅在 0 级处断开。我用过\mid
,也许你更喜欢\vert
垂直线。
\documentclass{report}
\usepackage{amssymb,amsmath}
\usepackage{breqn}
\usepackage{stmaryrd}
\makeatletter
\ExplSyntaxOn
\cs_gset:cpx{mg@stmry}{\hexnumber@\symstmry}%
\DeclareFlexSymbol{\rightarrowtriangle}{Rel}{stmry}{5F}
\makeatother
\ExplSyntaxOff
\begin{document}
\begin{dmath}[breakdepth=0]
\left.
A[A, k_a](M(\Box_0)) \mid I[k_a, d_k] \mid R(K[K, d_k, x])
\right.
\rightarrowtriangle
\left.
A[A,k_a](M(\Box_0 \mid T[k_t])) \mid I[k_a,d_k] \mid I[k_t, d_k] \mid R(K[K,d_k,x])
\right.
\end{dmath}
\end{document}
实际上应该有一个stmaryrd.sym
文件可以将 的定义转换stmaryrd.sty
为 的有用内容breqn
。目前还没有。
这样的例子证实了我的观点:尝试自动完成方程式中的换行是一个坏主意。
该breqn
包不喜欢|
;应该使用\vert
、\lvert
或,具体取决于条形的数学含义。在这种情况下,应该使用\rvert
;好吧,如果这样做并对 做出正确的定义,结果如下:\mid
\mid
\rightarrowtriangle
这显然是不可接受的。如果使用\vert
,则不能中断。这将“自动”起作用:
\documentclass{report}
\usepackage{amssymb}
\usepackage{breqn}
\usepackage{stmaryrd}
\makeatletter
\ExplSyntaxOn
\cs_gset:cpx{mg@stmry}{\hexnumber@\symstmry}%
\DeclareFlexSymbol{\rightarrowtriangle}{Rel}{stmry}{5F}
\makeatother
\ExplSyntaxOff
% breqn doesn't like |
\newcommand{\OR}{\hiderel{\mid}}
\begin{document}
\begin{dmath}
A[A, k_a](M(\Box_0)) \OR I[k_a, d_k] \OR R(K[K, d_k, x])
\rightarrowtriangle
A[A,k_a](M(\Box_0 \OR T[k_t])) \OR I[k_a,d_k] \OR I[k_t, d_k] \OR R(K[K,d_k,x])
\end{dmath}
\end{document}
并产生
我问自己,与写作相比,优势在哪里
\begin{equation}
\begin{aligned}
& A[A, k_a](M(\Box_0)) \mid I[k_a, d_k] \mid R(K[K, d_k, x]) \\
& \quad {} \rightarrowtriangle
A[A,k_a](M(\Box_0 \mid T[k_t])) \mid I[k_a,d_k] \mid I[k_t, d_k] \mid R(K[K,d_k,x])
\end{aligned}
\end{equation}
产生本质上相同的结果。