vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner
Интересно, чем бы таким опенсурсным и не использующим X-овых библиотек (headless, серверным) можно в наше время генерировать PDF-документы, содержащие в основном обычный текст с минимальными шрифтовыми выделениямии (уровня примерно HTML 2.0 - заголовки двух-трех уровней, пара видов логического выделения в тексте, 2-3 вида списоков).

Но чтобы нормально работало по меньшей мере со всем Basic Multilingual Plane юникода (входной формат - что-то в utf-8).

Варианты на базе pdftex не предлагать. Про них и лежащие там грабли сам знаю.
Варианты на базе xelatex или luatex готов посмотреть, если мне убедительно объяснят, что вот здесь все хорошо, и будет работать со всеми буковками, которые есть в шрифте DejaVuSans, LiberationSerif или что там оно испольузе

В принципе, сейчас библиотеки для создания pdf есть во всех подряд языках. Но вот попробовал питоновскую (которая reporlab, вернее командно-строчная обертка вокруг неё - rst2pdf) не тянет кириллицы совсем. Это я еще не злобствую, и не подсовываю туда right-to-left письменности.

То что у libreoffice есть headless-режим я знаю.

Про apache fop с удовольствием бы послушал рассказы тех, кто щупал.

Date: 2014-10-27 02:04 pm (UTC)
From: [identity profile] dzz.livejournal.com
Ну, я решал другую задачу, там cp1251 было выше крыши. С правильными файлами глифов и эмбед-шрифтами, естественно.
Edited Date: 2014-10-27 02:04 pm (UTC)
From: [identity profile] z3vv5yqifqx6.livejournal.com
Про XeLaTeX и усилия и BMP: мой тест корректности инсталляции XeLaTeX использует Linux Libertine, в файле без переключения чего-либо идут английский, французский, русский, греческий, эсперанто.

Ну и при этом мелочи типа лигатур st, Th и Qu, как и прочий выпендрёж шрифта, работают вполне спокойно (некоторые можно включать и отключать).

Взял свой тупой заголовок по умолчанию с DejaVu Serif и ещё 10 строчками usepackage. Нормально отрисовалось:

English text.

La langue française.

Русский язык.

Ελληνικά γλώσσα.

Ĉi estas esperanto.

Polish ł.

Islandic Æ.

А вот арабскю вязь DejaVu Serif не нарисовал сходу. Надо тестировать вместе со шрифтом.

Ну и да, XeLaTeX большой и неясно, насколько выполнимо его поставить без freetype (ибо откуда-то он метрики шрифта брать должен).
From: [identity profile] z3vv5yqifqx6.livejournal.com
Ну я просто совсем стандартный заголовок с кучей мусора прикрепил (он для другого собран, разумеется). Он там лишний.

Вот как было:

\documentclass[a4paper]{article}
\usepackage{fontspec}
\usepackage{amsfonts}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsthm}
\setmainfont{DejaVu Serif}
\newfontfamily{\russianfont}{DejaVu Serif}
\newfontfamily{\russianfontsf}{DejaVu Sans}
\usepackage{polyglossia}
\setmainlanguage{russian}
\usepackage{indentfirst}

\textwidth=17cm
\oddsidemargin=-2pt
\topmargin=-1cm
\textheight=24cm
\renewcommand{\baselinestretch}{1.5}

\begin{document}


Потом попробовал по-другому:

\documentclass[a4paper]{article}glossia
\usepackage{fontspec}
\setmainfont{DejaVu Serif}
\begin{document}


Работает (но типографские правила, вероятно, анмериканские, без polyglossia-то, которая замена babel).

Вероятно, для арабского понадобится делать что-то типа установки шрифта перед куском текста, вроде \fontspec{Linux Libertine O},
а для переносов может и \selectlanguage быть нужно при сменах языка.

Можно попробовать применить fontforge MergeFonts, чтобы в преамбуле прописать только один шрифт (объединённый).

Конкретный текст с кокнкретными шрифтами могу протестировать.

Profile

vitus_wagner: My photo 2005 (Default)
vitus_wagner

June 2025

S M T W T F S
1 23 4 56 7
89 1011 12 13 14
1516 17 18 192021
22232425262728
2930     

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 19th, 2025 04:48 pm
Powered by Dreamwidth Studios