当然,我在这里遗漏了一些东西,但我记不起=(了。我想构建一个接受特殊 LaTeX 符号并正确显示它们的命令。特殊的意思是\
,_
或其他一些,并尊重空格、页面/换行符。特殊文本可以是\rmfamily
或\ttfamily
,并且不需要连字符。
\documentclass{article}
\newcommand{\specialtext}{\ttfamily #1}
\begin{document}
\specialtext{This a special text with \ # _}
\end{document}
答案1
感谢 David Carlisle 的妙招(见逐字环境中的可选参数),他帮助我做了以下事情(根据 egreg 的建议,针对 T1 编码进行了编辑):
\documentclass{article}
\usepackage{verbatimbox}
\usepackage{readarray}
\renewcommand\encodingdefault{T1}
\parskip 1ex\parindent 0em
\newenvironment{venv}{\verbatim\venvinner}{\endverbatim}
\makeatletter
\newcommand\venvinner[1][]{{\nfss@catcodes\scantokens{\gdef\tmp{#1}}}\tmp}
\makeatother
\begin{document}
\normalsize
\begin{venv}[\LARGE]
this is a test of \LARGE verbatim
\end{venv}
Back to normal text outside of verbatim
\normalsize
\begin{venv}[\large]
\tiny this is a test of \large verbatim
that begins with a \ character, which
is tricky business when using optional
arguments in a verbatim environment.
\end{venv}
Back to normal text outside of verbatim
\normalsize
\begin{venv}[\rmfamily]
Here is verbatim text in \rmfamily.
\end{venv}
\begin{venv}[\slshape]
And we have verbatim in \slshape
\end{venv}
\end{document}
附言:最后我想补充的是,该verbatimbox
软件包采用了这种 [可选预处理] 逻辑,以便将内容逐字逐句地塞入框中。但在这种情况下,它必须显示在一页上,因为框不能跨页显示。