复制/粘贴到 Word 时如何保留 rstudio 的格式?

Posted

技术标签:

【中文标题】复制/粘贴到 Word 时如何保留 rstudio 的格式?【英文标题】:How to preserve formatting from rstudio when copy/pasting to Word? 【发布时间】:2012-04-25 02:26:28 【问题描述】:

R、Rstudio 和 SO 的新手——对于任何失礼,我提前道歉。

我想在 Word 2010 中重现我的代码以完成家庭作业。脚本是用 rstudio 编写的,我想在粘贴到 Word 时保留 rstudio 的格式。原则上,我喜欢 rstudio 使用的字体颜色和间距。我发现当我从 SAS 粘贴到 Word 时,格式被保留了,但这里没有骰子。

我通常会寻找复制特殊/粘贴特殊选项来执行此操作,但我找不到任何选项。当我尝试将特殊内容粘贴到 word 中时,只显示未格式化的文本选项。我宁愿不逐行重新格式化文本,因为我认为它在 rstudio 中看起来很不错。

我曾想过尝试将 rstudio 中的脚本保存为可以保留其格式的某种格式,但我找不到任何方法来做到这一点。有谁知道我如何实现这个目标?

提前致谢

【问题讨论】:

我们应该少一些教条。我认为对于开始这项业务的人来说,这接近于编程。 【参考方案1】:

目前尚不清楚您是从 RStudio 的脚本编辑器(大约有 4 或 5 种颜色)粘贴,还是从 RStudio 中的 R 控制台(脚本 + 输出)粘贴(只有 2 种颜色)。

如果您是从控制台粘贴,请再次选中“选择性粘贴”。应该有一个“html 格式”选项可以满足您的需要(尽管您可能需要调整字体大小以使所有内容都适合您的页边距)。

如果您是从脚本编辑器粘贴,那么直接复制和粘贴解决方案就不走运了。但是有一个复制粘贴和复制粘贴的解决方案......

一种解决方案是使用Notepad++。在 RStudio 中,保存您的脚本(使用“.R”扩展名),然后在 Notepad++ 中打开该脚本。 (或从 RStudio 复制并粘贴到 Notepad++,但请确保将文件的语言——从“语言”菜单——设置为 R)。当您的脚本在 Notepad++ 中正确突出显示时,请转到“插件 > NppExport > 复制 HTML 到剪贴板”菜单以复制打开的文件。然后可以将其粘贴到 HTML 格式的 MS Word 中。

【讨论】:

太棒了!我在脚本编辑器中工作,并希望从那里粘贴。没想到 Notepad++ 这么聪明。非常感谢! 它确实按预期工作。我将标记为正确 - 没有注意到 upvote/downvote 按钮下方的选项(我还不能使用)。再次感谢! 也适用于 Windows 10 上的 PowerPoint 2016 我遇到了一个问题,Copy HTML to clipboard 在粘贴到 PowerPoint 时没有保留回车符。 NppExport -> Copy RTF to clipboard 为我保留了回车和语法高亮显示。 这对我不起作用。这个词限制了我粘贴未格式化的文本。【参考方案2】:

以防万一其他人寻找这个问题......

另一种使用 RStudio 将所有源代码保存在具有美观格式的 word 文档中的方法是使用 File/Compile Notebook 选项,选择 MS Word 作为输出格式。

使用此选项,将生成一个.docx 文档,其中包含您的脚本输出以及原始源代码。不过,该脚本将被执行。

如果你不希望你的代码被评估(你只想要一个简单的复制粘贴),你可以在脚本的开头添加#+eval=FALSE,然后源代码将在word文档中复制而无需正在评估中。

这种方法依赖于knitr。如果有人想开始玩这个,这里有一个例子。

#' ---
#' title: "My homework"
#' author: John Doe
#' date: June 15, 2015
#' output: word_document
#' ---

# The header above sets some metadata used in the knitr output

# Conventional comments are formatted as regular comments

# Comments starting with "#+" control different knitr options.

#+echo=FALSE,message=FALSE,warning=FALSE
library(ggplot2)


#+echo=TRUE
#' Comments with a "+" sign are used to tell knitr what should be
#' done with the chunk of code:
#'
#'  - echo: Show the original code or not
#'  - eval: Run the original code or not
#'  - message: Print messages
#'  - warning: Print warnings
#'  - error: Print errors
#'  ...

#' Comments with an apostrophe "'" will be printed as regular text.
#' This is very useful to explain what you are actually doing!

# Regular comments can be used to document the code as usual
# Figures are printed:
ggplot(mpg, aes(x=cty, y=hwy)) + geom_point(aes(color=class))

#' Formatting **options** are possible.
#' Even [links](http://***.com/questions/10128702/how-to-preserve-formatting-from-rstudio-when-copy-pasting-to-word)
#'


#' This will show all the packages and versions used to generate this document.
#' It can be used to make sure that your teacher has all he needs to run your script
#' if he/she wants to.
sessionInfo()

【讨论】:

【参考方案3】:

假设您可以访问互联网

    复制粘贴到gist.gisthub.com 选择“R”作为语言 - 这应该提供颜色 点击创建(秘密或公开)要点 从 gist 复制并粘贴到您的文字处理器中。

与notepad++方案对比:

在线备份您的代码,并记录您剪辑它的时间。 您无需安装任何其他软件,如果您是使用公共计算机的学生,这将非常有用。

【讨论】:

好答案。唯一的问题是您可能不想公开分享您的代码。 不工作了,他们似乎已经删除了选择你的语言的选项【参考方案4】:

如果您只需要格式化的代码:

第 1 步:只需在代码开头添加 #+eval=FALSE。

Step2:然后转到文件 -> 针织文档。编译msword/PDF/Html中的文件。

只需在代码开头添加#+eval=FALSE。

按CTRL+SHIFT+K,然后将文件编译成msword/PDF/Html。

如果您需要带有输出的代码,请不要在代码开头添加 #+eval=FALSE 并直接执行第 2 步。

【讨论】:

【参考方案5】:

我同意 zeehio 的观点,即使用 Knitr 可能是最好的选择。但另一种方法是使用Pretty R tool 和“打开文档文本”步骤here。基本上只需将代码复制并粘贴到漂亮的 R 中,然后将输出(不是 html)复制并粘贴到打开的文档中。

【讨论】:

【参考方案6】:

从 Rstudio 控制台窗口复制并粘贴到 Word 文档后,您需要突出显示所有刚刚复制的文本并将字体更改为 Courier New。这将为您提供与 Rstudio 控制台窗口中相同的间距和排列。

【讨论】:

差不多。行与行之间会有太多的空间,因为每一行都开始一个新的段落。最好是定义一个样式表代码,并将“after”设置为0pt。 谢谢大家,我会尝试结合你的两个建议。【参考方案7】:

将代码从 Rstudio 编辑器复制粘贴到“visual studio code”,然后再次从那里复制到文字处理器中。 为此,您必须首先在 Visual Studio 代码中安装 R 扩展。 'Visual Studio Code' 本身就是一个 IDE,它也可能用于 R 语言,但现在我强调用它来回答上述问题。

【讨论】:

你能举个例子吗?【参考方案8】:

在 R 中,我使用 Monaco 编辑器字体。要在 Microsoft Word 中复制粘贴 R consol 的输出,我选择 consol 的输出,右键单击并复制并粘贴到我的 Word 文档中。将输出粘贴到 word 中后,我选择它并将其放入 Word 的 Monaco 字体,并在必要时减小字体大小。

这很好地完成了这项工作,并且完美地保留了 R 控制台的输出样式以及编写的代码块。

【讨论】:

【参考方案9】:

如果您想在从 R 控制台处理选择时保留格式,则需要安装旧版本的 R Studio。版本 1.2.5042。它不适用于较新的版本

【讨论】:

以上是关于复制/粘贴到 Word 时如何保留 rstudio 的格式?的主要内容,如果未能解决你的问题,请参考以下文章

在网页编辑器中粘贴时如何保留Word中的表格?

在网页编辑器中粘贴时如何保留WORD中的表格

word复制粘贴颜色怎么没有了

百度富文本编辑器支持从word复制粘贴保留格式和图片的插件

粘贴到 Web 表单时如何保留 Word 文档格式?

Python如何将整个Word文档中的格式、段落、图标复制到另一个word文档末尾?