【问题标题】:changing font in texreg table更改 texreg 表中的字体
【发布时间】:2017-04-25 06:43:01
【问题描述】:

我想更改 texreg 生成的表格中的字体。我正在编织 RStudio 的 Rmarkdown 表,因此不能直接修改 LaTeX。

这是一个例子。标题、系数名称和一些结果都打印在 robots.txt 中。其他结果不是。我想让所有的数字都变成roboto或inconsolata。建议?

我也想把表格笔记做成机器人。

---
title: "Untitled"
header-includes:
  - \usepackage{fontspec}
  - \setmonofont[Mapping=tex-text]{inconsolata}
  - \usepackage[sfdefault]{roboto}
  - \renewcommand{\familydefault}{\sfdefault}
output:
  pdf_document:
    latex_engine: xelatex
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = F)
library(nlme)
library(texreg)
```

```{r, results='asis', echo=F}
model.1 <- lme(distance ~ age, data = Orthodont, random = ~ 1)
model.2 <- lme(distance ~ age + Sex, data = Orthodont, random = ~ 1)
texreg(list(model.1, model.2))
```

【问题讨论】:

    标签: r latex texreg


    【解决方案1】:

    我对在 LaTeX 中处理字体不够熟悉,无法给你一个完整的答案,但希望这会让你更接近你的目标。

    基本思想是操纵texreg 的输入/输出以提供您想要的,因为texreg 本身缺乏这些功能。

    在你的情况下,我认为你可以只通过操纵输入来完成你所需要的,但是操纵输出的方法是使用capture.output,比如:

    tbl = capture.output(texreg(list(model.1, model.2)))
    

    并使用 regex/whatever 来修复那里的输出。

    我只是用texttt来举例说明方法:

    rename_coef = function(reg) {
      names(reg$coefficients$fixed) = 
        paste0('\\texttt{', names(reg$coefficients$fixed), '}')
      reg
    }
    
    model.1 <- rename_coef(lme(distance ~ age, data = Orthodont, random = ~ 1))
    model.2 <- rename_coef(lme(distance ~ age + Sex, data = Orthodont, random = ~ 1))
    
    texreg(list(model.1, model.2))
    

    会得到要自定义的系数名称列字体:

    # \begin{table}
    # \begin{center}
    # \begin{tabular}{l c c }
    # \hline
    #  & Model 1 & Model 2 \\
    # \hline
    # \texttt{(Intercept)} & $16.76^{***}$ & $17.71^{***}$ \\
    #                      & $(0.80)$      & $(0.83)$      \\
    # \texttt{age}         & $0.66^{***}$  & $0.66^{***}$  \\
    #                      & $(0.06)$      & $(0.06)$      \\
    # \texttt{SexFemale}   &               & $-2.32^{**}$  \\
    #                      &               & $(0.76)$      \\
    # \hline
    # AIC                  & 455.00        & 447.51        \\
    # BIC                  & 465.66        & 460.78        \\
    # Log Likelihood       & -223.50       & -218.76       \\
    # Num. obs.            & 108           & 108           \\
    # Num. groups          & 27            & 27            \\
    # \hline
    # \multicolumn{3}{l}{\scriptsize{$^{***}p<0.001$, $^{**}p<0.01$, $^*p<0.05$}}
    # \end{tabular}
    # \caption{Statistical models}
    # \label{table:coefficients}
    # \end{center}
    # \end{table}
    

    如果您想操作表格注释的字体,请使用custom.note 参数:

    texreg(list(model.1, model.2), custom.note ='\\texttt{Block font note}')
    

    【讨论】:

    • 谢谢,@MichaelChirico。信息量很大。您关于修改输出的想法让我想到了另一种方法:将 tex 表保存到文件中,然后在 Rmd 文件中调用\input{}This answer on Tex 看起来很有希望...
    猜你喜欢
    • 2018-12-23
    • 2019-08-21
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 2017-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多