如何使用 xtable 和 Sweave 在乳胶中打印带括号的符号
How to print symbols with parenthesis in latex using xtable and Sweave
我正在尝试使用 xtable 生成 tex table。
在 R 中,table 包含:
>tvPre
p\_1 p\_2 p\_3
FV "\textuparrow M" "" "\textuparrow R"
a "\textuparrow WH" "" ""
b "\textuparrow H" "" "\textuparrow (H)"
c "\textuparrow (WH)" "" "\textuparrow (H)"
Oil "\textuparrow W" "\textuparrow R" "\textdownarrow R"
如果我在控制台中使用标识函数进行清理,那么就可以了:
指令:
print(xtable(tvPre), rotate.colnames=T,
sanitize.text.function = getOption("xtable.sanitize.text.function", function(x)x))
然后,我得到:
& \begin{sideways} p\_1 \end{sideways} & \begin{sideways} p\_2\end{sideways} & \begin{sideways} p\_3 \end{sideways} \
\hline
FV & \textuparrow M & & \textuparrow R \
a & \textuparrow WH & & \
b & \textuparrow H & & \textuparrow (H) \
c & \textuparrow (WH) & & \textuparrow (H) \
O & \textuparrow W & \textuparrow R & "\textdownarrow R" \
然而,当我将代码放入 Sweave 文件 (.Rnw
) 时,然后在 .tex
中我获得:
& \begin{sideways} p\_1 \end{sideways} & \begin{sideways} p\_2\end{sideways} & \begin{sideways} p\_3 \end{sideways} \
\hline
FV & \textuparrow M & & \textuparrow R \
a & \textuparrow W & & \
b & H & & H \
c & \textuparrow W & & H \
O & \textuparrow W & \textuparrow R & \textdownarrow R \
然后,所有括号和箭头都消失了。我也尝试使用 $\uparrow$
,但仍然无法正常工作。
第三行第二列 ("\textuparrow WH"
) 打印时没有 "H"
,但在下一行 " \textuparrow H"
中只打印了 "H"
。
在 .tex
文件中,带括号的其余单元格打印时既没有箭头也没有括号。
我需要在 .tex 中打印控制台中打印的内容,一些线索??
好的,以下对我有用。你的问题没有说明你是否加载了 textcomp 包 - 你需要它。同上侧面包装。我还将 sanitize.text.function 更改为 sanitize.text.function = function(x){x}
。
下面的脚本保存为.Rnw 文件。
\documentclass{article}
\usepackage{textcomp}
\usepackage{rotating}
\begin{document}
\SweaveOpts{concordance=TRUE}
<<table, echo=FALSE, results=tex >>=
require(xtable)
tvPre <- as.data.frame(structure(list(`p\\_1` = c("\textuparrow M", "\textuparrow WH",
"\textuparrow H", "\textuparrow (WH)", "\textuparrow W"),
`p\\_2` = c("", "", "", "", "\textuparrow R"), `p\\_3` = c("\textuparrow R",
"", "\textuparrow (H)", "\textuparrow (H)", "\textdownarrow R"
)), .Names = c("p\_1", "p\_2", "p\_3"), row.names = c("FV",
"a", "b", "c", "Oil"), class = "data.frame"))
print(xtable(tvPre), rotate.colnames = TRUE, sanitize.text.function = function(x){x})
@
\end{document}
我正在尝试使用 xtable 生成 tex table。 在 R 中,table 包含:
>tvPre
p\_1 p\_2 p\_3
FV "\textuparrow M" "" "\textuparrow R"
a "\textuparrow WH" "" ""
b "\textuparrow H" "" "\textuparrow (H)"
c "\textuparrow (WH)" "" "\textuparrow (H)"
Oil "\textuparrow W" "\textuparrow R" "\textdownarrow R"
如果我在控制台中使用标识函数进行清理,那么就可以了: 指令:
print(xtable(tvPre), rotate.colnames=T,
sanitize.text.function = getOption("xtable.sanitize.text.function", function(x)x))
然后,我得到:
& \begin{sideways} p\_1 \end{sideways} & \begin{sideways} p\_2\end{sideways} & \begin{sideways} p\_3 \end{sideways} \
\hline
FV & \textuparrow M & & \textuparrow R \
a & \textuparrow WH & & \
b & \textuparrow H & & \textuparrow (H) \
c & \textuparrow (WH) & & \textuparrow (H) \
O & \textuparrow W & \textuparrow R & "\textdownarrow R" \
然而,当我将代码放入 Sweave 文件 (.Rnw
) 时,然后在 .tex
中我获得:
& \begin{sideways} p\_1 \end{sideways} & \begin{sideways} p\_2\end{sideways} & \begin{sideways} p\_3 \end{sideways} \
\hline
FV & \textuparrow M & & \textuparrow R \
a & \textuparrow W & & \
b & H & & H \
c & \textuparrow W & & H \
O & \textuparrow W & \textuparrow R & \textdownarrow R \
然后,所有括号和箭头都消失了。我也尝试使用 $\uparrow$
,但仍然无法正常工作。
第三行第二列 ("\textuparrow WH"
) 打印时没有 "H"
,但在下一行 " \textuparrow H"
中只打印了 "H"
。
在 .tex
文件中,带括号的其余单元格打印时既没有箭头也没有括号。
我需要在 .tex 中打印控制台中打印的内容,一些线索??
好的,以下对我有用。你的问题没有说明你是否加载了 textcomp 包 - 你需要它。同上侧面包装。我还将 sanitize.text.function 更改为 sanitize.text.function = function(x){x}
。
下面的脚本保存为.Rnw 文件。
\documentclass{article}
\usepackage{textcomp}
\usepackage{rotating}
\begin{document}
\SweaveOpts{concordance=TRUE}
<<table, echo=FALSE, results=tex >>=
require(xtable)
tvPre <- as.data.frame(structure(list(`p\\_1` = c("\textuparrow M", "\textuparrow WH",
"\textuparrow H", "\textuparrow (WH)", "\textuparrow W"),
`p\\_2` = c("", "", "", "", "\textuparrow R"), `p\\_3` = c("\textuparrow R",
"", "\textuparrow (H)", "\textuparrow (H)", "\textdownarrow R"
)), .Names = c("p\_1", "p\_2", "p\_3"), row.names = c("FV",
"a", "b", "c", "Oil"), class = "data.frame"))
print(xtable(tvPre), rotate.colnames = TRUE, sanitize.text.function = function(x){x})
@
\end{document}