换行 binoppenalty 不起作用

换行 binoppenalty 不起作用
\documentclass[10pt]{book}
\usepackage{tikz}
\usepackage{graphicx}
\usepackage{pgf,pgfplots}
\usepackage[utf8]{inputenc}
\usepackage[romanian]{babel}
\usepackage[paperwidth=15.5cm, paperheight=23.5cm, margin=2cm]{geometry}
\usepackage{amsthm,amssymb}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{rmathbr}
\usepackage{float}
\usetikzlibrary{math,arrows,positioning,shapes,fit,calc}
\pgfplotsset{compat=1.15}
\usepackage{mathrsfs}
\usepackage{xcolor}
\usepackage{enumitem}
\binoppenalty=10000
\relpenalty=10000
\begin{document}

s\\
\textit{Demonstra\c tie.} Demonstr\u am doar prima egalitate, c\u aci a doua e analoag\u a. Cum $f:A\to B$ \c si $1_A:A\to A$ rezult\u a c\u a func\c tiile $f\circ 1_A$ \c si $f$ au acela\c si domeniu de defini\c tie $A$ \c si acela\c si codomeniu $B$. Pentru orice $x\in A$, $(f \circ 1_A)(x)=f(1_A(x))=f(x)$, deci func\c tiile $f \circ 1_A$ \c si $f$ au \c si aceea\c si lege de asociere. \^In concluzie, $f\circ 1_A=f$.
\end{document}

上面的代码生成了一个小段落,包含在我正在处理的数学 LaTeX 文档中。问题在于,在生成的 PDF 的第三行,数学被分成了两行。如您所见,我包含了 \binoppenalty 和 \relpenalty,但它们不起作用。请帮助我停止内联数学中这种不必要的换行。提前致谢!

答案1

只需将数学公式包含在 {} 内即可。对于您的情况,请将其替换$(f \circ 1_A)(x)=f(1_A(x))=f(x)$${(f \circ 1_A)(x)=f(1_A(x))=f(x)}$

\documentclass[10pt]{book}
\usepackage{tikz}
\usepackage{graphicx}
\usepackage{pgf,pgfplots}
\usepackage[utf8]{inputenc}
\usepackage[romanian]{babel}
\usepackage[paperwidth=15.5cm, paperheight=23.5cm, margin=2cm]{geometry}
\usepackage{amsthm,amssymb}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{rmathbr}
\usepackage{float}
\usetikzlibrary{math,arrows,positioning,shapes,fit,calc}
\pgfplotsset{compat=1.15}
\usepackage{mathrsfs}
\usepackage{xcolor}
\usepackage{enumitem}
\binoppenalty=10000
\relpenalty=10000
\begin{document}

s\\
\textit{Demonstra\c tie.} Demonstr\u am doar prima egalitate, c\u aci a doua e analoag\u a. Cum $f:A\to B$ \c si $1_A:A\to A$ rezult\u a c\u a func\c tiile $f\circ 1_A$ \c si $f$ au acela\c si domeniu de defini\c tie $A$ \c si acela\c si codomeniu $B$. Pentru orice $x\in A$, ${(f \circ 1_A)(x)=f(1_A(x))=f(x)}$, deci func\c tiile $f \circ 1_A$ \c si $f$ au \c si aceea\c si lege de asociere. \^In concluzie, $f\circ 1_A=f$.
\end{document}

结果:

在此处输入图片描述

答案2

您正在使用rmathbr,其目的是启用“俄罗斯风格”数学排版,其中可以在操作和关系符号后中断,并在下一行重复该符号。

您可以通过重新定义包的内部宏来禁用二元运算符号的功能,而保留关系的功能。

另一方面,由于你似乎更喜欢绝不操作或关系符号后休息一下,就可以摆脱rmathbr并设置高额惩罚。

\documentclass[10pt]{book}
\usepackage{tikz}
\usepackage{graphicx}
\usepackage{pgf,pgfplots}
\usepackage[utf8]{inputenc}
\usepackage[romanian]{babel}
\usepackage[paperwidth=15.5cm, paperheight=23.5cm, margin=2cm]{geometry}
\usepackage{amsthm,amssymb}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{rmathbr}
\usepackage{float}
\usetikzlibrary{math,arrows,positioning,shapes,fit,calc}
\pgfplotsset{compat=1.15}
\usepackage{mathrsfs}
\usepackage{xcolor}
\usepackage{enumitem}
\binoppenalty=10000
%\relpenalty=10000 <--- does nothing with rmathbr

\makeatletter
\renewcommand\rmathbr@brokenbin[1]{#1}
\makeatother

\begin{document}

\noindent
\textit{Demonstrație.} Demonstrăm doar prima egalitate, căci a doua e analoagă. 
Cum $f:A\to B$ și $1_A:A\to A$ rezultă că funcțiile $f\circ 1_A$ și $f$ au 
același domeniu de defini\c tie $A$ și același codomeniu $B$. Pentru orice 
$x\in A$, $(f \circ 1_A)(x)=f(1_A(x))=f(x)$, deci funcțiile $f \circ 1_A$ și $f$ 
au și aceeași lege de asociere. În concluzie, $f\circ 1_A=f$.

\end{document}

我还展示了你可以输入罗马尼亚字符本身(输出将在字母 s 和 t 下方有逗号)。

在此处输入图片描述

相关内容