启用某些宏时隐藏部分文本

启用某些宏时隐藏部分文本

问题

我现在正在为下个季度要教的课程准备练习。我有两个顾虑

  • 将问题描述和相应的解决方案写在两个单独的文件中非常烦人,因为以后可能需要大量的复制和粘贴。
  • 使用超链接在问题描述和解决方案之间跳转也很烦人,因为有些问题描述相当长并且涉及很多细节,这会让我和学生的生活变得更加困难。

我想知道是否有一种机制可以隐藏选定的文本部分全局设置。我知道我可以使用comment但是

  • 看来我需要对所有个别点进行评论。我不知道如何对所有需要评论的部分进行评论(我计划编写 200 多个练习)。

答案1

这是使用的一种方式电子工具箱环境

\documentclass{article}
\usepackage{environ}
\usepackage{etoolbox}

\newtoggle{doPrintStuff}        % the toggle is initially false

% Uncomment this if you don't want spaces after \end{maybePrint} to be
% discarded (the default is \environfinalcode{\ignorespacesafterend}, which
% causes such spaces to be ignored):
%
%\environfinalcode{}

\NewEnviron{maybePrint}{%
  \iftoggle{doPrintStuff}{\BODY}{}%
}

\begin{document}
X%
\begin{maybePrint}
  $\langle$environment contents$\rangle$
\end{maybePrint}
Y

\toggletrue{doPrintStuff}

X%
\begin{maybePrint}
  $\langle$environment contents$\rangle$
\end{maybePrint}
Y

X%
\begin{maybePrint}%
  $\langle$environment contents$\rangle$%
\end{maybePrint}
Y
\end{document}

截屏

答案2

您可以定义宏,例如,\comment当激活某些 if-switch 时隐藏其内容。以下代码引入了这样的宏,并且\comment可以通过启用/禁用部分来处理内容的可见性\commenttrue

\documentclass{article}

\newif\ifcomment


\def\comment#1{%
    \ifcomment\relax\else #1\fi}

% \commenttrue


\begin{document}
%------------------------
Problem statement\dots

\comment{Solution of the problem: \dots}
%------------------------
\end{document}

相关内容