我想定义一个环境,将使用该spverbatim
包的逐字文本放入由该包定义的框架中mdframed
。这是我的(天真的)方法:
\documentclass{scrreprt}
\usepackage{mdframed}
\usepackage{spverbatim}
\usepackage{color}
\definecolor{lightblue}{RGB}{240,248,255}
\newmdenv
[
backgroundcolor=lightblue,
hidealllines=true,
frametitlerule=false,
frametitle=,
]{notesx}
\newenvironment{notes}
{\begin{notesx}\begin{spverbatim}}
{\end{spverbatim}\end{notesx}}
\begin{document}
% works
\begin{notesx}
\begin{spverbatim}
Test 1
Test 2
\end{spverbatim}
\end{notesx}
% does not work
\begin{notes}
Test 1
Test 2
\end{notes}
\end{document}
使用定义的环境时notes
出现以下错误:
Runaway argument?
\end{document}
! File ended while scanning use of \@xverbatim.
notesx
使用添加环境的环境spverbatim
工作正常。
编辑:使用surroundwithmdframed
有效,但是当为自定义环境设置它\newenvironment{notes}{\begin{spverbatim}}{\end{spverbatim}}
而不是spverbatim
使用更好的名称时,它不起作用:! File ended while scanning use of \@xverbatim.
答案1
spverbatim
你可以使用与我相同的想法重新定义逐字环境
使用该verbatim
包,您可以定义一个适用的新环境\surroundwithmdframed
。
\documentclass{article}
\usepackage{verbatim,mdframed,ragged2e}
\usepackage{color}
\definecolor{lightblue}{RGB}{240,248,255}
\surroundwithmdframed[
backgroundcolor=lightblue,
hidealllines=true,
frametitlerule=false,
frametitle=,
]{notes}
\makeatletter
\def\notes{\def\@xobeysp{\mbox{}\space}\emergencystretch=\textwidth\RaggedRight\verbatim}
\let\endnotes\endverbatim
\makeatother
\begin{document}
\begin{notes}
Something breakable but otherwise typeset @#verbatim#} with special characters accessible
Test 1
Test 2
\end{notes}
\end{document}