代码之家  ›  专栏  ›  技术社区  ›  Laura

Rmarkdown(RStudio):paste0函数中的kablextra输出表有问题

  •  0
  • Laura  · 技术社区  · 6 年前

    这是我的例子:

    \documentclass{article}
    \usepackage[utf8]{inputenc}
    
    \DeclareUnicodeCharacter{B5}{$\alpha$}
    \DeclareUnicodeCharacter{B5}{$\tau$}
    \DeclareUnicodeCharacter{B5}{$\sigma$}
    \DeclareUnicodeCharacter{B5}{$\beta$}
    \DeclareUnicodeCharacter{B5}{$\gamma$}
    \DeclareUnicodeCharacter{B5}{$\mu$}
    \DeclareUnicodeCharacter{B5}{$\Delta$}
    
    \begin{document}
    
    This is a table
    
        <<summarymatrix,echo=FALSE>>=
        library(knitr)
        library(kableExtra)
    alpha='\u03b1'; tau='\u03c4'; sigma='\u03c3'; beta='\U03B2'; gamma='\u03b3'; mu='\u03BC'; Delta='\u0394'
    
        dt <- mtcars[1:5, 1:3]
        colnames(dt)=c('Sample1','Sample2','Sample3')
        rownames(dt)=c(paste0(mu),paste0(tau),paste0(sigma),paste0(beta),paste0(Delta))
    
    
        dt
        @
    
        \end{document}
    

    我怎样才能解决这个问题?

    1 回复  |  直到 6 年前
        1
  •  1
  •   user2554330    6 年前

    你的序言搞砸了。你需要inputenc软件包 \DeclareUnicodeCharacter 你不应该把B5说成是7个不同的东西。

    这是您的文档,其中包含已修复的内容:

    \documentclass{article}
    \usepackage[utf8]{inputenc}
    
    
    \DeclareUnicodeCharacter{3B1}{$\alpha$}
    \DeclareUnicodeCharacter{3C4}{$\tau$}
    \DeclareUnicodeCharacter{3C3}{$\sigma$}
    \DeclareUnicodeCharacter{3B2}{$\beta$}
    \DeclareUnicodeCharacter{3B3}{$\gamma$}
    \DeclareUnicodeCharacter{3BC}{$\mu$}
    \DeclareUnicodeCharacter{394}{$\Delta$}
    
    \begin{document}
    \SweaveOpts{concordance=TRUE}
    
    This is a table
    
    <<summarymatrix,echo=FALSE>>=
    library(knitr)
    library(kableExtra)
    alpha='\u03b1'; tau='\u03c4'; sigma='\u03c3'; beta='\U03B2'; gamma='\u03b3'; mu='\u03BC'; Delta='\u0394'
    
    dt <- mtcars[1:5, 1:3]
    colnames(dt)=c('Sample1','Sample2','Sample3')
    rownames(dt)=c(paste0(mu),paste0(tau),paste0(sigma),paste0(beta),paste0(Delta))
    
    
    dt
    @
    
    \end{document}
    

    pdf output

    在我看来,这差不多不错(除了最后一行的对齐)。

    dt["beta", ] 给?如果需要重复的值,只需添加一个额外的列。