knitr编译失败,出现R错误消息和babel包

时间:2013-08-08 12:02:28

标签: r latex knitr babel

看看这个最小的例子。当babel包被注释掉时,它工作正常。

\documentclass{article}
\usepackage[dutch]{babel}

\begin{document}
<<>>=
abc() #a non-existing function
@

\end{document}

使用babel包我得到了这个错误。错误也取决于语言。英语,法语或意大利语没有错误。荷兰语,德语或丹麦语错误。使用变音符号(ä,ö,...)

的语言似乎会出现这个问题
! Argument of \language@active@arg" has an extra }.
<inserted text> 
                \par 
l.67 ...\#\# Error: could not find function "abc"}
                                                  }\end{kframe}
I've run across a `}' that doesn't seem to match anything.
For example, `\def\a#1{...}' and `\a}' would produce
this error. If you simply proceed now, the `\par' that
I've just inserted will cause me to report a runaway
argument that might be the root of the problem. But if
your `}' was spurious, just type `2' and it will go away.

2 个答案:

答案 0 :(得分:1)

不是一个答案(为此,请参阅@ EllisValentiner's),但有一个解释:

这是一个可重复性最小的tex文档。似乎与"有关,所以你对变音符号的猜测似乎正确。

\documentclass{article}
\usepackage[dutch]{babel}
\begin{document}
"}
\end{document}
@baptiste注意到babel正在使它成为一个活跃的角色,它似乎正在做的是“吞下”下面的角色,看它是否应该在它上面放一个变形金刚;如果是这样,它确实如此,如果没有,它会正常打印字符。但是,如果下一个字符是},则会将其添加到代码中,该代码会确定要执行的操作,然后会抱怨有额外的}

所以这个最小的例子有效,我认为因为它正在处理babel代码中的{},所以大括号正确排列。

\documentclass{article}
\usepackage[dutch]{babel}
\begin{document}
"{"}
\end{document}

不确定这是一个babel bug,还是在使用babel时你不应该使用"作为引号。这似乎是合理的,除非您正在使用tt系列,这就是这个问题首次出现的时候。

比我更好奇的人应该随意将此行为发布为tex.stackexchange上的问题;如果您这样做,请在此处留下链接,以便我们找到它。

答案 1 :(得分:1)

尝试:

\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[dutch,english]{babel}

使用非字母数字字符时,R和LaTeX可能会出现一些奇怪的文本编码问题。