代码之家  ›  专栏  ›  技术社区  ›  Nautica

在r markdown中为分页符“breaks”内容表实现CSS样式

  •  2
  • Nautica  · 技术社区  · 7 年前

    由于在Knitr导出为PDF时使文档看起来很美观的问题,我正在通过 wkhtmltopdf 命令行实用工具。

    一个非常基本的降价文档复制了我的问题:

    ---
    title: "Untitled"
    output: 
      html_document:
        df_print: paged
        toc: true
        number_sections: true
    ---
    
    ## ALPHA Header
    
    ### Alpha sub-1
    
    ### Alpha sub-2
    
    ## BETA Header
    
    ### Beta sub-1
    
    ### Beta sub-2
    

    这将生成一个包含目录的HTML文件,但当我通过wkhtmltopdf转换此文件时,不会出现分页符。

    我的答案来自 this Github查询,尝试实现建议的自定义CSS样式类型。注意,我不太了解HTML/CSS。

    我修改了yaml之后的降价代码(保持不变),修改方式如下:

    <style type="text/css" media="screen,print">
           /* Page Breaks */
    
    /***Always insert a page break before the element***/
           .pb_before {
               page-break-before: always !important;
           }
    </style>
    
    <div class="page1 pb_before">
    ## ALPHA Header
    </div>
    <div class="page2 pb_before">
    ### Alpha sub-1
    </div>
    <div class="page3 pb_before">
    ### Alpha sub-2
    </div>
    <div class="page4 pb_before">
    ## BETA Header
    </div>
    <div class="page5 pb_before">
    ### Beta sub-1
    </div>
    <div class="page6 pb_before">
    ### Beta sub-2
    </div>
    

    编织这个版本,标题和目录的编号系统已经消失了,但是现在当我开始用wkhtmltopdf将html文件转换为pdf时,我现在得到了每个标题的单独页面。

    所以我的问题是-我如何将这两个元素合成在一起,在导出到HTML后,我有一个目录和编号的标题,以及准备好HTML/CSS代码,当我通过wkhtmltopdf转换时,允许在每个标题后都有分页。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Nautica    7 年前

    我找到了一个解决方法:

    Insert:

    <div class="page1 pb_after">
    &nbsp;
    </div>
    

    在每一个标题之前,我要一个单独的页面。