从 R Markdown 中的字数统计中排除部分

2024-05-04

我正在用 Rmarkdown 写一篇论文(通过 LaTeX 导出为 PDF),我需要计算正文中的字数。对于 LaTeX 文档,我使用texcount从命令行,使用我的 tex 文档中的以下标签指定要从字数统计中排除的部分:

%TC:ignore 
The part that is to be ignored (e.g., Appendix)
%TC:endignore 

如何在我的 Rmd 文件中包含 LaTeX 注释以避免手动添加%TC每次我重新生成它时,我的 tex 文件中都会包含行吗?

这是我的 MWE.Rmd:

---
output:
  pdf_document: 
    keep_tex: yes
---

Words that I want to count. 

<!-- TC:ignore -->
Words that I want to exclude but cannot, 
because the comments do not appear in the `.tex` file. 
<!-- TC:endignore --> 

%TC:ignore 
Other words that I want to exclude but this does not work either 
because `%` is not interpreted as \LaTeX comment. 
%TC:endignore 

#%TC:ignore
Another attempt; it does not work because `#` is for sections, 
not comments. 
#%TC:endignore

一旦我编织了 .Rmd 文件并获得了输出 .tex 文件,我将输入:

texcount MWE.tex

答案应该是6个字。 谢谢!

更新1:

在 Twitter 上,@amesoudi 建议使用 RStudio 插件 (WordCountAddIn) 来统计我的 Rmd 文档中的字数。该插件在那里可用https://github.com/benmarwick/wordcountaddin https://github.com/benmarwick/wordcountaddin。然而,这不是自动化的,并且仍然涉及一些指向和点击。

更新2:
另一种解决方案是

  • 使用特定的表达式来识别应该是 LaTeX 注释的内容,例如LATEXCOMMENT%TC:ignore in the .Rmd file,

  • 有一个脚本可以自动删除LATEXCOMMENT生成的表达式.tex文档(例如sed)


实际上,我们可以直接使用 .Rmd 文件,而不是对输出的 LaTex 文件进行字数统计。

这段代码的方法与字数统计插件 https://github.com/benmarwick/wordcountaddin您提到了标签之间的任何文本<!---TC:ignore---> and <!---TC:endignore--->不会被计入计数:

library(stringr)
library(tidyverse)

RmdWords <- function(file) {

  # Creates a string of text
  file_string <- file %>%
    readLines() %>%
    paste0(collapse = " ") %>%
    # Remove YAML header
    str_replace_all("^<--- .*?--- ", "") %>%    
    str_replace_all("^--- .*?--- ", "") %>%
    # Remove code
    str_replace_all("```.*?```", "") %>%
    str_replace_all("`.*?`", "") %>%
    # Remove LaTeX
    str_replace_all("[^\\\\]\\$\\$.*?[^\\\\]\\$\\$", "") %>%
    str_replace_all("[^\\\\]\\$.*?[^\\\\]\\$", "") %>%
    # Deletes text between tags
    str_replace_all("TC:ignore.*?TC:endignore", "") %>%
    str_replace_all("[[:punct:]]", " ") %>%
    str_replace_all("  ", "") %>%
    str_replace_all("<", "") %>%
    str_replace_all(">", "")

  # Save several different results
  word_count <- str_count(file_string, "\\S+")
  char_count <- str_replace_all(string = file_string, " ", "") %>% str_count()

   return(list(num_words = word_count, num_char = char_count, word_list = file_string))
}

该函数返回列表中的三个项目:

  • 字数:文件中的字数
  • num_char: 字符数
  • 单词表:文档中所有单词的列表

如果您想在编译后的报告中显示结果,您可以内联编写 r 代码,如下所示:

```{r}
words <- RmdWords("MWE.Rmd")
```
 There are seven words with 34 characters.

<!-- TC:ignore -->
Words that I want to exclude but cannot, 
because the comments do not appear in the `.tex` file. 
<!-- TC:endignore --> 

<!-- TC:ignore -->
Word Count: `r words$num_words` \newline
Character Count: `r words$num_char`
<!-- TC:endignore --> 

注:部分原剧本改编自http://www.questionflow.org/2017/10/13/how-to-scrape-pdf-and-rmd-to-get-inspiration/ http://www.questionflow.org/2017/10/13/how-to-scrape-pdf-and-rmd-to-get-inspiration/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 R Markdown 中的字数统计中排除部分 的相关文章

  • Latex:列表前后的垂直空间

    我无法摆脱列表前后的垂直空间 我有如下代码 begin list setlength itemsep 0pt setlength parskip 0pt setlength parsep 0pt item First item item S
  • .rmd 文件的访问名称并在 R 中使用

    我正在编织一个名为MyFile rmd 我如何访问该字符串MyFile在编织过程中并将其用于 在 YAML 标头的标题部分中使用 在后续的 R 块中使用 title r rmarkdown metadata title author My
  • 缩放电缆表以适合页面宽度

    如何使用 kable 函数格式化 pdf 中的表格 因为我的输出表格宽度超过了pdf的宽度 这是一个例子 output pdf document r df lt cbind mtcars 1 5 mtcars 1 5 knitr kable
  • 在 R Markdown 文件中嵌入 pdf 并调整分页

    我即将完成博士学位 我需要在 R Markdown 文本中间的某个位置嵌入一些论文 pdf 格式 将 R Markdown 转换为 PDF 时 我希望将这些 PDF 论文嵌入到转换中 但是 我希望这些 PDF 论文也根据 Markdown
  • Rmarkdown:同一页面上的多个图具有单独的标题

    我正在用 R markdown 编写一份带有 pdf 输出的报告 我有几个图 我想在 2x2 矩阵中每页显示四个图 有没有办法让它们像这样显示并带有单独的标题 这是我到目前为止所尝试过的 包 gridExtra 我可以轻松设置我想要的布局
  • 在 R 中将多个回归表输出到 Word 文档的多个页面中

    我的目标是创建一个多页 Microsoft Word 文档 在连续页面上包含许多格式化回归表输出 理想情况下 这可以使用 R Markdown 来完成 我很幸运地使用Word在Word中制作了格式良好的回归表sjPlot tab model
  • ggplot2:从纵横比中排除图例

    I use ggplot2 and knitr发布带有右侧图例的散点图 图例包含在纵横比中 因此破坏了绘图的 方形 如图所示默认主题 https github com hadley ggplot2 wiki themes 当图例文本变得比
  • tikz:为节点设置适当的x值

    这个问题源于这个问题here https stackoverflow com questions 2772972 latex curly braces outside math 我想生成一个跨越一些文本行的大括号 问题是我必须手动对齐 x
  • ^ 和 _ 宏之后出现的数字(是:LaTeX 限制?)

    我在 LaTeX 中遇到了一个恼人的问题 我有一个大约 1000 行的 tex 文件 我已经有了一些数字 但是当我尝试添加另一个数字时 它会吐出 Undefined control sequence
  • 更改 RMarkdown 中的块背景颜色

    我希望某个代码块以不同的颜色 例如红色 突出显示 以表明这是不好的做法 如果我使用的是 Rnw 我可以添加块选项background red 并得到我想要的 但这似乎不起作用 Rmd 我的猜测是 我需要制作一个自定义 css 样式表 尽管我
  • 在 LaTeX 中自动将新句子中第一个单词的第一个字母大写

    我知道 LaTeX 的吹嘘点之一是它没有这种微软式的行为 尽管如此 它有时还是有用的 LaTeX 已经在您键入 非反斜杠 句点后添加了一个额外的空格 因此应该可以使其自动将后面的字母大写 是否有一个明显的方法来编写一个宏来执行此操作 或者是
  • 在小页面/子图中缩放时控制 LaTeX 中图形的字体大小?

    我正在使用 pgf tikz 图形 我想知道在 minipage subfig 环境中使用图形时如何控制图形中字体大小的缩放 有没有办法手动为 pgf tikz 图形或一般乳胶设置永久字体大小 以使字体大小与缩放无关 理想情况下 我希望能够
  • 自动化 RStudio 处理 RMarkdown?

    我有一个 RMarkdown 文件 用于生成漂亮的 HTML 报告 问题是 我希望能够自动化它 以便它可以在无头服务器上运行 因此 不会有人启动 Rstudio 并按下 knithtml 按钮 而且 Rstudio 似乎正在做很多额外的魔法
  • iPython 笔记本上的内联数学模式

    在 iPython 笔记本中 我如何编写数学公式 例如r 2在一行中 乳胶词汇中的内联数学模式 IE 打印公式的时候可以不换行吗 如果像在 LaTeX 中一样 它应该是 r 2 但它不起作用 感谢您的帮助 在 Markdown 单元格中 您
  • R markdown 引文标识符

    R markdown 允许使用 YAML 元数据部分中的参考书目元数据字段指定参考书目文件 例如 title Sample Document output html document bibliography bibliography bi
  • 如何在knitr中安装软件包?

    到目前为止 我一直在使用这段代码来加载 R 包并编写 R 文件 但我正在尝试使用knitr rm list ls all TRUE kpacks lt c ggplot2 install github devtools mapdata ne
  • 循环中的knitr模板和子文档

    圣诞节前我之前问过跨多个 knitr 文档的单一样式表 https stackoverflow com questions 20370584 single style sheet across multiple knitr document
  • 如何在直线上分解长方程?

    我正在尝试在新行中添加一个方程 问题是方程对于该行来说太长了 我需要手动打破它 否则 它只会重叠到右列或右边缘 并且看起来很难看 有没有一种方法可以让 LaTeX 帮我打破方程 看起来不错 我附上我的乳胶代码 begin align f n
  • 更改 pander 中的默认对齐方式 (pandoc.table)

    我目前正在切换到pander对于我的大部分时间knitr markdown格式化 因为它提供了如此出色的pandoc支持 我不太满意的一件事是默认的居中对齐 营销人员可能会喜欢它 但对于技术报告来说这是一个可怕的事情 使用的最佳选择Hmis
  • Pandoc Markdown 分页符

    最近我开始使用 Pandoc markdown 它似乎是 LaTeX 的一个很好的替代品 因为我的文档没有很多数学公式 而且我没有任何使用 LaTeX 的经验 再加上不到 2 周的提交截止日期 这使它成为一个很好的解决方案 我无法解决的一件

随机推荐

  • 如何使用 ASP.Net 中的 PageMethods 将多维数组从 Javascript 传递到服务器

    我有一些 li 我的 HTML 页面中的项目如下 li li class ui state default Item 2 li li class ui state default Item 3 li li class ui state de
  • 完全替换 ASP.Net 的会话

    ASP Net 会话对于传统的 WebForms 应用程序来说似乎很完美 但它们所做的一些事情对于现代 AJAX 和 MVC 应用程序来说是一个严重的问题 具体来说 访问 ASP Net 提供程序只有 3 种方法 锁定读和写 默认 会话被锁
  • 像 Gmail 应用程序一样处理 Android WebView 中的外部链接

    我是一名网络开发人员 我目前正在 Android Studio 上使用 WebView 开发 Android 应用程序 该 WebView 将我的网站作为 Android 应用程序访问 我的一个网页包含许多外部链接 我的目标是让 Andro
  • 对于确实存在的字典,pdb 下“NameError:未定义全局名称”

    我遇到了一个范围问题lambda功能 我可以成功地将 foo 输出到标准输出 但在使用时出现错误max 包括一个lambda 请参阅下面的简化代码 总而言之 我正在尝试找到嵌套键的最大值budget在未知数量的一阶密钥内 Pdb foo s
  • 将参数传递给 SQL Server 中的 IN 子句[重复]

    这个问题在这里已经有答案了 可能的重复 参数化 SQL IN 子句 https stackoverflow com questions 337704 parameterizing a sql in clause SQL Server 带有声
  • Windows 通用应用程序串行端口无法打开,SerialDevice.FromIdAsync 始终为 null

    我正在尝试在 Windows 通用应用程序中使用串行端口 我一直在使用微软的串行示例应用程序作为模板 但是我遇到了一个相当奇怪的问题 var dis await DeviceInformation FindAllAsync SerialDe
  • 来自无符号字符缓冲区的 QImage(jpg 格式)

    我有类型的缓冲区unsigned char 我用JPG图像填充 我想使用此缓冲区将图像绘制到 QLabel 中的应用程序屏幕上 我已经这样做了 但图像不正确 谁能告诉我最好的方法是什么 QPixmap pix QPixmap fromIma
  • 观察者不触发

    我正在使用带有选项 API 的 Vue 3 如下面发布的代码所示 在watch对象 我监视发生的变化isToggleBtnLabelDigitizePolygon 在方法中onDigitizePolygon我改变的值isToggleBtnL
  • /usr/bin/env: 'python3\r': Windows 中没有抛出此类文件或目录错误

    我正在尝试从下面的存储库在我的 Windows 本地计算机中部署 hyperledger sawtooth https github com hyperledger education https github com hyperledge
  • 在 Linux 集群上安装 R `forecast` 包:编译器问题?

    我正在寻找测试性能R 更具体地说是一些例程forecast封装在具有 Intel Xeon Phi 协处理器的 HPC 集群上 据我所知 系统管理员已经建立了R 3 2 5按照英特尔网站上的说明从来源获取 https software in
  • 在 SQL 表中的文本字符串中查找换行符?

    我试图在 SQL 表的列中查找换行符和回车符 但我不确定语法 I tried SELECT foo FROM test WHERE foo LIKE CHAR 10 尽管我知道该表应该返回结果 但我没有得到任何结果 我究竟做错了什么 SEL
  • 如何让NSManagedObject不出错?

    我目前正在调试另一个开发人员编写的一个大项目 该项目使用CoreData我对此很陌生 我遇到了崩溃 这是由于某些NSManagedObject是一个错误 我对什么是错误不太了解 我想将对象转换为 非错误 看看它是否有帮助 阅读文档让我想到t
  • 我无法让 jQuery 工作 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 你好 我正在尝试一些 jQuery
  • 在 Vapor 应用程序中使用 Fluent 进行连接

    我正在努力弄清楚如何使用 Fluent 将两个表连接在一起 本质上我想运行这个 SQL 命令 SELECT p name o amount o amount p amount total FROM OrderPoints o INNER J
  • Angular.js 性能问题

    性能选项卡上的 Batarang 显示在应用程序的根目录上 Angular 正在调用如下所示的函数 function a var e f i a eval h m hc i 根据 batarang 的说法 它的速度慢得令人痛苦 当我在应用程
  • 如何创建 3D 高度图

    我有一个 2D 数组 Z 存储该元素位置的高度 除了使用方法之外here http matplotlib org mpl toolkits mplot3d tutorial html surface plots其中我需要创建与 Z 大小相同
  • ElasticSearch 多滚动 Java API

    我想从索引中获取所有数据 由于项目数量对于内存来说太大 我使用滚动 很好的功能 client prepareSearch index setTypes myType setSearchType SearchType SCAN setScro
  • 在 LINQ 中选择案例[重复]

    这个问题在这里已经有答案了 我怎样才能把它翻译成 LINQ 呢 select t age as AgeRange count as Users from select case when age between 0 and 9 then 0
  • Gson解析没有键值对的字符串

    我正在尝试使用 Gson 库解析字符串 但没有成功 这是我的字符串 1 816513 52 5487566 1 8164913 52 548824 此示例中的问题是没有键值对 我查看了其他示例 但它们都有键值对 看起来不像我的问题 我的解决
  • 从 R Markdown 中的字数统计中排除部分

    我正在用 Rmarkdown 写一篇论文 通过 LaTeX 导出为 PDF 我需要计算正文中的字数 对于 LaTeX 文档 我使用texcount从命令行 使用我的 tex 文档中的以下标签指定要从字数统计中排除的部分 TC ignore