2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Перенос знаков в Latex
Сообщение06.02.2013, 09:11 
Подскажите как переносить знаки, например есть формула a+b=c, если она не убирается то латех автоматом переносит букву c на другую строчку без =, как сделать чтобы знак = был и в верхней и нижней строчках одновременно?
Спасибо заранее за исчерпывающий ответ )

 
 
 
 Re: Перенос знаков в Latex
Сообщение06.02.2013, 11:42 
Аватара пользователя
код: [ скачать ] [ спрятать ]
Используется синтаксис LaTeX
\documentclass[a4paper,10pt]{amsart}

\xdef\LastDeclaredEncoding{T2A}

% Подключаем всякие пакеты.

...

% Переносы математики.
\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}\char2}{}}
\def\subset{\mathchar"321A\nobreak\discretionary{}{\usefont{OMS}{cmsy}{m}{n}\char26}{}}
%\supset,\subseteq,\notin
\def\supset{\mathchar"321B\nobreak\discretionary{}{\usefont{OMS}{cmsy}{m}{n}\char27}{}}
\def\subseteq{\mathchar"3212\nobreak\discretionary{}{\usefont{OMS}{cmsy}{m}{n}\char18}{}}
\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}{}}
\def\?#1{#1\nobreak\discretionary{}{\hbox{$\mathsurround=0pt #1$}}{}}
% Конец переносов математики.

...

\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

% Тело документа.

...

\end{document}
Команда \? предназначена для переноса тех символов, которые не попали в список: если поставить её перед тем символом, на котором возник перенос, то он будет повторен на второй строчке. Например, если Вы написали a+b=c, и возник перенос
a+b=
c,
то можно написать a+b\?=c, и тогда перенос будет выглядеть как
a+b=
=c,
но знак равенства в списке есть, так что он будет переноситься как надо и без этой команды.
Список можно расширять.

 
 
 
 Re: Перенос знаков в Latex
Сообщение06.02.2013, 12:36 
Огромное Вам человеческое СПАСИБО!

 
 
 [ Сообщений: 3 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group