Несколько дней go Я искал решение для этой конкретной проблемы, но не мог найти ничего ... поэтому я разработал свое собственное решение: фильтр Pando c для включения смайликов в сгенерированный PDF .
Однако существуют некоторые компромиссы и ограничения:
- Мне пришлось использовать файл
template.tex
, поэтому, если вы уже используете шаблон, вы ' мне придется объединить части из моего шаблона с вашим. Это может быть настоящей болью ... но я пометил изменения, которые я сделал, к исходному template.tex
, сгенерированному Pando c. По крайней мере, это может немного помочь. - У меня нет опыта работы с языком
Lua
для создания фильтра. Поэтому я попробовал Python
, и это не сработало, как я ожидал, потому что я не смог найти библиотеку для перевода кодовых точек Emoji Unicode в то, с чем я мог бы работать. Наконец, я сделал это, используя Javascript
, поэтому NodeJS
требуется. Кроме того, некоторые NPM пакеты должны быть установлены. - Я использовал
InkScape
для преобразования SVG из онлайн-источников в PDF, чтобы их можно было вставить в PDF. Это необходимо, потому что LaTeX не распознавал формат изображения SVG. - В данный момент у меня еще не было времени для автоматической установки фильтра c. Проверьте репозиторий Git и используйте его оттуда ... это лучший совет, который я могу дать. Существует пример сценария для преобразования
readme.md
в pdf. Я также передал полученный PDF . - Я не знаю, будет ли он работать с
xelatex
или lualatex
или чем-то другим, чем pdflatex
, потому что у меня было время только протестируйте его, используя стандартный движок для Pando c, то есть pdflatex
.
Использование фильтра Emoji
Предварительные условия: Pandoc
и NodeJS
Оформление хранилища
Установка NPM необходимых пакетов:
npm install
Запуск Pando c, передавая фильтр, шаблон, правильный формат ввода, источник смайликов и так далее. Ниже приведена команда, используемая для компиляции файла example.pdf из файла readme.md:
pandoc --template="template.tex" -o example.pdf readme.md \
--filter=emoji_filter.js -M emoji=noto-emoji --from gfm \
-V links-as-notes=true -V colorlinks -V urlcolor=NavyBlue
--template="template.tex"
, указывающего файл template.tex, присутствующий в хранилище -o example.pdf
представляет имя выходного файла readme.md
- имя входного файла --filter=emoji_filter.js
указывает имя файла сценария фильтра Emoji -M emoji=noto-emoji
- это параметр метаданных, который означает Emoji Фильтр читает, чтобы узнать, какие эмодзи вы хотите. На данный момент есть два варианта: noto-emoji
и twemoji
. Полный список смайликов можно посмотреть на unicode.org . --from gfm
- формат ввода, gfm означает GitHub Flavored Markdown. Я использую его, потому что он может конвертировать эмодзи в формате :__name__:
в кодовые точки Unicode, которые мой фильтр может распознавать. - другие параметры не имеют значения для этого ответа ... они используются для настройки того, как ссылки появляются в окончательном PDF.
Я надеюсь, что этот ответ, и фильтр Emoji поможет! Любой дальнейший вопрос, пожалуйста, задавайте в комментарии ... возможно, если вы считаете, что я должен опубликовать и объяснить некоторые части кода. Я действительно не знаю, какие части могут быть полезны в кратком ответе, так как код довольно сложный.
В любом случае, не стесняйтесь спрашивать =)