字体和 FontAwesome#

该主题包含 FontAwesome 6 Free 图标字体(.fa-solid, .fa-regular, .fa-brands 样式,用于 图标链接 和警示信息)。这是唯一一个自带的字体,否则,该主题默认情况下依赖于可用的系统字体来显示正常的正文文本和标题。

默认的正文和标题字体可以通过以下方式更改

  • 使用 自定义 CSS 样式表,您可以指定要用于正文、标题和等宽文本的字体。例如,以下内容可以添加到自定义 CSS 文件中

    html {
        --pst-font-family-base: Verdana, var(--pst-font-family-base-system);
        --pst-font-family-heading: Cambria, Georgia, Times, var(--pst-font-family-base-system);
        --pst-font-family-monospace: Courier, var(--pst-font-family-monospace-system);
    }
    

    *-system 变量可用于作为默认字体的备用选项。

  • 如果您想在上述部分中指定的字体默认情况下不可用,您还需要确保该字体已加载。例如,您可以将字体下载并放入 Sphinx 站点的 _static 目录中,然后更新基本模板以加载字体资源

    • 在您的 conf.py 中配置 template_path

    • 创建一个自定义 layout.html Jinja2 模板,该模板会覆盖 fonts 块(加载包含在 _static/vendor 目录中的 Lato 字体的示例)

      {% extends "pydata_sphinx_theme/layout.html" %}
      
      {% block fonts %}
        <!-- add `style` or `link` tags with your CSS `@font-face` declarations here -->
        <!-- ... and optionally preload the `woff2` for snappier page loads -->
        <link rel="stylesheet" href="{{ pathto('_static/vendor/lato_latin-ext/1.44.1/index.css', 1) }}">
      
      {% endblock %}
      

      在字体加载之前,您的文本可能会很快显示为“无样式”。为了减少这种情况,您可能需要探索 预加载内容 的选项,特别是二进制字体文件。这将确保文件在解析 CSS 之前加载,但应谨慎使用。