内联数学换行符是否可能:下一行有重复的符号?

内联数学换行符是否可能:下一行有重复的符号?

在某些印刷惯例中,当出现换行符时,习惯上会重复二进制数学运算符号。例如,如果a + b = c在 处换行+,则结果将a +在第一行和第二行。逻辑连接词 ( ) 和二进制关系符号 ( ) 以及多个箭头 ( )+ b = c也会发生重复。\Longrightarrow=xrightarrow

二进制减号 是个例外。例如,在第一行a – b = c会变成,在第二行会变成 。a +– b = c

问题:有没有办法在全球范围内实现这样的突破但仅适用于内联数学以自动的方式?

如果您选择回答这个问题,这里有一个 MWE,它可能会经过测试,可以正常工作。

\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[LGR,T1]{fontenc}
\usepackage[english]{babel}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage{mathtools}
\usepackage{titlesec}
\usepackage[pdftex]{graphicx}
\usepackage{parskip}
\usepackage[a4paper]{geometry}

%Solution code might go here%

\begin{document}

$a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a$

$b-b-b-b-b-b-b-b-b-b-b-b-b-b-b-b-b-b-b-b-b-b-b-b-b-b-b-b-b-b-b-b-b-b-b-b-b$

$c=c=c=c=c=c=c=c=c=c=c=c=c=c=c=c=c=c=c=c=c=c=c=c==c=c=c=c=c=c=c=c=c=c=c=c=c$

$d\Longrightarrow d\Longrightarrow d\Longrightarrow d\Longrightarrow d\Longrightarrow d\Longrightarrow d\Longrightarrow d\Longrightarrow d\Longrightarrow d\Longrightarrow d\Longrightarrow d\Longrightarrow d\Longrightarrow d\Longrightarrow d\Longrightarrow d\Longrightarrow d\Longrightarrow d\Longrightarrow d\Longrightarrow d\Longrightarrow d\Longrightarrow d\Longrightarrow d\Longrightarrow d$

$e\xrightarrow{n\to\infty} e\xrightarrow{n\to\infty} e\xrightarrow{n\to\infty} e\xrightarrow{n\to\infty} e\xrightarrow{n\to\infty} e\xrightarrow{n\to\infty} e\xrightarrow{n\to\infty} e\xrightarrow{n\to\infty} e\xrightarrow{n\to\infty} e\xrightarrow{n\to\infty} e\xrightarrow{n\to\infty} e\xrightarrow{n\to\infty} e$

\end{document}

注意:$$-s 是故意使用的。另外:如果这很重要,我会使用 pdfLaTeX。(加载的包并不重要,但确实可以作为某种选择。如果提出的解决方案不会干扰常用包,那就太理想了)。


A上一个问题=只考虑了对和的执行\leq。有没有更通用的方法,而不必分别指定每个符号?

也有相关,但不那么相关。

答案1

作为建议经过埃格尔,包rmathbr是此处的重点。它为 OP 中提出的大多数问题提供了选项。请务必使用最新版本rmathbr在撰写本文时,这是2020 年 12 月)。

  • 各种错误已修复,例如\coloneqq现在可以工作。
  • 我通常在大多数包之后加载它,但可能的除外bookmarkgeometry以及类似的。
  • 也可以看看:文档。已知问题:withbreqn包。尽管加载 commath 可以使其对称,但Withcommath仍会使其不对称。:= \coloneqq不受影响(工作正常)。

对于许多类型的中断,只需加载包就足够了。答案的其余部分专门用于回答 OP 中需要一些额外代码的特定愿望(第 1、2 和 3 部分)。


  1. 新的关系/操作不是有可变参数

为了获得可破坏的n to infty箭头,请\goesto在序言中定义如下:

\newcommand{\goesto}{\xrightarrow{n\to\infty}}
\SetBreakableRel{\goesto}
  1. 新的关系/操作包含可变参数

为了获得可破坏的a to b箭头(带有ab变量),请\goestoarg在序言中定义如下:

\DeclareRobustCommand{\goestoarg}[2]{\brokenrel{\xrightarrow{#1\to#2}}}

(当然,您可以概括该语法以满足您的需要)。

  1. 获得A对称可破碎减

为了获得a – bbreak up asa –+ b,在序言中添加以下代码:

\makeatletter
\def\minus@char{\mathchar8704}
\def\plus@char{\mathchar8235}
\def\rmathbr@selector#1{%
  \def\x@char{#1}%
  \ifx\x@char\minus@char\def\x@char{\plus@char}\fi%
  \mathchoice
    {\discretionary{}{\hbox{$\m@th\displaystyle\x@char$}}{}}
    {\discretionary{}{\hbox{$\m@th\textstyle\x@char$}}{}}
    {\discretionary{}{\hbox{$\m@th\scriptstyle\x@char$}}{}}
    {\discretionary{}{\hbox{$\m@th\scriptscriptstyle\x@char$}}{}}%
}
\makeatother

以下是 MWE 的输出(见下图):

MWE 的输出


MWE 代码:

\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[LGR,T1]{fontenc}
\usepackage[english]{babel}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage{mathtools}
\usepackage{titlesec}
\usepackage[pdftex]{graphicx}
\usepackage{parskip}
\usepackage{rmathbr} %<- here is package rmathbr
\usepackage[a4paper]{geometry}




%% part 1 code (no variables) %%
\newcommand{\goesto}{\xrightarrow{n\to\infty}}
\SetBreakableRel{\goesto}
%%-------------%%

%%part 2 code (with variables) %% (from Willie Wong)
\DeclareRobustCommand{\goestoarg}[2]{\brokenrel{\xrightarrow{#1\to#2}}}
%%-------------%%

%%part 3 code (breaking – as –+)%% (from dryabov)
\makeatletter
\def\minus@char{\mathchar8704}
\def\plus@char{\mathchar8235}
\def\rmathbr@selector#1{%
  \def\x@char{#1}%
  \ifx\x@char\minus@char\def\x@char{\plus@char}\fi%
  \mathchoice
    {\discretionary{}{\hbox{$\m@th\displaystyle\x@char$}}{}}
    {\discretionary{}{\hbox{$\m@th\textstyle\x@char$}}{}}
    {\discretionary{}{\hbox{$\m@th\scriptstyle\x@char$}}{}}
    {\discretionary{}{\hbox{$\m@th\scriptscriptstyle\x@char$}}{}}%
}
\makeatother
%%-------------%%




\begin{document}

$a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a$

$b-b-b-b-b-b-b-b-b-b-b-b-b-b-b-b-b-b-b-b-b-b-b-b-b-b-b-b-b-b-b-b-b-b-b-b-b$

$c=c=c=c=c=c=c=c=c=c=c=c=c=c=c=c=c=c=c=c=c=c=c=c=c=c=c=c=c=c=c=c=c=c=c=c=c$

$d\Longrightarrow d\Longrightarrow d\Longrightarrow d\Longrightarrow d\Longrightarrow d\Longrightarrow d\Longrightarrow d\Longrightarrow d\Longrightarrow d\Longrightarrow d\Longrightarrow d\Longrightarrow d\Longrightarrow d\Longrightarrow d\Longrightarrow d\Longrightarrow d\Longrightarrow d\Longrightarrow d\Longrightarrow d\Longrightarrow d\Longrightarrow d\Longrightarrow d\Longrightarrow d$

$e\goesto e\goesto e\goesto e\goesto e\goesto e\goesto e\goesto e\goesto e\goesto e\goesto e\goesto e\goesto e$


aasdf asdf asd fasdf asdf  aasdf asdf asd fasdf asdf asdf aasdf asd asdas $eeeeeeeee\goestoarg{a}{b} cccccccccc$ aasdf asdf asd fasdf asdf asdf aasdf asdf asd fasdf asdf asdf

$a \coloneqq b \coloneqq b \coloneqq b \coloneqq b \coloneqq b \coloneqq b \coloneqq b \coloneqq b \coloneqq b \coloneqq b \coloneqq b \coloneqq b \coloneqq b \coloneqq b \coloneqq b \coloneqq b \coloneqq b \coloneqq b \coloneqq b \coloneqq b \coloneqq b \coloneqq b \coloneqq b \coloneqq b \coloneqq b \coloneqq b \coloneqq b \coloneqq b \coloneqq b \coloneqq b \coloneqq b \coloneqq b \coloneqq b \coloneqq b \coloneqq b \coloneqq b \coloneqq b$

\end{document}

最后说明:也可以禁用打破关系/运算符的重复,你不希望这样被打破。我认为语法是\UnsetBrokenCmd{<your operator/relation name>}(恢复到没有的行为rmathbr)。

相关内容