给出如下的逐字记录,
\begin{verbatim}
This is an awesome verbatim
\end{verbatim}
在编译后的 pdf 页面上显示时没有背景:
这是一个很棒的逐字记录
我希望此逐字文本的背景为柔和的灰色。编译后的 PDF 页面上的结果将是:
This is an awesome verbatim
有没有一种简单的方法可以做到这一点,仍然使用逐字(即不使用列表)?提前谢谢您。
附加问题:
是否可以做同样的事情\texttt{not usual verbatim but still code quote}
,并为所有元素获取灰色背景\texttt{*}
?它还会显示:
not verbatim but still code quote
答案1
您可以使用fancyvrb
;我提出两种解决方案,一种是背景仅在实际内容下方,另一种是一直延伸到线宽。
对于其他问题,您可以使用newverbs
:
\documentclass{article}
\usepackage{fancyvrb,newverbs,xcolor}
\usepackage{lipsum}% just for this example
\definecolor{cverbbg}{gray}{0.93}
\newenvironment{cverbatim}
{\SaveVerbatim{cverb}}
{\endSaveVerbatim
\flushleft\fboxrule=0pt\fboxsep=.5em
\colorbox{cverbbg}{\BUseVerbatim{cverb}}%
\endflushleft
}
\newenvironment{lcverbatim}
{\SaveVerbatim{cverb}}
{\endSaveVerbatim
\flushleft\fboxrule=0pt\fboxsep=.5em
\colorbox{cverbbg}{%
\makebox[\dimexpr\linewidth-2\fboxsep][l]{\BUseVerbatim{cverb}}%
}
\endflushleft
}
\newcommand{\ctexttt}[1]{\colorbox{cverbbg}{\texttt{#1}}}
\newverbcommand{\cverb}
{\setbox\verbbox\hbox\bgroup}
{\egroup\colorbox{cverbbg}{\box\verbbox}}
\begin{document}
Some verbatim mid line \cverb|$a^{x+y}=a^xa^y$| and other words. Also
a simple \ctexttt{typewriter text} with its background.
\lipsum[1]
\begin{cverbatim}
Something
verbatim
\foo
\end{cverbatim}
\lipsum[2]
\begin{lcverbatim}
Something
verbatim
\foo
\end{lcverbatim}
\lipsum[3]
\end{document}
答案2
这是使用verbatimbox
包的一种方法。
答案已被编辑,允许逐字逐句选择性地占据整个文本宽度,方法是将其塞入\theverbbox
全宽\parbox
。这种方法的一个缺点verbbox
是\theverbbox
不能跨越页面边界。
\documentclass{article}
\usepackage{verbatimbox}
\usepackage{xcolor}
\begin{document}
Not verbatim
\begin{verbbox}[\scriptsize]
Inline \scriptsize \verbatim
\end{verbbox}
\colorbox{lightgray}{\theverbbox}
Not vermatim\par
Not verbatim
\begin{verbbox}[\itshape]
This is multi-line \itshape \verbatim
with variable width, &%^@
that can be presented on separate lines with the use of \par
\end{verbbox}
\par\colorbox{lightgray}{\theverbbox}\par
Not verbatim
\begin{verbbox}
This is \verbatim
made to look full width
with the use of \par's and a full width \parbox
\end{verbbox}
\par\colorbox{lightgray}{\parbox{\textwidth}{\theverbbox}}\par
Not verbatim
\end{document}
如果你希望最后一个设置作为它自己的环境,那么将其定义为
\newenvironment{fullgrayverb}
{\verbbox}
{\endverbbox\par\colorbox{lightgray}{\parbox{\textwidth}{\theverbbox}}\par}
并按如下方式使用它
\begin{fullgrayverb}
\verbatim
full width
gray background
in its own \newenvironment
\end{fullgrayverb}