获取带有柔和灰色背景的逐字记录,如 tex.stackexchange 中所示

获取带有柔和灰色背景的逐字记录,如 tex.stackexchange 中所示

给出如下的逐字记录,

\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}

答案3

\usepackage{framed,color,verbatim}
\definecolor{shadecolor}{rgb}{.9, .9, .9}

\newenvironment{code}%
   {\snugshade\verbatim}%
   {\endverbatim\endsnugshade}

\begin{document}
text

\begin{code}
line one
line two
\end{code}

\end{document}

看起来像这样-

在此处输入图片描述

相关内容