我正在将knitrLaTeX一起使用,并且在代码块回显的命令与输出的开始之间似乎有很多空间:

r - 减少命令和编织块中输出之间的空间-LMLPHP

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}

alltt的末尾与verbatim的开始之间生成了空格。对于此示例,部分间隙是调用输出之前的空白行。

关于如何在knitr中进行调制的任何想法(不影响段落之间的任何间隔等)?

最佳答案

遵循此处找到的建议

control vertical space before and after verbatim environment?

并将以下行添加到您的文档中:

\usepackage{etoolbox}
\makeatletter
\preto{\@verbatim}{\topsep=0pt \partopsep=0pt }
\makeatother

有关更多详细信息,您可以检查此answer

10-06 14:22
查看更多