字体和 FontAwesome#

该主题包含 FontAwesome 6 Free 图标字体(.fa-solid, .fa-regular, .fa-brands 样式,用于 图标链接 和警告框)。这是唯一的 自带 字体,除此之外,该主题默认依赖于可用的系统字体来显示正文和标题。

有关 PyData Sphinx Theme 排版和文本样式的更多详细信息,请参阅 PyData Sphinx 主题设计系统 部分。

默认的正文和标题字体可以按如下方式更改:

  • 使用 定制 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 解析之前加载,但应谨慎使用。