2

我有一个如下的 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 暂时无法处理?

4

1 回答 1

0

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

根据Pandoc 在 Google Groups 中关于浮动图形和表格的讨论,然后是 Pandoc发行说明(在注释页面上搜索“longtable”),Pandoc 目前使用longtable进行表格格式化,而longtable实际上不做浮动。这意味着 Pandoc 不接受任何放置参数,尽管默认情况下 R 包xtable 会生成[ht]参数。

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

    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')
于 2013-07-18T06:05:56.753 回答