Является ли LaTeX приемлемым выбором для программного проектирования документов «настольных издательских систем»?

Является ли LaTeX приемлемым выбором для программного проектирования документов «настольных издательских систем»?

В настоящее время я работаю над проектом, где одним из конечных продуктов является таблица данных PDF. Эта таблица данных состоит из текста, изображений, таблиц и списков. Мы будем генерировать файл .tex программно.

Мы обычно отображали таблицы данных как HTML и использовали стороннее приложение для преобразования этого HTML в PDF. HTML в PDF — очень громоздкое и неконтролируемое решение.

Я использовал LaTeX здесь и там в прошлом для создания PDF-файлов. Во всех случаях у меня никогда не было проблем с выбором дизайна документов. Все эти документы были простыми.

Я рассматриваю возможность использования LaTeX для создания этих документов, но хочу убедиться, что смогу контролировать следующее:

  • Шрифты: Я предполагаю, что клиент захочет немного подправить шрифты. Не указывать шрифт, но, возможно, определить семейство шрифтов.
  • Таблицы: таблицы должны иметь некоторую фоновую окраску и, возможно, разную ширину и стили контуров. Нам нужно будет настроить, где страницы разрываются при рендеринге таблицы.
  • Списки: Вероятно, нам придется настроить высоту строки в списках.
  • Изображения: Нам нужно будет масштабировать и разместить изображение в пределах нескольких мм. Звучит ли это так, как будто это может быть хорошим вариантом?

Можно ли где-нибудь найти галерею документов типа «Desktop Publishing», созданных с помощью LaTex?

решение1

Это коммерческий сайт, но на нем есть несколько хороших примеров:

https://www.latextypesetting.com/showcase#creation-modification

В частности,Финансовый отчет ETF

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

введите описание изображения здесь

решение2

Да, LaTeX можно использовать для таких документов. Как вы отметили, некоторые вещи вызывают трудности:

  • Вы можете использовать шрифты OpenType и TrueType --- см. fontspecдокументацию --- загрузка семейства выполняется по умолчанию
  • Существуют различные пакеты для столов, я неравнодушен к booktabs, но я человек консервативный и старомодный --- для причудливых столов с цветами и т.п. вам захочется найти подходящий пакет.
  • да, существуют элементы управления/параметры для набора списков, которые позволяют настраивать такие вещи --- предостережение: ConTeXt начинался как пакет, который предоставлял больший контроль над набором списков --- вы можете рассмотреть возможность перехода сразу к нему
  • Масштабирование и обработка изображений хороши и просты — используйте пакет grffileдля имен файлов и graphicxдля тех удобств, которые он предоставляет — вы можете масштабировать в зависимости от размеров документа, таких как ширина или высота страницы, столбца или текстового блока, и довольно просто программно настраивать в зависимости от пропорций документа (графика в альбомном формате занимает два столбца, а в портретном — один — это типичная настройка).

Вот презентация TeX:http://www.tug.org/texshowcase/

Связанный контент