You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Asciidoctor PDF页眉中条件显示分卷与章节标题?

解决Asciidoctor PDF多卷书籍页眉条件渲染问题

Asciidoctor PDF的主题YAML本身不支持原生条件逻辑,你需要用ERB(Embedded Ruby)模板语法来实现动态判断,以下是正确的配置方式:

正确的主题YAML配置

在你的主题YAML文件中,找到页眉相关的配置项,替换成如下内容:

header:
  center:
    content: '<%= document.part_title ? "#{document.part_title} – #{document.section_title}" : document.section_title %>'

配置说明

  • ERB的三元表达式会判断当前页面是否存在分卷标题:
    • 如果document.part_title有值(当前内容属于某个分卷),则拼接分卷标题与章节标题,用“–”分隔
    • 如果document.part_title为空(如前言、附录等无分卷内容),则仅显示章节标题
  • 必须用单引号包裹ERB代码,避免YAML解析时破坏模板结构

验证要点

  • 确保使用Asciidoctor PDF 2.3.0及以上版本,旧版本对主题中的ERB支持有限
  • 分卷需通过Asciidoc的:part:属性定义,示例:
    = 第一卷:核心概念
    :part:
    
  • 前言、附录等无分卷的内容,不要添加:part:属性,确保document.part_title返回空值

内容的提问来源于stack exchange,提问作者flyx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 16:37:33