我有一段包含源代码的文本,我想将其显示出来。我正在使用 pandoc,因此我必须使用 verbatim 或 listings 环境。不幸的是,我无法使用 listings 包(由于西里尔符号问题)。因此,我只使用 verbatim。但 verbatim 无法自动换行。我找到了适合我需求的 spverbatim 包,现在我想重新定义 verbatim 环境。
1)首先,我尝试用 let 命令重新定义它:
\let\verbatim\spverbatim
但它就是编译不通过,没有任何错误。看起来整个编译过程都停滞了。
2)然后,我尝试使用 renewenvironment 命令:
\renewenvironment{verbatim}{\begin{spverbatim}}{%
\end{spverbatim}\ignorespacesafteren
}
然后出现错误:“!TeX 容量超出,抱歉 [保存大小=80000]。 \reserved@a ...tim}\edef \@currenvline {\on@line } \csuse {@begin@spverbatim@... l.372 \begin{verbatim}”
有没有办法重新定义在逐字逐句环境中的构建,或者我做的事情完全是错误的?
答案1
您可以使用相同的想法spverbatim
;我还添加了\raggedright
或者预计会出现几个过满的箱子。
\documentclass{article}
\makeatletter
\def\@xobeysp{\mbox{}\space}
\def\verbatim@font{\normalfont\ttfamily\raggedright}
\makeatother
\begin{document}
\begin{verbatim}
Something which will break but is otherwise typeset @#verbatim#} with special characters accessible
\end{verbatim}
\end{document}
如果您打算在列表中使用verbatim
,则需要进行一些小小的更改(感谢 Christof R 的注意):
\documentclass{article}
\makeatletter
\def\@xobeysp{\mbox{}\space}
\def\verbatim@font{\normalfont\ttfamily\raggedright\leftskip\@totalleftmargin}
\makeatother
\begin{document}
\begin{verbatim}
Something which will break but is otherwise typeset @#verbatim#} with special characters accessible
\end{verbatim}
\begin{itemize}
\item Text
\begin{verbatim}
Something which will break but is otherwise typeset @#verbatim#} with special characters accessible
\end{verbatim}
\begin{itemize}
\item Text
\begin{verbatim}
Something which will break but is otherwise typeset @#verbatim#} with special characters accessible
\end{verbatim}
\end{itemize}
\item Text
\end{itemize}
\end{document}