首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >kframe在LaTex中产生错误,代码块没有shadecolor

kframe在LaTex中产生错误,代码块没有shadecolor
EN

Stack Overflow用户
提问于 2014-06-28 02:49:38
回答 1查看 372关注 0票数 2

我正在使用R的编码器和LaTeX来创建一个pdf。技术中心为构建输出错误提供了“!未定义的控制序列”。技术中心指出带有\begin{kframe}和\end{kframe}的行是有问题的行。

删除kframe环境会解决构建输出中的错误,但即使删除了kframe环境,文档也不会显示代码块的着色。

我更新了我的MikTex包和针织工具。文档的前言包括\usepackage{framed};\usepackage{xcolor}似乎不会影响问题。更改编织背景选项未解决此问题。

以下是我在Rnw文件中的文档的前言(knitr添加到此文件中):

代码语言:javascript
复制
\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}

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2021-02-20 01:04:11

应该在latex前导码中定义kframe环境。例如,在示例visible in help(knit)中定义了它

代码语言:javascript
复制
 library(knitr)
 (f = system.file("examples", "knitr-minimal.Rnw", package = "knitr"))
 knit(f)  # compile to tex

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

代码语言:javascript
复制
\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文档中重用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24458947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档