我正在使用的verbatim
环境
\begin{verbatim}
XXXX
\end{verbatim}
我希望有重新定义逐字环境的选项,这样就不会打印\begin{verbatim}
和之间的任何\end{verbatim}
内容。这样我就可以打印一份包含逐字信息的长版论文,以及一份省略逐字信息的短版论文。如果有人能告诉我如何做到这一点,我将不胜感激。
答案1
这comment
包裹允许您(重新)定义注释环境。因此,请在文档序言中包含以下内容:
\usepackage{comment}% http://ctan.org/pkg/comment
\excludecomment{verbatim}
这应该排除 verbatim
环境内容。如果您想verbatim
再次包含所有内容(对于文章的较长版本,请注释掉该\excludecomment{verbatim}
行。
对于删除内容的更零散的方法verbatim
,可以采取以下方法:
\documentclass{article}
\usepackage{comment}% http://ctan.org/pkg/comment
\begin{document}
\begingroup
\excludecomment{verbatim}
A
\begin{verbatim}
&^_%\{}
\end{verbatim}
B
\endgroup
A
\begin{verbatim}
&^_%\{}
\end{verbatim}
B
\end{document}
另一个温和的替代方案comment
是使用environ
。以下内容未经严格测试,但可以工作:
\documentclass{article}
\usepackage{environ}% http://ctan.org/pkg/environ
\makeatletter
\newcommand{\voidenvironment}[1]{%
\expandafter\providecommand\csname env@#1@save@env\endcsname{}%
\expandafter\providecommand\csname env@#1@process\endcsname{}%
\@ifundefined{#1}{}{\RenewEnviron{#1}{}}%
}
\makeatother
\begin{document}
\begingroup
\voidenvironment{verbatim}%
A
\begin{verbatim}
&^_%\{}
\end{verbatim}
B
\endgroup
A
\begin{verbatim}
&^_%\{}
\end{verbatim}
B
\end{document}
注意输出的差异。在被吞噬之后,严格来说和verbatim
之间只有一个换行符(空格)。A
B
答案2
对于论文的较短版本,您可以加载comment
包并将 的所有实例替换{verbatim}
为{comment}
。这样,您就不必处理在逐字/注释区域中出现的&
和等字符引起的问题。#
答案3
verbatim
我是在战斗结束后很久才来的,但这里只是模仿了战斗的方式source2e
。
\documentclass{article}
\usepackage{amsthm}
\newtheorem{theo}{Theorem}
\makeatletter
\let\original@proof\proof
% Plagiarizing verbatim set-up:
\begingroup
\catcode `|=0 \catcode `[= 1 \catcode`]=2
\catcode `\{=12 \catcode `\}=12 \catcode`\\=12
|long|gdef|suppressed@proof #1\end{proof}[|end[proof]]
|endgroup
\def\makeproofsinvisible
{\def\proof
{\catcode`\{=12 \catcode `\}=12 \catcode`\\=12 \suppressed@proof }}
\def\makeproofsvisible{\let\proof\original@proof }
\makeatother
\begin{document}
\begin{theo}[Unkn.]
Dog exists.
\end{theo}
\begin{proof}
First step: actually, we don't really exist.
\end{proof}
\makeproofsinvisible
\begin{proof}
Second step is censored.
\end{proof}
\makeproofsvisible
\begin{proof}
Third Step: hence Dog exists.
\end{proof}
\end{document}
答案4
答案来自我之前的类似问题不使用 % 和注释环境来注释行@egreg 回答了这个问题。
似乎可以正常工作\begin{equation}....
但不幸的是它不能很好地工作\begin{verbatim}...
不过,如果最终修复了错误,那将是一个好主意。它在未来通常会很有用
\documentclass[a4paper,10pt]{article}
\usepackage[utf8x]{inputenc}
\usepackage{verbatim}
\usepackage{lipsum}
\newif\ifprolog
\long\def\startprolog#1\stopprolog{%
\ifprolog
\par
\begingroup
\let\\\par
#1
\par\medskip
\endgroup
\fi}
\prologtrue % comment out for omitted the inside \startprolog \stopprolog content
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\lipsum[1]
\startprolog
\begin{equation}
k = \frac{1}{2} m u^2
\end{equation}
\stopprolog
\lipsum[1]
\startprolog
\begin{verbatim}
> eqn:=diff(y(t),t,t)+4*y(t)=0:
> inits:=y(0)=1,D(y)(0)=-1:
> dsolve({eqn,inits},y(t));
\end{verbatim}
\stopprolog
\lipsum[2]
\end{document}