我想重新定义\verb|...|
命令,使其具有浅灰色背景和稍微暗一点的边框,并添加一些填充以使此背景“框”引人注目。有人知道怎么做吗?如果这不容易做到,我可以定义一个新命令来执行\verb|...|
此操作吗?
答案1
更新 2011-07-27
正如承诺的那样,我的包的新版本newverbs
提供了两个宏来收集逐字参数,不仅使用语法\verb|...|
,还使用{ .. }
。对于可排版的逐字使用\collectverb{\macrowhichgetsitasargument}
。
对于所请求的彩色背景和框架,请使用\fcolorbox{<frame color>}{<background color>}{<text>}
宏。
\documentclass{article}
\usepackage{xcolor}
\usepackage{newverbs}[2011/07/23]
\newcommand{\myverb}{\collectverb{\fcolorbox{black!50}{black!25}}}
\begin{document}
\myverb|%^&\|
\myverb{%^&\}
\end{document}
该newverbs
包允许您定义\verb
命令的变体,代码位于命令之前和之后。您需要使用保存框进行高级格式化。(我计划在下一个版本中还支持接收逐字文本作为正常参数的宏。)
例子:
\usepackage{newverbs}
\newverbcommand{\myverb}{\begin{lrbox}{\verbbox}\mytextformatmacro}{\end{lrbox}{\mycommand{\usebox{\verbbox}}}
...
\myverb|%^&\|
使用xcolor
包来添加颜色。
该包已经默认提供\fverb
(\fbox
在其周围画一个)和\qverb
(添加引号)。
您还可以使用该包的\verb
-like宏。它接受许多选项。\lstinline
listings
listings
答案2
我修改了标准\verb
命令并得到了结果,但无论如何我推荐 Martin 的方法。
\documentclass[a4paper]{article}
\usepackage{color}
\definecolor{cverbbackground}{gray}{0.7}
\definecolor{cverbborder}{gray}{0.2}
\makeatletter
\newbox\cverbbox
\def\cverb{\setbox\cverbbox=\hbox\bgroup
\verb@eol@error \let\do\@makeother \dospecials
\verbatim@font\@noligs
\@ifstar\@scverb\@cverb}
\def\@scverb#1{%
\catcode`#1\active
\lccode`\~`#1%
\gdef\verb@balance@group{\cverb@egroup
\@latex@error{\noexpand\verb illegal in command argument}\@ehc}%
\aftergroup\verb@balance@group
\lowercase{\let~\cverb@egroup}}%
\def\@cverb{\@vobeyspaces \frenchspacing \@scverb}
\def\cverb@egroup{\global\let\verb@balance@group\@empty\egroup
\fcolorbox{cverbborder}{cverbbackground}{\box\cverbbox}}
\makeatother
\begin{document}
\cverb|ab{\c| \cverb*|a }|
\end{document}
答案3
这里有一个适用的解决方案xparse
:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{xcolor}
\usepackage{xparse}
\NewDocumentCommand{\Fverb}{v}
{\fcolorbox{black!50}{black!25}{#1}}
\begin{document}
HALLO \Fverb|\foo| HALLO
\end{document}