![如何在 Sphinx 构建环境中使用 webfont?](https://linux22.com/image/461695/%E5%A6%82%E4%BD%95%E5%9C%A8%20Sphinx%20%E6%9E%84%E5%BB%BA%E7%8E%AF%E5%A2%83%E4%B8%AD%E4%BD%BF%E7%94%A8%20webfont%EF%BC%9F.png)
我正在为 sphinx 构建一个扩展,以在文档中包含 fontawesome 图标。如果它也可以在 LaTeX 版本中工作,那就太好了。我最初的工作依赖于“fontawesome5”包,但由于我们现在正在转向 fa6,我想依赖从 NPM 下载的 Web 字体。
语境:
- 构建器是 LaTeX(可以在 conf.py 中更改,但这会导致 RDT 中出现许多错误)
- 我有 .ttf 格式的所有字体
- 我有所有字形的 unicode
我看见https://tex.stackexchange.com/a/627541/261930以下命令正是我所需要的:
\newfontfamily{\fa}{Font Awesome 6 Free-Solid-900.ttf}
但它在我的 RDT 环境中从来都不起作用(崩溃 + 无法访问日志)。这真的能行吗?如果可以,我应该安装什么才能让它在我的本地机器上运行?(然后我可以相应地调整 RDT 环境)
答案1
谢谢你的开端àscd,我终于让它发挥作用了:
正如您所提到的,第一步是转到 XeLaTex 编译器:
# conf.py
latex_engine = "xelatex"
然后使用 fontspec 包:
# conf.py
setup(app):
# [...]
app.add_latex_package("fontspec")
最后将命令添加到前言中:
# conf.py
latex_elements["preamble"] += dedent(
r"""
\newfontfamily{\solid}{fa-solid-900.ttf}
\newfontfamily{\regular}{fa-regular-400.ttf}
\newfontfamily{\brands}{fa-brands-400.ttf}
"""
)
我现在可以在 Sphinx 构建的乳胶输出中使用以下命令。
{\solid\symbol{"F07B}}
如果人们不想像我一样挣扎,我写了 2 个 sphinx 扩展:
- https://pypi.org/project/sphinx-icon/用于内联图标支持
- https://pypi.org/project/sphinx-btn/用于内联 guilabel 包括图标
它们支持 html 和 latex 构建