2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу Пред.  1, 2
 
 Re: Как поставить длиный пробел
Сообщение23.06.2014, 06:08 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Red_Herring в сообщении #878454 писал(а):
Я подозреваю, что \; \, \! в текстовой моде работали всегда и если рассматривать книгу Кнута как Библию ТеХа (Plain TeX, и я считаю что так оно и есть), то эти команды как были так и остаются недокументированными и если Кнут в какой-то момент сделает так, что они перестанут работать в текстовой моде, то никто никаких претензий предъявить не может.

А вот в матмоде эти команды документированы. Кстати, если Кнут вводит \quad и \qquad в матмоде, то он замечает, что \quad работает также и в текстовой и приводит примеры тому; но про \qquad он об этом не пишет, т.е. \qquad в текстовой моде также недокументирована

Тут есть тонкость. Дело в том, что Кнут не только приводит описание (документацию) на команды, но в приложении - и буквальные дефиниции многих команд, как они заложены в реализации. Так что, можно рассчитывать на то, что они будут работать в соответствии с этими дефинициями, даже если в документации не освещены все варианты и детали их поведения.

iifat в сообщении #878468 писал(а):
Подозреваю, в текстовых модах нужны другие пробелы. Упомянутый, кстати, \hspace тоже не совсем то — отсутствуют растяжимость и сжимаемость, хотя, возможно, их там тоже есть?

На эту тему в TeX-е есть как раз богатейший инструментарий. Почитайте про клей во Львовском и в Кнуте.

 Профиль  
                  
 
 Re: Как поставить длиный пробел
Сообщение23.06.2014, 07:35 
Заслуженный участник


16/02/13
4195
Владивосток
ewert в сообщении #878469 писал(а):
А они там нужны?...
А выравнивание по правому краю вам Будда сделает? Оно ведь именно за счёт растяжимости пробелов происходит.

-- 23.06.2014, 15:36 --

Munin в сообщении #878500 писал(а):
Почитайте про клей во Львовском и в Кнуте
Ну дык я ж и читал. Про него и говорю, пробелов-то, собственно, в $\TeX$ и нету.

 Профиль  
                  
 
 Re: Как поставить длиный пробел
Сообщение23.06.2014, 11:48 
Заслуженный участник
Аватара пользователя


31/01/14
11305
Hogtown
Munin в сообщении #878500 писал(а):
Тут есть тонкость. Дело в том, что Кнут не только приводит описание (документацию) на команды, но в приложении - и буквальные дефиниции многих команд, как они заложены в реализации. Так что, можно рассчитывать на то, что они будут работать в соответствии с этими дефинициями, даже если в документации не освещены все варианты и детали их поведения.


Стр 357 Кнута на английском

Код:
\def\,{\mskip\thinmuskip} \def\!{\mskip-\thinmuskip}
\def\>{\mskip\medmuskip} \def\;{\mskip\thickmuskip}


Но это скорее для разработчиков пакетов (или, в данном случае, инпутов)

Цитата:
А выравнивание по правому краю вам Будда сделает? Оно ведь именно за счёт растяжимости пробелов происходит.


Ну этим сам ТеХ прекрасно занимается, особенно с помощью microtype, babel (ну, впрочем, иногда и юзеру приходится помогать, но это случается если не хочется разбивать строчную формулу или какое слово не переносится). Кстати геометрически строго выравнивания нет, есть визуальное выравнивание с помощью protrusion.

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


30/01/06
72407
Red_Herring в сообщении #878593 писал(а):
Стр 357 Кнута на английском

Вот только не дефинировано столь же чётко, что такое \mskip. В тексте показано, что он применяется только в математической моде. Вне неё - аналогично \hskip.

 Профиль  
                  
 
 Re: Как поставить длиный пробел
Сообщение23.06.2014, 14:34 
Заслуженный участник


16/02/13
4195
Владивосток
Red_Herring в сообщении #878593 писал(а):
Ну этим сам ТеХ прекрасно занимается
Эээ? Естественно, сам $\TeX$, кто ж ещё. А выравнивает он, исходя из растяжимости клеев, кои вставляются на месте пробелов по довольно сложному алгоритму, либо явным образом с помощью разметки. Пакеты влияют, конечно, на расстановку и характер пробелов.
Red_Herring в сообщении #878593 писал(а):
Кстати геометрически строго выравнивания нет, есть визуальное выравнивание с помощью protrusion
Куда-куда вы меня послали? Раскроете секрет? В TeXBook такого не помню. Только клей, растяжение, сжатие, штрафы.

-- 23.06.2014, 22:43 --

Munin в сообщении #878631 писал(а):
Вот только не дефинировано столь же чётко, что такое \mskip
Ну, сказано таки, что \mskip измеряется исключительно в единицах mu, \hskip — ни в коем разе.

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


31/01/14
11305
Hogtown
iifat в сообщении #878649 писал(а):
Куда-куда вы меня послали? Раскроете секрет? В TeXBook такого не помню. Только клей, растяжение, сжатие, штрафы.


Виноват. Я думал что Кнут уже ввел это

http://mirror.unl.edu/ctan/macros/latex/contrib/microtype/microtype.pdf

Glyphs that are small (such as a period) or round (such as the letter "o") at the end of a line can be extended beyond the end of the line to create a more even line at the edge of the text. This is called protrusion, margin kerning, or hanging punctuation.


Han The Thanh (создатель pdftex) утверждает, что он очень хорошо видит все миктипографские штучки исходя из оутпута

 Профиль  
                  
 
 Re: Как поставить длиный пробел
Сообщение23.06.2014, 15:22 
Заслуженный участник


16/02/13
4195
Владивосток
Спасибо.
М-дааа... И так-то у $\TeX$ сложное форматирование параграфа, а предлагается ещё усложнить... Как понимаю, русские отдыхают? Это ж требует филигранной подготовки шрифтов.

 Профиль  
                  
 
 Re: Как поставить длиный пробел
Сообщение23.06.2014, 15:26 
Заслуженный участник
Аватара пользователя


31/01/14
11305
Hogtown
iifat в сообщении #878658 писал(а):
а предлагается ещё усложнить...


Это уже реализовано и в пакете microtype и в luatex (если я правильно понимаю)

Достаточно вставить \usepackage{microtype} в преамбулу, и на 100 стр текста обычно экономятся 1—2 страницы (и качество улучшается)

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу Пред.  1, 2

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



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

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


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

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