2013-06-22 2 views
1

Мне нужно расширить TeXtoGIF, чтобы иметь возможность обрабатывать XeTeX, ConTeXt и другие более современные версии TeX (поскольку они могут обрабатывать несколько шрифтов). К сожалению, XeTeX, в частности, не поддерживает DVI в качестве выходного формата для ввода, и мои модификации ломаются.TeXtoGIF для XeTeX

См. Раздел изменений в GitHub. Мои изменения в коде следующим образом:

  • Введем переменную $cmdTeX держать TeX двигателя (LaTeX, XeLaTeX и т.д.)
  • Добавить опцию -xetex (или что-нибудь, начиная с x, на самом деле) в укажите xelatex в качестве двигателя
  • Замените закодированный latex вызов с переменной $cmdTeX.

Я вижу два варианта исправления этой проблемы:

  1. принуждать XeLaTeX для производства стандартного выхода DVI, который, IIRC, не возможно.
  2. Найти другую последовательность команд (возможно другое использование GS, именно поэтому я включил тег, но так и быть), чтобы работать с выводом PDF непосредственно вместо DVI

Так что, я думаю, вопрос сводится к:
Как конвертировать PDF в GIF без использования графического программного обеспечения?
, который, вероятно, не подходит для SO больше ИМХО.

+1

Это может быть полезно изложить свой вопрос таким образом, что речь идет о вопросительном знаке, это, как правило, упрощает ответы на вопросы. (Btw, сценарий не может корректно обрабатывать имена файлов с пробелами или специальными символами, например 'textogif 'с пробелом' сломается) – amon

+0

@amon, что, вероятно, было бы разумным ... –

+0

@SeanAllred Так на этот вопрос ответил, так как вы ответил на свой вопрос? –

ответ

2

Похоже, что у вас есть патч, который вы хотели бы представить автору. Вы связались с ним? К сожалению, его программное обеспечение не включает (по-видимому) лицензию, поэтому с юридической точки зрения это может быть трудно. В большинстве случаев в мире с открытым исходным кодом, если вы сталкиваетесь с невосприимчивым (или не желающим) автором, вы можете делать то, что вы уже сделали, fork и patch. В этот момент вы можете опубликовать новую версию, возможно, с новым именем и в соответствии с авторской лицензией.

С точки зрения программного обеспечения, код довольно древний, написанный для Perl 4. Поскольку Perl имеет отличную обратную совместимость, он, вероятно, по-прежнему будет работать, но вопрос в том, вы действительно хотите? Это может зависеть от вашего прецедента. Оригинальный автор делал gifs для использования на веб-страницах. Если это то, что вы делаете, вы можете посмотреть на MathJaX, который позволяет напрямую использовать LaTeX прямо в вашем браузере/HTML.

+0

Это не просто математика, которую я бы хотел; Обработка шрифтов XeLaTeX означает абсолютно красивый текст, который я хотел бы использовать в логотипе веб-сайта. Я не знал, что это было для Perl 4, поэтому я рассмотрю его портирование; Я не думаю, что лицензирование вообще будет проблемой, но я тоже дважды проверю это (я считаю, что в архиве была ЛИЦЕНЗИЯ). Спасибо за указатели! –

+0

[Здесь] (https://github.com/jberger/textogif/blob/master/textogif.pl) - это мое изменение в использовании более типичного стиля Perl 5, а также использование стандарта [Getopt :: Long ] (https://metacpan.org/module/Getopt::Long). –

2

Вместо добавления к моему Q это оказалось действительным решением для моей общей проблемы и должно быть записано как таковое.

Я хотел бы также отметить, что кто-либо на TeX.SX указал мне на standalone класс, который обеспечивает возможность convert который, используя -shell-escape, может сделать только обо всем, что нужно . Таким образом,

\documentclass[convert={density=6000, 
          size=1920x1600, 
         outext=.png}, 
       border=1cm]{standalone} 

\usepackage{fontspec} 
\setmainfont{Zapfino} 

\pagestyle{empty} 

\begin{document} 
it's all text 
\end{document} 

%%% Local Variables: 
%%% mode: latex 
%%% TeX-engine: xetex 
%%% TeX-master: t 
%%% End: 
+0

действительно, вероятно, лучшее решение –

0

ConTeXt не современная реализация TeX (как LuaTeX, например). Это пакет макросов для нескольких движков.

Поскольку вы хотите поддерживать определенные двигатели (например, XeTeX) и определенные пакеты макросов (например, ConTeXt), MathJax не является опцией. Вы должны запустить движок TeX, создать PDF-файл и опубликовать его в формате PDF. Я не знаю, почему вы выбираете GIF в качестве формата, векторный формат SVG будет давать гораздо более красивые результаты, PNG будет моим вторым выбором.

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

Как вы сказали, вам нужен GIF. По gs -h Ghostscript не поддерживает вывод GIF, поэтому мы преобразуем в PNG первым:

gs     \ 
    -sDEVICE=png256 \ 
    -dNOPAUSE   \ 
    -dBATCH   \ 
    -dSAFER   \ 
    -dTextAlphaBits=4 \ 
    -q    \ 
    -r300x300   \ 
    -sOutputFile=output-%02d.png input.pdf 

Затем используйте GraphicsMagick или ImageMagick для преобразования PNGs в GIFs:

mogrify --format gif -- output-*.png