Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
knitr&x27;s kframe在LaTex中产生错误,代码块没有shadecolor_R_Latex_Knitr - Fatal编程技术网

knitr&x27;s kframe在LaTex中产生错误,代码块没有shadecolor

knitr&x27;s kframe在LaTex中产生错误,代码块没有shadecolor,r,latex,knitr,R,Latex,Knitr,我正在使用R的knitr和LaTeX创建pdf。技术中心为生成输出错误提供“!未定义的控制序列”。Technic Center指出带有\begin{kframe}和\end{kframe}的行是有问题的行 删除kframe环境可以解决生成输出中的错误,但即使删除kframe环境,文档也不会为代码块显示shadecolor 我更新了我的MikTex软件包和knitr。该文件的序言包括\usepackage{framed}\usepackage{xcolor}似乎不会影响问题。更改knitr bac

我正在使用R的knitr和LaTeX创建pdf。技术中心为生成输出错误提供“!未定义的控制序列”。Technic Center指出带有\begin{kframe}和\end{kframe}的行是有问题的行

删除kframe环境可以解决生成输出中的错误,但即使删除kframe环境,文档也不会为代码块显示shadecolor

我更新了我的MikTex软件包和knitr。该文件的序言包括\usepackage{framed}\usepackage{xcolor}似乎不会影响问题。更改knitr background选项并没有解决此问题

以下是我在Rnw文件中的文件前言(knitr补充了以下内容):


谢谢大家!

kframe环境应该在latex序言中定义。例如,在帮助(knit)中可见的示例中对其进行了定义

查看生成的文档
knitr minimal.tex
可以看到
kframe
环境的定义:

\usepackage{framed}
\makeatletter
\newenvironment{kframe}{%
 \def\at@end@of@kframe{}%
 \ifinner\ifhmode%
  \def\at@end@of@kframe{\end{minipage}}%
  \begin{minipage}{\columnwidth}%
 \fi\fi%
 \def\FrameCommand##1{\hskip\@totalleftmargin \hskip-\fboxsep
 \colorbox{shadecolor}{##1}\hskip-\fboxsep
     % There is no \\@totalrightmargin, so:
     \hskip-\linewidth \hskip-\@totalleftmargin \hskip\columnwidth}%
 \MakeFramed {\advance\hsize-\width
   \@totalleftmargin\z@ \linewidth\hsize
   \@setminipage}}%
 {\par\unskip\endMakeFramed%
 \at@end@of@kframe}
\makeatother
将此添加到latex序言中可能会解决此问题。当您从knitr生成完整的pdf文档时,当然要注意这一点。只有当您使用knitr生成Latex片段,然后在更大的Latex文档中重用时,这才是一个问题

 library(knitr)
 (f = system.file("examples", "knitr-minimal.Rnw", package = "knitr"))
 knit(f)  # compile to tex
\usepackage{framed}
\makeatletter
\newenvironment{kframe}{%
 \def\at@end@of@kframe{}%
 \ifinner\ifhmode%
  \def\at@end@of@kframe{\end{minipage}}%
  \begin{minipage}{\columnwidth}%
 \fi\fi%
 \def\FrameCommand##1{\hskip\@totalleftmargin \hskip-\fboxsep
 \colorbox{shadecolor}{##1}\hskip-\fboxsep
     % There is no \\@totalrightmargin, so:
     \hskip-\linewidth \hskip-\@totalleftmargin \hskip\columnwidth}%
 \MakeFramed {\advance\hsize-\width
   \@totalleftmargin\z@ \linewidth\hsize
   \@setminipage}}%
 {\par\unskip\endMakeFramed%
 \at@end@of@kframe}
\makeatother