2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 автоматический перенос длинных формул
Сообщение09.10.2007, 21:00 
Аватара пользователя


24/10/05
400
В Львовском написано, что нужно использовать
\binoppenalty=10000
или
\relpenalty=10000
Я у себя пытался сделать также, но у меня никакая длинная формула не стала переносится.Подскажите, в чам может быть проблема?Заранее спасибо! привожу пример
\documentclass[14pt,a4paper]{article}

\textwidth=160mm \textheight=247mm \topmargin=0cm \hoffset=-2,5cm
\voffset=-1cm
\usepackage[russian]{babel}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{mathrsfs}
\usepackage{MnSymbol}
\usepackage[dvips]{graphicx}

\binoppenalty
\relpenalty
\begin{document}
\parindent=1.25cm
\pagestyle{myheadings} \makeatletter
\def\@oddhead{\normalfont\large\hfil --- \thepage\ --- \hfil}
\let\@evenhead\@oddhead
\let\@oddfoot\@empty\let\@evenfoot\@empty
{\bfseries Постановка задачи } \par
Дано дифференциальное уравнение
вида:
[math]$$\ddddot{y}(t)+a_3 \dddot{y}(t)+a_2 \ddot{y}(t)+(a_1+b_1y^2(t)) \dot{y}(t)+(a_0+b_0y^2(t))
y(t)= c_3\dddot{v}(t)+c_2 \ddot{v}(t)+ c_1 \dot{v}(t)+c_0
v(t).\eqno(1)$$[/math]\par

 Профиль  
                  
 
 Re: автоматический перенос длинных формул
Сообщение09.10.2007, 22:58 
Заслуженный участник
Аватара пользователя


23/07/05
18035
Москва
antoshka1303 писал(а):
В Львовском написано, что нужно использовать
\binoppenalty=10000
или
\relpenalty=10000
Я у себя пытался сделать также, но у меня никакая длинная формула не стала переносится.Подскажите, в чам может быть проблема?


А проблема в том, что эти команды вводятся как раз для того, чтобы запретить переносы формул.

 Профиль  
                  
 
 
Сообщение10.10.2007, 11:05 
Экс-модератор
Аватара пользователя


23/12/05
12072
Someone писал(а):
А проблема в том, что эти команды вводятся как раз для того, чтобы запретить переносы формул.

И это верно, но в данном случае, не поможет и уменьшение этих параметров:
Львовский писал(а):
Выключные формулы, в отличие от внутритекстовых, $\TeX$ никогда не переносит.

 Профиль  
                  
 
 
Сообщение10.10.2007, 12:25 
Заслуженный участник
Аватара пользователя


03/03/06
648
antoshka1303

Вот здесь было обсуждение данной темы

Добавлено спустя 8 минут 44 секунды:

Конечно, я не знаю Вашей цели, но зачем для нумерации формул использовать это окружение, используйте более гибкие в этом смысле окружения. Ну, а если уж надо именно это окружение, то здесь только вручную, лично я использую при этом окружение array.

Добавлено спустя 3 минуты 16 секунд:

Кстати, при наборе это сообщения я написал четыре знака доллара к ряду и получилось вот что $$$$, что это: моя ошибка или так задумано.

 Профиль  
                  
 
 
Сообщение10.10.2007, 14:50 
Аватара пользователя


24/10/05
400
photon писал(а):
:
Львовский писал(а):
Выключные формулы, в отличие от внутритекстовых, $\TeX$ никогда не переносит.


как быть тогда??

 Профиль  
                  
 
 
Сообщение10.10.2007, 17:14 
Заслуженный участник
Аватара пользователя


18/05/06
13440
с Территории
Разбивать формулу самому, например, в \begin{array}...\\...\\...\end{array}

 Профиль  
                  
 
 
Сообщение10.10.2007, 17:18 
Заслуженный участник
Аватара пользователя


03/03/06
648
antoshka1303

вот Вам самый "деревянный" способ

$$
\begin{array}{l}
\ddddot{y}(t)+a_3 \dddot{y}(t)+a_2 \ddot{y}(t)+(a_1+b_1y^2(t)) \dot{y}(t)+(a_0+b_0y^2(t)) \\
y(t)= c_3\dddot{v}(t)+c_2 \ddot{v}(t)+ c_1 \dot{v}(t)+c_0 
v(t).
\end{array}
\eqno(1)
$$

Добавлено спустя 25 секунд:

точно работает всегда.

Привет, ИСН :)

 Профиль  
                  
 
 
Сообщение11.10.2007, 05:02 
Экс-модератор
Аватара пользователя


30/11/06
1265
reader_st писал(а):
Кстати, при наборе это сообщения я написал четыре знака доллара к ряду и получилось вот что $$$$, что это: моя ошибка или так задумано.


Это особенность работы форума. Если нужно, можно написать:
Код:
[notex]$$$$[/notex]
$$$$
А у Вас получилось:
Код:
[math]$$$[/math]$

 Профиль  
                  
 
 
Сообщение15.10.2007, 12:01 
Аватара пользователя


24/10/05
400
у меня если в формуле стоит =, то переноситься как должно? по правилу математики равно должно остатья на верхней строчке справа и на нижней строчки слева

 Профиль  
                  
 
 
Сообщение15.10.2007, 13:18 
Заслуженный участник
Аватара пользователя


23/07/05
18035
Москва
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$
и пр. (т.е.
после \? - символ, который надо бы перенести. При этом если формула
оказывается
в середине строки, то знак не дублируется, а дублируется только при переносе

 Профиль  
                  
 
 Re: автоматический перенос длинных формул
Сообщение13.10.2010, 15:10 


13/10/10
1
Попробовал этот рецепт к MikTeX 2.9. Не выходит.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 11 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: YandexBot [bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group