在 knitr 块中减少命令和输出之间的 space
Decreasing space between commands and output in knitr chunks
我将 knitr
与 LaTeX
一起使用,代码块回显的命令与输出开始之间似乎有很多 space:
这个的 LaTeX 代码如下:
\begin{knitrout}\scriptsize
\definecolor{shadecolor}{rgb}{1, 1, 1}\color{fgcolor}\begin{kframe}
\begin{alltt}
\hlstd{> }\hlstd{lda_test_pred} \hlkwb{<-} \hlkwd{predict}\hlstd{(lda_fit,} \hlkwc{newdata} \hlstd{= seg_test)}
\hlstd{> }\hlkwd{library}\hlstd{(pROC)}
\hlstd{> }
\hlstd{> }\hlstd{lda_roc} \hlkwb{<-} \hlkwd{roc}\hlstd{(}\hlkwc{response} \hlstd{= seg_test}\hlopt{$}\hlstd{Class,}
\hlstd{+ } \hlkwc{predictor} \hlstd{= lda_test_pred}\hlopt{$}\hlstd{posterior[,} \hlstr{"PS"}\hlstd{],}
\hlstd{+ } \hlcom{## we need to tell the function that the _first_ level}
\hlstd{+ } \hlcom{## is our event of interest}
\hlstd{+ } \hlkwc{levels} \hlstd{=} \hlkwd{rev}\hlstd{(}\hlkwd{levels}\hlstd{(seg_test}\hlopt{$}\hlstd{Class)))}
\hlstd{> }\hlstd{lda_roc}
\end{alltt}
\begin{verbatim}
Call:
roc.default(response = seg_test$Class, predictor = lda_test_pred$posterior[, "PS"], levels = rev(levels(seg_test$Class)))
Data: lda_test_pred$posterior[, "PS"] in 346 controls (seg_test$Class WS) < 664 cases (seg_test$Class PS).
Area under the curve: 0.874
\end{verbatim}
\begin{alltt}
\hlstd{> }\hlcom{# plot(exRoc print.thres = .5)}
\end{alltt}
\end{kframe}
\end{knitrout}
space是在alltt
的结尾和verbatim
的开头之间生成的。对于此示例,部分间隙是调用输出之前的空行。
关于如何在 knitr
中调整它的任何想法(不影响段落之间的任何间距等)?
遵循此处的建议
control vertical space before and after verbatim environment?
并在您的文档中添加以下行:
\usepackage{etoolbox}
\makeatletter
\preto{\@verbatim}{\topsep=0pt \partopsep=0pt }
\makeatother
有关更多详细信息,您可以查看此 。
我将 knitr
与 LaTeX
一起使用,代码块回显的命令与输出开始之间似乎有很多 space:
这个的 LaTeX 代码如下:
\begin{knitrout}\scriptsize
\definecolor{shadecolor}{rgb}{1, 1, 1}\color{fgcolor}\begin{kframe}
\begin{alltt}
\hlstd{> }\hlstd{lda_test_pred} \hlkwb{<-} \hlkwd{predict}\hlstd{(lda_fit,} \hlkwc{newdata} \hlstd{= seg_test)}
\hlstd{> }\hlkwd{library}\hlstd{(pROC)}
\hlstd{> }
\hlstd{> }\hlstd{lda_roc} \hlkwb{<-} \hlkwd{roc}\hlstd{(}\hlkwc{response} \hlstd{= seg_test}\hlopt{$}\hlstd{Class,}
\hlstd{+ } \hlkwc{predictor} \hlstd{= lda_test_pred}\hlopt{$}\hlstd{posterior[,} \hlstr{"PS"}\hlstd{],}
\hlstd{+ } \hlcom{## we need to tell the function that the _first_ level}
\hlstd{+ } \hlcom{## is our event of interest}
\hlstd{+ } \hlkwc{levels} \hlstd{=} \hlkwd{rev}\hlstd{(}\hlkwd{levels}\hlstd{(seg_test}\hlopt{$}\hlstd{Class)))}
\hlstd{> }\hlstd{lda_roc}
\end{alltt}
\begin{verbatim}
Call:
roc.default(response = seg_test$Class, predictor = lda_test_pred$posterior[, "PS"], levels = rev(levels(seg_test$Class)))
Data: lda_test_pred$posterior[, "PS"] in 346 controls (seg_test$Class WS) < 664 cases (seg_test$Class PS).
Area under the curve: 0.874
\end{verbatim}
\begin{alltt}
\hlstd{> }\hlcom{# plot(exRoc print.thres = .5)}
\end{alltt}
\end{kframe}
\end{knitrout}
space是在alltt
的结尾和verbatim
的开头之间生成的。对于此示例,部分间隙是调用输出之前的空行。
关于如何在 knitr
中调整它的任何想法(不影响段落之间的任何间距等)?
遵循此处的建议
control vertical space before and after verbatim environment?
并在您的文档中添加以下行:
\usepackage{etoolbox}
\makeatletter
\preto{\@verbatim}{\topsep=0pt \partopsep=0pt }
\makeatother
有关更多详细信息,您可以查看此