pon*_*lus 10 unicode fonts xelatex emoji pandoc
有没有办法从包含 unicode、表情符号和象形文字的 Markdown 文件中获取 PDF?
\n\n我正在运行这个测试:
\n\necho \':smile: \xe2\x86\x92 \xe2\x98\x85 \xe2\x9a\xa0\xef\xb8\x8f\' | pandoc -f markdown+emoji --latex-engine=xelatex -o foo.pdf\nRun Code Online (Sandbox Code Playgroud)\n\n与我所有的系统字体。
\n\n到目前为止我得到的最好结果是:
\n\nDejaVu Sans字体:
\n\n我尝试了一些不同的 pandoc 输入格式(-f / --from)和乳胶引擎,但没有成功。是否有完美的字体或关于如何实现这一目标的任何建议?
几天前,我正在寻找针对这个问题的解决方案,但找不到任何解决方案......所以我开发了自己的解决方案:一个Pandoc 过滤器,用于在生成的 PDF 中包含表情符号。
但也存在一些妥协和限制:
template.tex文件,因此如果您已经使用模板,则必须将我的模板中的片段与您的模板合并。这可能是一个真正的痛苦......但我标记了我对 Pandoc 生成的原始文件所做的更改template.tex。至少这可以有所帮助。Lua语言来制作过滤器的经验。所以我尝试了Python,但它没有像我预期的那样工作,因为我找不到一个库来将 unicode 表情符号代码点转换为我可以使用的东西。最后我用的是Javascript,所以NodeJS是必需的。此外,还必须安装一些 NPM 软件包。InkScape将在线资源中的 SVG 转换为 PDF,以便将它们插入到 PDF 中。这是必要的,因为 LaTeX 无法识别 SVG 图像格式。readme.md为 pdf。我还提交了生成的 PDF。xelatex或lualatex以外的任何东西一起使用pdflatex,因为我只有时间使用 Pandoc 的默认引擎(即pdflatex.先决条件:Pandoc和NodeJS
签出存储库
安装需要的NPM包:
npm install
Run Code Online (Sandbox Code Playgroud)运行 Pandoc,传递过滤器、模板、正确的输入格式、表情符号源等。以下是用于从 readme.md 编译 example.pdf 的命令:
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
Run Code Online (Sandbox Code Playgroud)
--template="template.tex"指示存储库中存在的 template.tex 文件-o example.pdf代表输出文件名readme.md是输入文件名--filter=emoji_filter.js表示表情符号过滤脚本文件名-M emoji=noto-emoji是表情符号过滤器读取的元数据参数,以了解您想要哪种表情符号。此时有两个选择:noto-emoji和twemoji。您可以在 unicode.org 上查看完整的表情符号列表。
noto-emoji:指的是Google 的 Noto Color Emojistwemoji:指Twitter 的 Twemoji--from gfm是输入格式,gfm 表示 GitHub Flavored Markdown。我使用它是因为它可以将表情符号格式转换:__name__:为我的过滤器可以识别的 unicode 代码点。我希望这个答案和表情符号过滤器能有所帮助!如有任何其他问题,请在评论中提问...也许您认为我应该发布并解释代码的某些部分。我真的不知道哪些部分可以帮助您提供简洁的答案,因为代码非常复杂。
无论如何,请随时询问=)