Latex 使用booktabs\midrule和括号

Latex 使用booktabs\midrule和括号,latex,longtable,Latex,Longtable,在带括号的latex longtable中使用\midrule时遇到问题。例如,下面是我的latex文档(test.tex): 在此文件上运行pdflatex时: pdflatex test.tex 我遇到了以下错误: ! Undefined control sequence. <argument> ...al \expandafter \let \cmrsideswitch \@te

在带括号的latex longtable中使用\midrule时遇到问题。例如,下面是我的latex文档(test.tex):

在此文件上运行pdflatex时:

pdflatex test.tex
我遇到了以下错误:

! Undefined control sequence.
<argument> ...al \expandafter \let \cmrsideswitch
                                                 \@tempa \fi \fi
l.12   (Intercept)
                  & 10.000 \\
!未定义的控制序列。
…al\expandafter\let\cmrsideswitch
\@坦帕\fi\fi
l、 12(截取)
& 10.000 \\

移除支架可以解决问题。有趣的是,切换两行的顺序也能起作用[即(截取)行作为第二行]。我不知道怎么回事。有人遇到过这个问题吗?

好的,所以我对从Pandoc生成的代码有同样的问题(在
\toprule
后面加括号),我用
\toprule{}修复了它
相反,toprule似乎在其他方面吃掉了括号。也许这会对您有所帮助


另一种可能是将空的
\hbox{}
放在我使用的开始括号之前,因为我无法修改pandoc生成的tex(但pandoc能够在markdown中解析latex片段).

您是在用R创建结果表吗?如果是这样,也许您应该使用stargazer或xtable之类的自动表生成工具。我对从pandoc生成的表也有同样的问题,这次括号位于行的开头(就在\toprule之后)是的,我实际上是在使用knitr和R包xtable来生成这些表。我只是将其简化为一个简单的示例。但这段代码是生成的。你是对的!通过将\midrule替换为\midrule{},pdflatex起作用了。为什么它会起作用呢?我的理解是,当latex命令接受强制参数时,它可以是某种“单标记参数”(我不确定正确的名称是什么),或大括号中更复杂的参数。如果不提供强制参数,该命令将只使用使用使用后找到的第一个参数。出于某种原因,规则命令处理开头括号错误。但这只是我的推测。
! Undefined control sequence.
<argument> ...al \expandafter \let \cmrsideswitch
                                                 \@tempa \fi \fi
l.12   (Intercept)
                  & 10.000 \\