打开或关闭部件

打开或关闭部件

我正在为一个研讨会撰写一些笔记,该研讨会的听众来自不同背景,他们使用不同的统计软件包。对于实验课,我希望创建一个包含问题和相应软件代码的练习。

我的问题是:有人可以推荐一些方法来打开/关闭某些软件代码,以便我可以 i) 只写一次问题,ii) 为不同的用户编译不同的版本?

具体方案如下:

在此处输入图片描述

我把代码放在最后作为最小可复制的示例。

理想情况下,如果我可以合并如下命令(宏?),那就太好了:

printSoftwareA
% printSoftwareB
% printSoftwareC

在序言中,这样我就可以打开或关闭它们。我希望在一个文档中看到它们,因为这样我可以更轻松地同时掌握所有代码,以确保软件之间的一致性。

\documentclass[12pt]{article}
\usepackage{xcolor}
\usepackage{listings}
\definecolor{verbgray}{gray}{0.9}

\lstnewenvironment{code}{%
  \lstset{backgroundcolor=\color{verbgray},
  frame=single,
  framerule=0pt,
  basicstyle=\ttfamily,
  columns=fullflexible}}{}

\begin{document}

\section*{General text for all readers}

This is the text I'd like to show all readers.

\subsection*{How to do it in Software A}

\begin{code}
proc reg;
model y=x;
run;

\end{code}

\subsection*{How to do it in Software B}

\begin{code}
reg y x
\end{code}

\end{document}

答案1

感谢评论中关于该软件包的提示comment!我明白了。以下是我的做法,以防其他人也打算这么做:

\documentclass[12pt]{article}
\usepackage{xcolor}
\usepackage{listings}
\definecolor{verbgray}{gray}{0.9}

\lstnewenvironment{code}{%
  \lstset{backgroundcolor=\color{verbgray},
  frame=single,
  framerule=0pt,
  basicstyle=\ttfamily,
  columns=fullflexible}}{}

\usepackage{comment}

\includecomment{softwareA}
%\excludecomment{softwareA}

%\includecomment{softwareB}
\excludecomment{softwareB}

\begin{document}

\section*{General text for all readers}

This is the text I'd like to show all readers.

\begin{softwareA}
\subsection*{How to do it in Software A}
\begin{code}
proc reg;
model y=x;
run;
\end{code}
\end{softwareA}

\begin{softwareB}
\subsection*{How to do it in Software B}
\begin{code}
reg y x
\end{code}
\end{softwareB}

\end{document}

通过切换includecomment{}excludecomment{}我能够实现我的目标。

相关内容