antoshka1303 писал(а):
у меня если в формуле стоит =, то переноситься как должно? по правилу математики равно должно остатья на верхней строчке справа и на нижней строчки слева
Код:
\documentclass{article}
\xdef\LastDeclaredEncoding{T2A}% Это если МиКТеХ последний, там бага такая есть...
\usepackage[cp1251]{inputenc}% koi-8r можно по вкусу :-)
\usepackage[T2A]{fontenc}
\usepackage[russian]{babel}
%Переносы математики
\begingroup
\catcode`\+\active\gdef+{\mathchar8235\nobreak\discretionary{}%
{\usefont{OT1}{cmr}{m}{n}\char43}{}}
\catcode`\-\active\gdef-{\mathchar8704\nobreak\discretionary{}%
{\usefont{OMS}{cmsy}{m}{n}\char0}{}}
\catcode`\=\active\gdef={\mathchar12349\nobreak\discretionary{}%
{\usefont{OT1}{cmr}{m}{n}\char61}{}}
\catcode`\<\active\gdef<{\mathchar"313C\nobreak\discretionary{}%
{\usefont{OML}{cmm}{m}{n}\char60}{}}
\catcode`\>\active\gdef>{\mathchar"313E\nobreak\discretionary{}%
{\usefont{OML}{cmm}{m}{n}\char62}{}}
\endgroup
\def\times{\mathchar8706\nobreak\discretionary{}{\usefont{OMS}{cmsy}{m}{n}\char
2}{}}
\def\subset{\mathchar"321A\nobreak\discretionary{}%
{\usefont{OMS}{cmsy}{m}{n}\char26}{}}
%\supset,\subseteq,\notin
\def\neq{\not=\nobreak\discretionary{}%
{\usefont{OMS}{cmsy}{m}{n}\char54\usefont{OT1}{cmr}{m}{n}\char61}{}}
\def\sim{\mathchar"3218\nobreak\discretionary{}%
{\usefont{OMS}{cmsy}{m}{n}\char24}{}}
\def\in{\mathchar"3232\nobreak\discretionary{}%
{\usefont{OMS}{cmsy}{m}{n}\char50}{}}
\def\to{\mathchar"3221\nobreak\discretionary{}%
{\usefont{OMS}{cmsy}{m}{n}\char33}{}}
%Конец переносов математики
\usepackage{amsmath}
\begin{document}
%Восстанавливаем после amsmath
\begingroup \catcode`"=12
\gdef\newmcodes@{\mathcode`\'39\mathcode`\*42\mathcode`\."613A%
\mathcode`\-"8000\mathcode`\/47\mathcode`\:"603A\relax}%
\endgroup
\mathcode`\=="8000 \mathcode`\+="8000 \mathcode`\-="8000
\mathcode`\<="8000 \mathcode`\>="8000
%Это для проверки, у меня все замечательно переносится, кроме \neq
\parbox{.3cm}{$x-1$ $x+1$ $x=1$ $x>1$ $x<1$ $x\in X$ $x\times x$ $x\subset x$
$x\sim x$ $x\to x$}
\end{document}
Код:
\def\?#1{#1\nobreak\discretionary{}{\hbox{$\mathsurround=0pt #1$}}{}}
Теперь в формулах можно писать, напр.
Код:
$a\?+b$, $A\?\subset B$
и пр. (т.е.
после \? - символ, который надо бы перенести. При этом если формула
оказывается
в середине строки, то знак не дублируется, а дублируется только при переносе