当未打印解决方案时,问题周围的空格

当未打印解决方案时,问题周围的空格

exsheets提供方便的命令来编写考试,并有一个不错的开关来打印答案。它还提供了一个打印代码的环境(使用包exsheets-listings)。

然而,即使没有打印解决方案,在环境中给出解决方案时两个问题之间的间距lstsolution也是不一致的。

母:

\documentclass[letterpaper]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{exsheets-listings}

%\SetupExSheets{solution/print=true}

\begin{document}

\begin{question}
Write a statement that assign the value $10$ to the variable \texttt{x}.
\end{question}

\begin{lstsolution}
x = 10;
\end{lstsolution}

\begin{question}
Here comes another question.
\end{question}

\begin{solution}
A solution that is not made of code.
\end{solution}

\begin{question}
And a last question to see the spacing.
\end{question}

\end{document}

未打印的lstsolution位于练习 1 和练习 2 之间,并且这两个练习之间的间距大于练习 2 和练习 3 之间的间距。

这是一项功能吗?有没有什么巧妙的解决方法(只需“手动”填充空格)?

在此处输入图片描述

答案1

这不是一个特征,exsheets而是——以下是在导致该行为listings的幕后发生的事情:exheets-listings

\documentclass{article}
\usepackage{listings}

\lstnewenvironment{codetest}{}{}

\begin{document}

some text

some text

\begin{codetest}
\end{codetest}

some text

\end{document}

在此处输入图片描述

aboveskip垂直空间是列表和参数的组合belowskip。如果不打印解决方案,可以将两个参数都设置为零:

\AtBeginEnvironment{lstsolution}
  {\PrintSolutionsF{\lstset{aboveskip=0pt,belowskip=0pt}}}

应用于你的例子:

\documentclass[letterpaper]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{exsheets-listings}

\AtBeginEnvironment{lstsolution}
  {\PrintSolutionsF{\lstset{aboveskip=0pt,belowskip=0pt}}}


\begin{document}

\begin{question}
Write a statement that assign the value $10$ to the variable \texttt{x}.
\end{question}

\begin{lstsolution}
x = 10;
\end{lstsolution}

\begin{question}
Here comes another question.
\end{question}

\begin{solution}
A solution that is not made of code.
\end{solution}

\begin{question}
And a last question to see the spacing.
\end{question}

\end{document}

在此处输入图片描述

相关内容