Мне нравится пакет modelsummary
, но после обновления до последней версии я не могу даже простейшую таблицу регрессии скомпилировать без ошибок в Overleaf.
Рассмотрим следующий код R:
library("groundhog") # for temporal reproducibility
meta.groundhog(date = "2024-04-30")
groundhog.library("modelsummary", date = "2024-04-30")
set.seed(05232024) # for result reproducibility
x <- rnorm(100)
y <- x*2 + rnorm(100)
fit <- lm(y ~ x)
modelsummary(fit, output = "latex")
который создает следующий код LaTeX:
\begin{table}
\centering
\begin{tblr}[ %% tabularray outer open
] %% tabularray outer close
{ %% tabularray inner open
colspec = {Q[]Q[]},
column{1} = {halign=l,},
column{2} = {halign=c,},
hline{6} = {1,2}{solid, 0.05em, black},
} %% tabularray inner close
\toprule
& (1) \\ \midrule %% TinyTableHeader
(Intercept) & 0.010 \\
& (0.093) \\
x & 1.868 \\
& (0.086) \\
Num.Obs. & 100 \\
R2 & 0.827 \\
R2 Adj. & 0.825 \\
AIC & 272.5 \\
BIC & 280.3 \\
Log.Lik. & -133.254 \\
F & 468.067 \\
RMSE & 0.92 \\
\bottomrule
\end{tblr}
\end{table}
Если я помещаю это в текстовый редактор с установленным TeX (или Overleaf, я пробовал разными способами), я всегда получаю ошибки. Я использую \usepackage{tabularray}
и \usepackage{booktabs}
. По моему прочтению не понятно, что мне нужны другие пакеты, но возможно я что-то упускаю? Я пытался обновить свою установку TeX, использовал Overleaf и т. д.
Сообщение об ошибке на оборотной стороне:
<argument> \color
{\l__tblr_f_tl }
l.42 \end
{tblr}
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.
Я что-то пропустил? Можно ли вернуться к старому modelsummary
выводу?
Единственное, что я могу придумать, это то, что modelsummary
возвращает это сообщение при загрузке:
`modelsummary` 2.0.0 now uses `tinytable` as its default table-drawing
backend. Learn more at: https://vincentarelbundock.github.io/tinytable/
Revert to `kableExtra` for one session:
options(modelsummary_factory_default = 'kableExtra')
но я не думаю, что это проблема, потому что я пытался вернуться к kableExtra
с теми же результатами.
Если вы вяжете PDF-файл, вы можете увидеть следующее:
## Warning: To compile a LaTeX document with this table, the following commands must be placed in the document preamble:
##
## \usepackage{tabularray}
## \usepackage{float}
## \usepackage{graphicx}
## \usepackage{codehigh}
## \usepackage[normalem]{ulem}
## \UseTblrLibrary{booktabs}
## \UseTblrLibrary{siunitx}
## \newcommand{\tinytableTabularrayUnderline}[1]{\underline{#1}}
## \newcommand{\tinytableTabularrayStrikeout}[1]{\sout{#1}}
## \NewTableCommand{\tinytableDefineColor}[3]{\definecolor{#1}{#2}{#3}}
##
## To disable `siunitx` and prevent `modelsummary` from wrapping numeric entries in `\num{}`, call:
##
## options("modelsummary_format_numeric_latex" = "plain")
## This warning appears once per session.
Таким образом, ваш Overleaf может выглядеть примерно так:
\documentclass{article}
\usepackage{tabularray}
\usepackage{float}
\usepackage{graphicx}
\usepackage{codehigh}
\usepackage[normalem]{ulem}
\UseTblrLibrary{booktabs}
\UseTblrLibrary{siunitx}
\newcommand{\tinytableTabularrayUnderline}[1]{\underline{#1}}
\newcommand{\tinytableTabularrayStrikeout}[1]{\sout{#1}}
\NewTableCommand{\tinytableDefineColor}[3]{\definecolor{#1}{#2}{#3}}
\begin{document}
\begin{table}
\centering
\begin{tblr}[ %% tabularray outer open
] %% tabularray outer close
{ %% tabularray inner open
colspec = {Q[]Q[]},
column{1} = {halign=l,},
column{2} = {halign=c,},
hline{6} = {1,2}{solid, 0.05em, black},
} %% tabularray inner close
\toprule
& (1) \\ \midrule %% TinyTableHeader
(Intercept) & 0.010 \\
& (0.093) \\
x & 1.868 \\
& (0.086) \\
Num.Obs. & 100 \\
R2 & 0.827 \\
R2 Adj. & 0.825 \\
AIC & 272.5 \\
BIC & 280.3 \\
Log.Lik. & -133.254 \\
F & 468.067 \\
RMSE & 0.92 \\
\bottomrule
\end{tblr}
\end{table}
\end{document}
Спасибо большое, это умная идея вязать, о которой я даже не подумала.