LINUX.ORG.RU

groff и руские буквы

 ,


2

1

Понадобилось написать один документик, и я решил юзать groff, так как он уже был, а latex большой

С английскими буквами все норм, а вот с русскими все не так хорошо

Вот пример https://imgur.com/a/d9HXfvy

groff всегда выдает ошибку

:0: macro error: diversion open while ejecting page (recovering)

Макросы: ms

Дистр: Gentoo



Последнее исправление: maxcom (всего исправлений: 2)

Ответ на: комментарий от Yorween

Забыл сказать, groff все время выдает ошибку

:0: macro error: diversion open while ejecting page (recovering)

И preconv тоже ошибся

venus.ms:2: warning: can't find special character `u0421'
venus.ms:2: warning: can't find special character `u043B'
venus.ms:2: warning: can't find special character `u043E'
venus.ms:2: warning: can't find special character `u0432'
clstrmstr
() автор топика
Ответ на: комментарий от clstrmstr

ps2pdf из состава ghostscript или latex, и читай про embedded Type1 шрифты в postscript. также можно открыть ps в ghostscript viewer, и экспортировать в PDF.

а вообще ещё есть нормальный troff с уникодом и utf-8: neatroff и neatpost , сайт автора со всякой полезной всячиной (в частности, см. neateqn, neatmkfn)

это — портированные из Plan9 (в котором всё ОК с UTF-8) назад в линукс утилиты.

алсо, см. про gnu graphics, портированные из Plan 9 plot и graph команды для отрисовки диаграмм (см. примеры, также см. в документации neatroff исходник)

u2ps, a2ps с поддержкой unicode

в целом, в PDF немного лучше с TrueType фонтами, чем в PostScript.

в PS читай про Type42, ttf2pscid2 и по ссылке оттуда ttftotype42, addfonts, (старое: ttftot42, ttf2pt1

читай про embedded шрифты, стандартные кодировки в PostScript. по стандарту там кодировка NeXT с умлаутами, то есть нормально показывается только Ascii. чтобы показывались кириллические, есть несколько способов: а) настроить дефолтные шрифты в GhostScript как кириллические б) встроить шрифты кириллические в документ в) что-то в духе addfont настроить кириллические буквы г) конвертировать и встроить TTF шрифты в PostScript Type1, Type 42 д) взять Computer Modern, Ps Cyr современные уникодные Type1 шрифты из TeX-а

Type42 — это в PostScript v3 или около того появилась поддержка Unicode глифов из TrueType.

в целом, чтобы в PostScript писать по кириллически нужно

а) взять кириллические PostScript шрифты, Type1 распространённые либо Tуpe 42 конвертированные из TrueType TTF. например, взять можно из LaTeX, или Texlive дистрибутива. PsCyr, Computer modern либо прочие. *.pfa, *.pfb

б) встроить (embed) шрифты в PostScript файл документа

в) разобраться с глифами (обычно автоматически пункт б)

г) разобраться с кодировками

в целом, сейчас проще писать в LaTeX (XeLaTeX, с поддержкой уникода) и/или генерировать PDF (где с поддержкой TTF шрифтов всё нормально и чуть попроще чем в PS).

если хочется именно с troff потрахаться, см. в сторону Plan9 troff и neatroff/neatpost, где всё нормально с уникодом и utf-8.

кстати, в исходниках Plan9 (например, того же plan9 front дистрибутива), в документации и мануалах находится более-менее нормальный пример того, как этим troff макросами можно пользоваться, в реальной жизни.

есть примеры с eqn для отрисовки формул, plot и graph для отрисовки диаграмм, прочие скрипты. в целом, вполне себе полноценная замена latex-у, только какая-то странная.

в плане удобства, удобен в качестве замены latex-у lout: много фич из коробки; в целом, достаточно прочитать мануалы lout и чего-то сразу писать; графики, стрелки, фигуры — есть всё из коробки, а не в модулях как в latex

основной недостаток lout — полноценный backend это postscript, то есть, с кириллическими шрифтами нужно повозиться (встраивать embed, раздобыть сами шрифты нормальные, настроить конфиги lout и метрики шрифтов). по поводу настройки lout для русского см. в списке рассылки lout.

anonymous
()
Ответ на: комментарий от clstrmstr

более-менее нормальные примеры troff + unicode + формулы, диаграммы есть в исходниках в документации Plan 9

за вычетом неудобного синтаксиса, troff/groff/neatforr позволяет делать всё тоже самое, что и latex.

даже диаграммы векторные рисовать: см. plot, graph и gnu graphics (портированные из plan9 назад в linux plot, graph).

или вообще asciidoc, a2ps и u2ps уникодное.

anonymous
()
Ответ на: комментарий от clstrmstr

Я думаю, анон выше прав. Ты не разобрался со шрифтами, которые использует GS при конвертации в pdf.

Yorween
()
Последнее исправление: Yorween (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.