Символы бинарных операций в ТеХе

vitamin8808

Какая переменная отвечает за расстояние между "+" и "х" в
формуле $x+y$ ?
И есть ли какой-нибудь аналог badness для формул ?
А то листал на днях одну книгу, набранную в техе, там много формул прямо
в тексте(в одинарных долларах). И в некоторых местах так получается, что перенести
формулу тех никуда не может, разбить на две тоже(ну так вот отстойно сложилось
а места на строчке ещё навалом. И он начинает формулы растягивать до максимума.
Там же \plus\minus компоненты есть у этой длинны. И получается не абзац, а полный абзай
какой-то. Уродство то ещё -- слов мало, а формулы растянуты хуже, чем если
текст в разрядку печатать(э т о в о т т а к , х р е н о в о , д а ?)
Как с этим вообще можно бороться ?

Gennadi23

Попробуй заключить формулу в фигурные скобки. По идее, ТеХ тогда сначала сверстаеь формулу (без растяжения а потом уже будет верстать абзац.
${x+y}$.
А еще с \tolerance поиграйся

Sanych

В львовском написано на эту тему. Может лучше там и почитать. То, что я смог вынести:
Радикальный способ -- написать \raggedright, и вообще отключить выравнивание по правому краю.
Ещё можно поставить в нужных местах \hfill или \\, но это скорее ручная работа.
Можно попытаться подобрать параметры \emergencystretch (добавочная растяжимость, если обычной не хватает
\hfuzz (допустимый выход за поля) и \tolerance (~допустимое растяжение строк, вроде бы) для достижения приемлимого вида.

vitamin8808

не, я хочу именно не отключить выравнивание по правому краю, а
найти в исходниках, какой параметр там стоит, или чтоб ТеХ некий
баднесс для формул генерил.

vitamin8808

Пара иллюстраций :


Воооот такая вот растяжимость. Так, конечно, не везде, а только где "карта плохо ляжет".
Думаю, нужно просто у некоего параметра растяжимость уменьшить.
Жаль, нет никаких декомпиляторов/ дебаггеров к TeXу.

yukos1988

Ну смотри - при преобразовании формулы в математический список, который потом, в свою очередь преобразуется в горизонтальный, TeX использует знания о типе элемента в формуле для расстановки пробелов, то есть формула
$$x+y=\max\{x,y\}+\min\{x,y\}$$
будет преобразована в последовательность атомов
x + y = max { x , y } + min { x , y}
типов Ord,Bin,Ord, Rel,Op,Open,Ord,Punct,Ord,Close,Bin,Op,Open,Ord,Punct,Ord и Close соответственно
Далее смотриться таблица соответствия пробелов между типами и вставляются пробелы
Их 3 типа: толстый, средний, тонкий.
Задаются они переменными
\thickmuskip=4mu
\medmuskip=4mu
\thinmuskip=2mu
А потом при преобразовании в горизонтальнйы список вставляются соответствующие пробелы.
Можешь поиграться с этими переменными - может поможет

vitamin8808

ага, я им просто растяжимость уменьшил.
А то дефолтная просто ужастна -- они могли до нуля ужиматься / в 2 раза увеличиваться.
Спасибо !

Kraft1

Может, запостите, на какие значения надо менять, а то мне тоже надо...

vitamin8808

показать значение -- \showthe\variable
там ещё плюс-минус компоненты есть.
Я их пока поставил 1mu.
т.е \medmuskip=3.0mu plus 1.0mu minus 1.0mu (для примера)
Оставить комментарий
Имя или ник:
Комментарий: