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
17989
Москва
antoshka1303 писал(а):
В Львовском написано, что нужно использовать
\binoppenalty=10000
или
\relpenalty=10000
Я у себя пытался сделать также, но у меня никакая длинная формула не стала переносится.Подскажите, в чам может быть проблема?


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

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


23/12/05
12064
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
13438
с Территории
Разбивать формулу самому, например, в \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
17989
Москва
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, Супермодераторы



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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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