使用Pandoc自定义ePUB模板,如何实现标题页与献词分页?
解决Pandoc ePub模板献词分页问题
原代码里用<span>设置分页无效,是因为行内元素的page-break-after属性在多数ePub阅读器中不被支持,必须改用块级元素配合分页样式,以下是几种可靠的调整方案:
方案1:用块级元素强制分页
将行内的<span>替换为块级的<div>,确保分页规则被阅读器识别:
$if(dedication)$ <div style="page-break-after: always;"></div> <p class="dedication">$dedication$</p> $endif$
方案2:直接给献词段落加前置分页
省略额外的分页元素,直接给献词段落设置page-break-before,效果更简洁:
$if(dedication)$ <p class="dedication" style="page-break-before: always;">$dedication$</p> $endif$
方案3:兼容CSS3的分页属性
部分现代阅读器更支持CSS3的break-after属性,可以同时写两种属性做兼容:
$if(dedication)$ <div style="page-break-after: always; break-after: page;"></div> <p class="dedication">$dedication$</p> $endif$
额外优化建议
如果需要更规范的样式管理,可以把分页样式放到模板的CSS部分:
.page-break { page-break-after: always; break-after: page; } .dedication { /* 可添加献词的字体、居中、边距等样式 */ text-align: center; margin-top: 50%; }
然后模板里引用类:
$if(dedication)$ <div class="page-break"></div> <p class="dedication">$dedication$</p> $endif$
内容的提问来源于stack exchange,提问作者vvv4231
相关产品推荐
相关产品推荐

