请教大佬,如何写一个环境,可以选择性编译和不编译该环境内的代码? 有人说用comment宏包,这个只能忽略编译这个环境内的代码吧?

5 回答5

16
`comment`包提供了`comment`注释环境之外,还提供了两个很有用的命令`\includecomment{环境名}`和`\excludecomment{环境名}`,这两个名字,前者是是把注释环境包含进来(也就是变为非注释环境),后者把非注释环境变为注释环境,以下`mwe` ```tex \documentclass{ctexart} \newenvironment{solution}{\par \noindent{\heiti 解}\hspace{1em} }{\par}%%定义解答环境 \usepackage{comment} \includecomment{comment}%%添加此命令使得comment环境变为非注释环境 \excludecomment{solution}%%添加此命令使得solution环境变为注释环境 \begin{document} 这是一题 \begin{solution} 这是解答 \end{solution} \begin{comment} 这是一段注释 \end{comment} \end{document} ``` 如果需要输出答案就第7行注释,如果要删除答案就加上第7行,所有的`solution`环境都会被注释掉。
0
我总感觉你说的是在某环境中,不显示它的内容却保留它的空白……
  • 不是的,类似于一道题的解析,只留给老师看 – laiwenjie 2019-11-20 10:40 回复
0
不知道这样可以不?[https://wenda.latexstudio.net/article-5018.html](https://wenda.latexstudio.net/article-5018.html "https://wenda.latexstudio.net/article-5018.html")
0
载入 `comment` 宏包后,使用 ```tex \includecomment{<envname>} ``` 能把任意环境 `<envname>` 变成类似 `{comment}` 的环境,即忽略环境内容。 注意,`comment` 宏包的「注释」功能,对环境的 `\begin{<envname>}` 和 `\end{<envname>}` 的写法有要求,可参考宏包文档和知乎文章 [[LaTeX 尝试] 扩展 comment 环境的结束条件](https://zhuanlan.zhihu.com/p/73073851)。
  • 回复 undefined :把 `\inlucecomment` 注释,或者使用 `\excludecomment`。请看一看宏包文档,并自己试一试 – 论坛 github.com/CTeX 2019-11-20 22:27 回复
  • 非常感谢,那如果需要临时编译comment里的内容,如何实现? – laiwenjie 2019-11-20 10:40 回复
0
```tex \documentclass[12pt,a4paper]{ctexart} \usepackage{amsmath,amssymb,amsfonts,amstext} \usepackage{verbatim} %注释 \usepackage{xeCJK} %加载中文字体包 \begin{document} \section{Chapter1} 这是第一个公式. \begin{equation} a^2+b^2=c^2 \end{equation} \begin{comment} 这是第二个公式. \begin{equation} n!=n \cdot (n-1) \cdots 2 \cdot 1 \end{equation} \end{comment} \end{document} ``` 加载宏包 `verbatim`,使用`\begin{comment} ... \end{comment}`可忽略内部代码进行编译。

你的回答

请登录后回答

你的回答将会帮助更多人,请务必认真回答问题。