簡體   English   中英

如何將 LaTeX 代碼包含到 Stargazer 和 xtable 輸出中?

[英]How to include LaTeX code into Stargazer and xtable output?

我想使用 stargazer 或 xtable 在 R 中生成一個 LaTeX 表。 表中的一列將包含 LaTeX 代碼,用於引用我文檔中其他地方的數字。 這些數字使用約定 \\label{Figure: i} (其中 i 是整數)進行標記。

我正在嘗試以下方法:

df <- data.frame(
          Name = c("My First Graph", "My Second Graph"),
          Figure = paste0("\\ref{Fig: ",1:2))
          )
stargazer(df,summary=FALSE)

但是,輸出會自動轉義最終 LaTeX 輸出中的反斜杠和花括號。 有誰知道我該如何解決這個問題?

謝謝

我不知道stargazer() ,但print.xtable()有一個sanitize.text.function選項,這將有助於完成此任務。 來自help("print.xtable")

sanitize.text.function

所有非數字條目(行和列名稱除外)都經過清理,以嘗試刪除對輸出格式具有特殊含義的字符。 如果 sanitize.text.function 不為 NULL,則它應該是一個接受字符向量並返回一個的函數,並將用於清理而不是默認的內部函數。 默認值為 NULL。

因此,我們可以執行以下操作:

df <- data.frame(
    Name = c("My First Graph", "My Second Graph"),
    Figure = paste0("\\ref{Fig: ", 1:2, "}")
)
tbl <- xtable(df)
print(tbl, include.rownames = FALSE, sanitize.text.function = function(x) x)

這給出了我相信你想要的輸出:

% latex table generated in R 3.4.4 by xtable 1.8-2 package
% Mon Jul 15 10:30:31 2019
\begin{table}[ht]
\centering
\begin{tabular}{ll}
  \hline
Name & Figure \\ 
  \hline
My First Graph & \ref{Fig: 1} \\ 
  My Second Graph & \ref{Fig: 2} \\ 
   \hline
\end{tabular}
\end{table}

警告

這會覆蓋print.xtable()的默認文本衛生,所以只有在不需要清理任何東西時才這樣做。 如果您處於更復雜的情況,例如您想要清理某些東西而不是其他東西,則需要調整此解決方案(可能相當多)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM