這個問題的最棘手的部分是指膠乳。請不是我的TeX的代碼是基於tex.stackexchange這兩個問題:
問題的
一部分是容易回答:如何設置固定列的寬度,但對齊所有數字列的權利和所有其他列左?
這是唯一正確的列類型的問題(見上面鏈接的答案)。一個解決辦法是:R
:
\documentclass{article}
\usepackage{array}
\newcolumntype{R}[1]{>{\raggedleft\let\newline\\\arraybackslash\hspace{0pt}}p{#1}}
\begin{document}
<<table_symbionts_chunk, results="asis", echo=FALSE>>=
library(xtable)
irisShort <- head(iris)
print(xtable(irisShort,
digits=rep(0,6),
align=c(
"p{0.015\\textwidth}|",
"R{0.37\\textwidth}|",
"R{0.12\\textwidth}|",
"R{0.08\\textwidth}|",
"R{0.02\\textwidth}|",
"p{0.35\\textwidth}|")))
@
\end{document}
由於p{}
列留在默認情況下我們只需要定義右對齊列一個新列式與固定寬度合理的。
注意,列名重疊,但是這是由於在問題中指定的寬度。
居中列名僅需要第一行的不同理由。這可以通過使用\multicolumn
命令來實現。然而,當我們想LaTeX的代碼添加到的列名,我們另外有使用sanitize.colnames.function = identity
防止xtable
從消毒列名:
irisShort2 <- irisShort
colnames(irisShort2) <- paste("\\multicolumn{1}{c|}{", colnames(irisShort2), "}")
print(xtable(irisShort2,
digits=rep(0,6),
align=c(
"p{0.015\\textwidth}|",
"R{0.37\\textwidth}|",
"R{0.12\\textwidth}|",
"R{0.08\\textwidth}|",
"R{0.02\\textwidth}|",
"p{0.35\\textwidth}|")),
sanitize.colnames.function = identity)
paste("\\multicolumn{1}{c|}{", colnames(irisShort2), "}")
使用原始列名,但圍繞它們\multicolumn{1}{c|}{
colname的}
它提供居中的列名稱。
注意,現在列名不重疊了(相反,該表是太寬),因爲第一行中的改變列類型。
在該應答中的兩個代碼段產生以下輸出:
請看看[此答案](http://tex.stackexchange.com/a/5018/37118) 。它回答你的問題嗎? –
謝謝。我在這裏問過之前我已經看過這個。我想我可以使用,如果我想直接寫入.Rnw文件表。我不知道如何使用代碼塊從文件導入的數據。 – kamila