带有表情符号和象形文字的潘多克

问题描述 投票:1回答:1

是否有办法从包含Unicode,表情符号和象形文字的Markdown文件中获取PDF?

我正在运行此测试:

echo ':smile: → ★ 🤷 👍 ⚠️' | pandoc -f markdown+emoji --latex-engine=xelatex -o foo.pdf

使用我的所有系统字体。

到目前为止,我得到的最好结果是:

我尝试了一些不同的pandoc输入格式(-f / --from)和乳胶引擎,但均未成功。是否有完美的字体或有关如何实现该效果的任何建议?

unicode fonts emoji pandoc xelatex
1个回答
0
投票

几天前,我正在寻找针对此确切问题的解决方案,但找不到任何...所以我开发了自己的解决方案:一个Pandoc filter to include emojis in the generated PDF

尽管有一些折衷和限制:

  • 我必须使用template.tex文件,因此,如果您已经在使用模板,则必须将我的模板中的片段与您的模板合并。那可能真是个痛苦……但是我标记了我对Pandoc生成的原始template.tex所做的更改。至少这可以有所帮助。
  • 我没有使用Lua语言进行过滤的经验。因此,我尝试了Python,但它没有按预期的方式工作,因为我找不到可以将Unicode表情符号代码点转换为我可以使用的库的库。最后,我使用Javascript进行了设置,因此需要NodeJS。另外,必须安装一些NPM软件包。
  • 我使用InkScape将SVG从在线资源转换为PDF,以便可以将它们插入PDF。这是必要的,因为LaTeX无法识别SVG图像格式。
  • 目前,我还没有时间实现过滤器的自动安装。签出Git存储库,然后从那里使用它……这是我能提供的最佳建议。有一个示例脚本可将readme.md转换为pdf。我还提交了readme.md
  • 我不知道它是否可以与resulting PDFxelatex或除lualatex以外的任何其他版本一起使用,因为我只有时间使用Pandoc的默认引擎pdflatex对其进行测试。

使用表情符号过滤器

先决条件:pdflatexPandoc

  1. 检出存储库

  2. 安装所需的NPM软件包:

    NodeJS
  3. 运行Pandoc,传递过滤器,模板,正确的输入格式,表情符号来源,等等。以下是用于从readme.md编译example.pdf的命令:

    npm install
    
    • [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.tex文件
    • --template="template.tex"代表输出文件名
    • -o example.pdf是输入文件名
    • [readme.md表示表情符号过滤器脚本文件名
    • --filter=emoji_filter.js是表情符号过滤器读取的元数据参数,以了解您想要哪种表情符号。目前有两个选项:-M emoji=noto-emojinoto-emoji。您会看到twemoji
    • Twemoji by Twitter是输入格式,gfm表示GitHub Flavored Markdown。我使用它是因为它可以将--from gfm格式的表情符号转换为我的过滤器可以识别的Unicode代码点。
    • 其他参数对该答案没有意义...它们用于调整链接在最终PDF中的显示方式。

我希望这个答案,表情符号过滤器会有所帮助!如有其他疑问,请在评论中提问...也许如果您认为我应该发布并解释代码的某些部分。我真的不知道哪些部分可能对简洁的回答有所帮助因为代码很复杂。

无论如何,随时询问=)

© www.soinside.com 2019 - 2024. All rights reserved.