楼主: 比尔2020
12855 13

[实际应用] Rmarkdown生成PDF,如何添加分页符? [推广有奖]

  • 0关注
  • 0粉丝

高中生

52%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
61.6364
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
217 点
帖子
12
精华
0
在线时间
45 小时
注册时间
2021-12-6
最后登录
2025-7-21

楼主
比尔2020 发表于 2021-12-16 15:07:53 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
写论文要插入很多图表,刚刚学习Rmarkdown,千辛万苦调试出来了PDF及汉字显示。但标题、目录及摘要、正文之间都没有分页,百度了一下,说是在RMD文件中插入 <div STYLE="page-break-after: always;"></div>  就可以分页,没有实验成功。
请教做过的老师指导一下,如何在Rmarkdown导出PDF时,插入分页符?谢谢!!!

这是我的PDF实验文件。
---
title: "一个PDF实验"
author: "先生"
date: "2021/12/16"
documentclass: ctexart
geometry: "left=2.5cm,right=2cm,top=3cm,bottom=2.5cm"
output:
  pdf_document:
    toc: yes      #目录
    latex_engine: xelatex
indent: true      #首行缩进
#header-includes:
#- \usepackage{pdfpages}
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
<div STYLE="page-break-after: always;"></div>
#  这是一个实验
## R Markdown

This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see <http://rmarkdown.rstudio.com>.

这是一个表格。

```{r cars}
summary(cars)
```

## Including Plots

You can also embed plots, for example:

```{r pressure, echo=FALSE}
plot(pressure)
```

Note that the `echo = FALSE` parameter was added to the code chunk to prevent printing of the R code that generated the plot.


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Down Mark Own RMA Mar 毕业论文

回帖推荐

llb_321 发表于4楼  查看完整内容

1、\newpage是tex的指令,按理说在rmarkdown的ctex中是可以用的,至于YAML只是文档的配置部分,似乎可以不用在最终的pdf中显示 2、我只在几年前琢磨过ctex包和模板,后来我都是用texlive直接做文档,很少用rmarkdown了,所以您说的rep模板的基本设置问题,一时半会儿我也想不起来3、给您传两个ctex文档,不过是在latex环境用的,在rmarkdown环境如何配置可能需要摸索一下,还有一个knit trunc文档,我没排版,里面有一些markdow ...

本帖被以下文库推荐

沙发
llb_321 在职认证  发表于 2021-12-16 22:07:19
其实吧,你在需要分页的地方加上下面的tex命令

\newpage

应该就可以了.

试试先,如果有问题再说

藤椅
比尔2020 发表于 2021-12-18 22:05:22
llb_321 发表于 2021-12-16 22:07
其实吧,你在需要分页的地方加上下面的tex命令

\newpage
真的可以。
太感谢您了。
百度了好几天都没找到方法。
"\newpage"这个命令,好像在YAML部分不能用。(可能是我不会)

我使用了谢易辉写的CTEX模板创建文档,定义documentclass: ctexrep。可以实现论文标题页和目录页分离。
可是,这个模板的导出的PDF页眉总是左边“目录”两个字,右面页码。这个模板的页眉、字体、字号以及行距在哪里设置啊?怎么设置?谢谢了!!!

板凳
llb_321 在职认证  发表于 2021-12-19 13:35:49
比尔2020 发表于 2021-12-18 22:05
真的可以。
太感谢您了。
百度了好几天都没找到方法。
1、\newpage是tex的指令,按理说在rmarkdown的ctex中是可以用的,至于YAML只是文档的配置部分,似乎可以不用在最终的pdf中显示
2、我只在几年前琢磨过ctex包和模板,后来我都是用texlive直接做文档,很少用rmarkdown了,所以您说的rep模板的基本设置问题,一时半会儿我也想不起来3、给您传两个ctex文档,不过是在latex环境用的,在rmarkdown环境如何配置可能需要摸索一下,还有一个knit trunc文档,我没排版,里面有一些markdown的设置方法
4、如果写大块文档,比如论文,最好不同rmarkdown,ctex模板需要调整的参数可能会很多,其实可以用学校的论文模板在latex、bookdown等环境辑稿,效率完全是不一样的.

ctex.pdf (3.13 MB) ctex-faq.pdf (603.83 KB)
knitr trunc opt.doc (69 KB)

已有 1 人评分经验 论坛币 收起 理由
dxystata + 100 + 10 热心帮助其他会员

总评分: 经验 + 100  论坛币 + 10   查看全部评分

报纸
比尔2020 发表于 2021-12-21 11:48:42
llb_321 发表于 2021-12-19 13:35
1、\newpage是tex的指令,按理说在rmarkdown的ctex中是可以用的,至于YAML只是文档的配置部分,似乎可以不 ...
谢谢老师的指点。
我的论文表格、统计图比较多,My boss建议使用rmarkdown来做。刚刚接触,还没理清头绪,恶补您给的这些资料中。。。
因为我需要使用kableExtra包里的表格插入迷你图功能,这个函数不支持word输出,只能选择PDF格式,安装的是谢益辉大侠的tinytex包,使用rticales包中的CTeX模板创建的rmd文档。过程踩很多坑中。。。

还是没太搞明白,安装的tinytex这个包中ctex的模板参数(比如字号、行距、页眉...)在哪里修改?修改什么?试着在YAML中修改,总是提示错误。
可能是还没真正搞明白整个流程。

地板
llb_321 在职认证  发表于 2021-12-24 21:43:41
抱歉,这几天忙着改稿,没看论坛.
https://bookdown.org/yihui/rmark ... .html#latex-options 这里有rmarkdown输出pdf时可以用的一些参数调整和模板方法,您再试试

7
llb_321 在职认证  发表于 2021-12-24 22:44:39
我尝试了在rstudio自带的pdf模板中修改了YAML,可以实现页眉右侧显示页码,左侧显示章节名称,你试试

  1. ---
  2. title: "Untitled"
  3. output:
  4.   pdf_document
  5. header-includes:
  6.   - |
  7.     ```{=latex}
  8.     \usepackage{fancyhdr}
  9.     \pagestyle{fancy}
  10.     \fancyhf{}
  11.     \fancyhead[RE,RO]{\thepage}
  12.     \fancyhead[LO]{\rightmark}
  13.     \fancyhead[LE]{\leftmark}
  14.     ```
  15. toc: TRUE
  16. latex_engine: xelatex
  17. ---
复制代码

8
比尔2020 发表于 2021-12-26 10:37:02

title: “一个PDF实验文档”
author: “我”
date: “2021/12/26”
output:
pdf_document:
header-includes:
toc: TRUE
latex_engine: xelatex
fontsize: 12pt

  • |
    \usepackage{fancyhdr}
    \pagestyle{fancy}
    \fancyhf{}
    \fancyhead[RE,RO]{\thepage}
    \fancyhead[LO]{\rightmark}
    \fancyhead[LE]{\leftmark}
    

knitr::opts_chunk$set(echo = TRUE)

R Markdown

This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.

When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:

summary(cars)

\newpage

Including Plots

You can also embed plots, for example:

plot(pressure)

Note that the echo = FALSE parameter was added to the code chunk to prevent printing of the R code that generated the plot.

编译出错:
output file: 4huifu.knit.md

! LaTeX Error: Unicode character 涓€ (U+4E00)
not set up for use with LaTeX.

错误: LaTeX failed to compile 4huifu.tex. See https://yihui.org/tinytex/r/#debugging for debugging tips. See 4huifu.log for more info.
停止执行

我是按照新建文档->rmarkdown文档->输出PDF。流程新建的文档,然后将您给的页眉页脚定义YAML部分拷贝到我的文档相应部分,编译出现错误提示。开始以为中文汉字的问题,将title及author中的中文换成英文,错误照旧。
不知道是哪里除了问题,看来我这需要恶补的东西还很多,我再查查吧。

谢谢老师不厌其烦的耐心指教!!!

9
llb_321 在职认证  发表于 2021-12-26 14:25:32
先试试rstudio的Tools > Global options > Sweave中,设置weave rnw files using: knitr,typeset Latex into PDF using: XeLaTex 这两个选项.

我给您的yaml 也是直接在rstudio的缺省模板中修改的,可以编译出pdf。

但是没有试验用ctex模板会怎样(因为调整起来太麻烦我没安装ctex和tinytex),不知道和ctex的设置是否冲突。但是,这段插入的latex代码,在texlive环境中与ctexbook 模板没有冲突,而且仅是最基本的设定,没有自定义什么东西,按道理在rmarkdown中应该也不会有冲突.

rmarkdown对代码格式比较敏感,比如我给您的代码,每行缩进多少,可能都会出错.

我看了您最后的代码,header-includes:后面添加了一级代码,比如toc、fontsize,然后才是latex指令,这里有个问题,以我那段代码为例,header-includes:是告诉yaml下面是需要插入的部分,所以应该是直接跟着需要插入latex代码,而这段插入的代码有个固定的框架格式,就是前面那两个不知道做什么用的符号,然后是三个反引号设定的一个trunc,并且指明这个trunc是latex,而需要插入的latex指令都包含在这个trunc里.

您试试新建个pdf的脚本,然后把里面的所有东西清掉,把我给您的代码放进去(注意,不要用那个代码框中下面的复制代码功能,因为会额外增加代码中不需要的占位符,而是在那段代码中用鼠标选中后ctrl+c的方式复制),然后直接在下面添加一些文字和代码段trunc,试试能不能编译出来.  另外您代码中有欧元符号吗,如果有的话在\usepackage{fancyhdr}指令上面添加一行\usepackage{eurosym},然后在文档中需要添加欧元符号的地方用\euro 来实现比如 \euro 128.76,这个我试过了可以编译。

总之rmarkdown如果编译英文文档很好,但是用ctex模板编辑中文文档,除非您不在乎格式,不调整什么,否则很麻烦.
如果您以后这方面需要很多,建议您安装texlive,然后利用成型的模板,很多学校都有论文模板,会非常方便,虽然也需要一段时间摸索,但是调整起来绝对比rmarkdown+ctex容易得多. 还有一层考虑,很多出版社对文稿有格式要求,rmarkdown生成的文档调整起来绝对会搞的人焦头烂额,可能最后都不得不改成word,呵呵.


10
llb_321 在职认证  发表于 2021-12-26 14:49:03
另外给您做了rmd文件,以及相应生成的pdf,您用这个rmd再试试
11111.rar (331.64 KB) 本附件包括:
  • 1111.pdf
  • 1111.Rmd

我没设ctexrep类型,直接在默认模板里改的,可以实现中文、公式,文档的页面设定也可以改,附件里我改成了B5,页边距都改成2cm了。至少在我这里没发生中文编码的问题,插入的latex指令也都可以通过

11111.rar
下载链接: https://bbs.pinggu.org/a-3600441.html

181.62 KB

本附件包括:

  • 1111.Rmd
  • 1111.pdf

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-24 15:23