我正在使用R的编码器和LaTeX来创建一个pdf。技术中心为构建输出错误提供了“!未定义的控制序列”。技术中心指出带有\begin{kframe}和\end{kframe}的行是有问题的行。
删除kframe环境会解决构建输出中的错误,但即使删除了kframe环境,文档也不会显示代码块的着色。
我更新了我的MikTex包和针织工具。文档的前言包括\usepackage{framed};\usepackage{xcolor}似乎不会影响问题。更改编织背景选项未解决此问题。
以下是我在Rnw文件中的文档的前言(knitr添加到此文件中):
\documentclass{article}
\usepackage{Sweave}
\usepackage{amsmath}
\usepackage{hyperref}
\usepackage[margin = 0.5in]{geometry}
\usepackage{amsfonts}
\usepackage{amsthm}
\usepackage{marvosym}
\usepackage{paralist}
\usepackage{framed}
\usepackage{url}
\usepackage{xcolor}
\usepackage{array}
\renewcommand\qedsymbol{\Squarepipe}
\title{title changed for question}
\author{author changed for question}
\newtheorem{theorem}{Theorem}[section]
\newtheorem{lemma}[theorem]{Lemma}
\newtheorem{proposition}[theorem]{Proposition}
\newtheorem{corollary}[theorem]{Corollary}
\newenvironment{definition}[1][Definition]{\begin{trivlist}
\item[\hskip \labelsep {\bfseries #1}]}{\end{trivlist}}
\newenvironment{conjecture}[1][Conjecture]{\begin{trivlist}
\item[\hskip \labelsep {\bfseries #1}]}{\end{trivlist}}
\begin{document}谢谢!
发布于 2021-02-20 01:04:11
应该在latex前导码中定义kframe环境。例如,在示例visible in help(knit)中定义了它
library(knitr)
(f = system.file("examples", "knitr-minimal.Rnw", package = "knitr"))
knit(f) # compile to tex查看生成的文档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文档时,会注意到这一点。只有当您使用generate生成Latex片段时,这才是一个问题,这些片段稍后会在更大的Latex文档中重用。
https://stackoverflow.com/questions/24458947
复制相似问题