knitr&x27;s kframe在LaTex中产生错误,代码块没有shadecolor
我正在使用R的knitr和LaTeX创建pdf。技术中心为生成输出错误提供“!未定义的控制序列”。Technic Center指出带有\begin{kframe}和\end{kframe}的行是有问题的行 删除kframe环境可以解决生成输出中的错误,但即使删除kframe环境,文档也不会为代码块显示shadecolor 我更新了我的MikTex软件包和knitr。该文件的序言包括\usepackage{framed}\usepackage{xcolor}似乎不会影响问题。更改knitr background选项并没有解决此问题 以下是我在Rnw文件中的文件前言(knitr补充了以下内容):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
谢谢大家! 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