Красивый русский текст в техе

Красивый русский текст в техе

Вопрос, а как добиться в латехе красивого русского текста?

Пакет cm-super установлен. Для английского языка, например, есть пакет с Palatino. Получается хорошо для этого языка. А с русским языком есть доступные шрифты? В принципе, могу и купить шрифт, если недорого

Computer modern прекрасен, разве нет?

А если по существу, то мне вот STIX Two нравится.

Через пакет fontogroup подключаются различные шрифты (Банниковский и т.п.) Про этот пакет читать здесь: http://herba.msu.ru/shipunov/software/tex/tex-ru.htm

Кое-что гуглится. Благодарю за подсказку

Да, я поленился ссылку дать. Вот, держи: https://sourceforge.net/projects/stixfonts/files/ (на CTAN он все еще не попал почему-то). И для его использования пока что нужен LuaLaTeX или XeLaTeX с пакетом fontspec.

Пример документа с использованием этого шрифта: https://sgolovan.nes.ru/tex/russian.pdf

Зависит от критериев, точнее от привычек. При прочих равных Computer Modern достаточен почти всегда. Если ничего про шрифты не знаете, то лучшее — враг хорошего.

С качественной кириллицей в свободных качественных шрифтах особенно при условии согласованности с математическими символами всё очень и очень плохо. Именно поэтому настоятельно рекомендуется держаться Computer Modern

Из свободных качественных шрифтов можно посмотреть в сторону Old Standard https://fonts.google.com/specimen/Old Standard TT — есть привязка к pdflatex. Если освоили xelatex, то можно использовать любой из Type1 шрифтов (взять на тех же googlefonts). Если очень хочется купить шрифты, то это легко можно сделать у того же ParaType.

Следует однако понимать, что экранные шрифты (ориентированные на низкий DPI) и шрифты для печати — это очень разные сущности. И согласованность с математическими символами мало у каких шрифтов есть просто потому, что полноценных математических шрифтов меньше чем пальцев на одной руке.

Спасибо за совет! Да у меня математических символов очень мало. В основном выдержки кода, немного диаграмм, пара таблиц и много текста

Да и я по привычке как двадцать лет назад использую LaTeX. А насколько хорош XeLaTeX? Вот только недавно узнал о нем из интерфейса TeXShop

Если я правильно понимаю, то он уже готов к использованию, но я сам его не использую, так как мне Computer Modern достаточно.

Некоторые пакеты (в частности будут проблемы от совместного использования listings и кириллицы — нужно аккуратно обходить грабли) будут отваливаться, но такое происходит и в случае перехода от однобайтных кодировок к Unicode. Вроде пока ещё технически не полностью замещает pdflatex, в частности возможны проблемы с микротипографикой (может уже починили).

Да я вот прямо сейчас экспериментирую с XeLaTeX. Текст выглядит хорошо, а вот листинги надо подогнать. Может быть, XeLaTeX как раз то, что ищу, но пока рано загадывать.

Касательно бумаги и экрана, мне кажется, что в наше время в основном читают с экрана

Круто! Макосные шрифты прекрасно подхватились в XeLaTeX и показываются в дебиане. Наверное, в винде также будет

Ну, не совсем прекрасно, но подхватились. Засечки, расстояния те же, но выглядит похуже немного на линуксе, но в целом очень неплохо

Шрифты из семейства PT довольно хороши

Касательно бумаги и экрана, мне кажется, что в наше время в основном читают с экрана

Это не имеет отношения к делу. Алгоритмы растеризации разные. В случае «привычных Windows-шрифтов» при низких разрешениях де факто используется растр буквально прибитый гвоздями для каждого размера. В этом нет ничего плохого, так как позволяет читать мелкие буквы, но начерание шрифта и расстояние между символами будет принципиально другое чем на печати.

При чтении pdf с экрана для комфортного чтения размер шрифта увеличивается пока векторный растеризатор не начнёт давать вменяемых результатов.

Это да (пример IMHO как надо тратить бюджетные деньги — к сожалению подобных примеров было по-моему всего два, если не считая шрифтов от издательства Мир, и один не шибко удачный). Там есть все начертания. Следует правда осознавать, что эти шрифты ориентированы на WEB, а не на печать и были сделаны только с целью публикации кириллических текстов, то есть расширенными символами кроме обычной латиницы там не густо. Есть коммерческие PT-шрифты, где символов много больше.

Для меня не годится, так как не согласуется с матсимволами.

но начерание шрифта и расстояние между символами будет принципиально другое чем на печати.

Это важно, так как сделать абзац с ровными краями одновременно для низких и высоких разрешений при сохранении читаемости символов не получится никак. Нужны мониторы хотя бы с 200-300 dpi — в телефонах это есть, но экранчики там уж больно маленькие.

Всем спасибо! Нашел решение в виде использования XeLaTeX и шрифтов семейства PT. Совсем не ожидал, что получится такой шикарный результат

(на маке и линуксе работает; еще на винде надо проверить)

Зилатех за яйца привязан к хрюникоду + не очень хорошо совместим с латеховскими пакетами.

Да я похоже, что рано обрадовался. Пакеты, что я использую, поддерживаются. Тут все хорошо, особенно на маке (на винде MiKTeX как всегда хромает). Проблема же в переносах слов.

Если говорить об английском языке и обычном LaTeX, то там переносы слов очень грамотно ставятся, и Overfull встречается крайне редко. Вообще, об этом особо не надо париться.

Когда переходишь на русский текст, то LaTeX часто не справляется с переносом слов, и приходится разбавлять текст ненужными словами, подгоняя, чтобы не было Overfull.

А вот попробовал посмотреть внимательнее на то, что выдает XeLaTeX - там же сплошные Overfull! Надо думать, что делать дальше)

Не очень понятно где возникают проблемы. И да, overfull — это норма — не нужно стараться от него избавляться слишком рьяно. Там больше влияет ширина текстового поля, чем выбор языка, хотя английские слова в среднем короче. Тут может ещё помочь микротипографика (microtype — изменение межбуквенных интервалов), но в этом случае альтернативы Computer Modern нет от слова вообще.

Попробую пованговать: не переносятся сложные слова, которые пишутся через тире и слова, где есть смесь кириллицы и латиницы. Как в xelatex я не знаю, но в случае использования babel вместо короткого дефиса следует вставлять комбинацию

Да самые обыкновенные слова не переносятся в XeLaTeX, межбуквенные интервалы не варьируются. Как будто шлепает постоянный интервал, а потом с удивлением обнаруживает, что не может перенести короткое слово из двух слогов, причем шрифт 10pt. В общем, задумался о Computer Modern. Может быть, он и не так плох? :)

Когда писал на английском в LaTeX, вообще, проблем с Overfull не знал

Из парочки XeLaTeX-LuaLaTeX (оба юникодные и с поддержкой современных форматов шрифтов, т.е. OpenType) я бы посоветовал LuaLaTeX скорее. Он помедленнее, но у него совместимость со всякими существующими пакетами получше (в частности, работает microtype для незаметных искажений букв, улучшающих читаемость.

Юникодность (требование, чтобы исходный текст был в UTF-8), на мой взгляд, это большой плюс.

Что касается переносов, то покажи минимальный пример документа, в котором они не включились. В том же LuaLaTeX переносы включаются точно так же, как и в pdfLaTeX:

Возвращаясь к шрифтам, вот список тех, что я использую регулярно (не все свободные, некоторые просто входят в поставку виндов):

  • Computer Modern Unicode (да, он в части русского языка плоховат и заезжен до ужаса, но все же)
  • Гарнитура Литературная + CM для математики
  • STIX 1 + XITS для математики (не отличить от Times New Roman)
  • STIX Two и он же для математики
  • Palatino Linotype (из поставки виндов) + mathpazo или euler для математики
  • Libertinus + Libertinus Math для математики
  • Cambria (из поставки виндов) + Cambria Math для математики
  • New Сentury Schoolbook (из поставки виндов) + TeX Gyre Schola Math для математики
  • PT Serif + Cambria Math для математики
  • PT Astra + Cambria Math для математики

Да самые обыкновенные слова не переносятся в XeLaTeX

очень и очень странно. Что-то по всей видимости не так. Нужен пример кода, чтобы сказать что-то определённое.

межбуквенные интервалы не варьируются.

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

Не так выразился. Не переносятся в смысле «целиком», когда можно было бы немного расширить расстояние между словами. Иногда две буквы не может отправить на другую строку.

babel на маке подключается в xelatex (в винде - нет).

lualatex попробую, но много позже. Для этого просит обновиться сначала (из-за диаграмм xy)

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

Как это делается для babel я знаю (просто указать язык в опциях), а в xelatex вроде нужно посмотреть в сторону пакета polyglossia

Да, нет же, переносы-то есть, но мне не нравится, что между словами один и тот же интервал. Из-за этого даже простые слова не влезают в строку, даже где вторая половина слова была перенесена. А можно было просто полностью перенести слово на следующую строку, а в текущей чуточку увеличить интервалы между словами и буквами. Ан, нет же

(многозначный смысл у слова «перенос»)

Ты покажи пример-то (хотя бы скриншот). Обычно LaTeX вполне адекватно справляется с переносами. А может у тебя ширина колонки в 3 сантиметра? Тогда ой.

📎📎📎📎📎📎📎📎📎📎