r语言 - 如何取消由 Pandoc 转换的文档中的额外"ht"



我有一个如下的tex文件,要由Pandoc转换为docx。

documentclass[12pt]{report}
begin{document}
% latex table generated in R 3.0.1 by xtable 1.7-1 package
begin{table}[!h]
centering
begin{tabular}{rlll}
  hline
 & PIK3CA & APC & ALDH2 \ 
  hline
Detection point & 120~{}121 & 102~{}104 & 76~{}78 \ 
  Genotype & -/- & A/A & G/G \ 
   hline
end{tabular}
end{table}
end{document}

当我使用Pandoc程序(v1.11.1)转换它时,docx内容有这个额外的[!h]字符串,它不应该存在,因为它只是一个表放置参数。

[!h]
    PIK3CA  APC ALDH2
Detection point 120~121 102~104 76~78
Genotype    -/- A/A G/G

如果我使用[ht]作为放置参数,那么在转换后的docx中会有一个额外的字符串[ht]

有什么建议可以避免吗?还是潘多克现在处理不好?

经过更多的调查,我想我发现了它背后的机制。

根据Pandoc在Google Groups上关于浮动数字和表格的讨论,以及Pandoc发布的说明(在说明页面上搜索"longable"),Pandoc目前使用longable进行表格格式化,而longable实际上不进行浮动。这意味着Pandoc不接受任何放置参数,尽管默认情况下R包xtable会生成[ht]参数。

因此,对于任何将xtable与knitr一起使用并希望将结果转换为docx的人,您需要通过删除放置参数[ht]来破解生成的tex文件。(代码取自亿惠)

    x = readLines('foo.tex')
    # remove any placement parameters generated by xtable
    x = gsub('(\\begin\{table\}).+', '\1', x)
    # write the processed tex file back
    writeLines(x, 'foo.tex')

相关内容

  • 没有找到相关文章

最新更新