如何删除通过 probsoln 包传递的代码中的多余空格?

如何删除通过 probsoln 包传递的代码中的多余空格?

这是一个简单的问题,但实际情况可能很复杂。我使用 RStudio 编写作业和考试,使用probsoln将 R 代码直接嵌入 LaTeX 的软件包。我正在使用knitr来为我做实际的编织(一键编译)。我有一个很多我从这个组合中受益匪浅,并且非常喜欢使用它。作者值得称赞probsoln。但有一件事仍然困扰着我,那就是通过 probsoln 包解析代码的方式。

代码中的字符或单词之间添加了额外的空格。

我创建了一个演示代码,展示了输出是什么样子的,我希望它是什么样子的,以及我会满足什么。PDF 可以查看这里

我可以做些什么来删除这些空格并让代码按正常逐字进行解析,或者更好的是语法高亮的代码?

\documentclass{article}
\usepackage{probsoln}

% Uncomment the following line to generate solution sheet.
\showanswers

% Load problems from external files, grouped type of problem
<<desc,child="samp_prblms.Rnw">>=
@

\begin{document}

Probsoln output. Adds extra spacing between certain characters. \\
\useproblem{test}


Desired output format.
<<warning=FALSE>>=
  library(MASS)
  f <- subset(survey, Sex=="female")
@

Verbatim output format. Acceptable, but missing syntax highlighting.
\begin{verbatim}
  library(MASS)
  f <- subset(survey, Sex=="female")
\end{verbatim}
\end{document}

samp_prblms.Rnw 文件定义了以下问题/解决方案对。

\begin{defproblem}{test}[fragile]
Subset the survey data set in the MASS library to only include females.
\begin{onlysolution}[fragile]%
  \begin{solution}
  <<warning=FALSE>>=
  library(MASS)
  f <- subset(survey, Sex=="female")
  @
    \end{solution}
\end{onlysolution}
\end{defproblem}

答案1

我遇到了和你一样的问题。我发现一个部分解决方案是highlight = FALSE在 knitr 块中设置选项或全局定义它(见下文)。但这不是最佳方案。

<<include = FALSE>>= library(knitr) opts_chunk$set(highlight = FALSE) @

相关内容