5

有没有一种简单的方法可以自动删除

\begin{tabular}{@{\extracolsep{5pt}}lc}

\end{tabular}

Stargazer LaTeX 输出的开头和结尾的行?

事实上,我只需要内部的 LaTeX 代码,然后从 stargazer 生成的 TeX 文件中手动删除这些行完全是浪费时间......

4

2 回答 2

3

为创建 LaTeX 输出stargazer而定义的每个函数都在(内部)包装函数中定义.stargazer.wrap。因此,自动更新组件并不容易。您要么必须复制在本地维护的包,要么在.stargazer.wrap每次加载包时编辑函数。

以下是如何执行后者,遵循如何在包命名空间中覆盖不可见函数?(管理您自己的副本将需要类似的东西):

  1. 负载stargazer

    > library(stargazer)
    
  2. 编辑命名空间/包.stargazer.wrap内的函数:stargazer

    > fixInNamespace(".stargazer.wrap", pos="package:stargazer")
    
  3. 从函数中查找并删除至少第 4206-4207 行.data.frame.table.header

    在此处输入图像描述

    这两行用于打印tabular标题。

  4. 在函数中查找并删除至少第 3385 行.publish.table

    在此处输入图像描述

    此行打印\end{tabular}(加上换行符)。

于 2015-08-07T19:32:26.503 回答
0

R遇到同样的问题,在创建表后,我最终只是在代码中添加了一些行stargazer

filename <- paste0("./my/path/", dplyr::last(list.files("./my/path/"))) # always loads the last file
lines <- readLines(filename) # read file
lines[1:4] <- ""           # I wanted to replace the first four lines
lines[length(lines)] <- "" # as well as the last line

希望这可以帮助。

于 2020-05-30T14:18:59.283 回答