我正在尝试在命令中添加灰色突出显示,\texttt
以实现与code blocks on here.
这是我在第一次开始编写当前文档时尝试做的事情。我不记得我是怎么做到的,但我写的更新命令如下所示:
\definecolor{Light}{gray}{.90}
\sethlcolor{Light}
\renewcommand{\texttt}{\hl}
这给了我灰色的高亮,但是字体不再是等宽的。
谁能帮我?
答案1
您需要做一个小调整:
\let\OldTexttt\texttt
\renewcommand{\texttt}[1]{\OldTexttt{\hl{#1}}}
得到normal text \texttt{foo bar} normal text
收益:
替代解决方案:
请注意,上述解决方案将产生影响全部的使用\texttt{}
。如果不希望这样,另一种解决方案是定义自定义宏:
\newcommand{\hltexttt}[1]{\texttt{\hl{#1}}}
然后\hltexttt{}
在您想要\hl
和\texttt
效果时使用。
代码:
\documentclass{article}
\usepackage{xcolor}
\usepackage{soul}
\definecolor{Light}{gray}{.90}
\sethlcolor{Light}
\let\OldTexttt\texttt
\renewcommand{\texttt}[1]{\OldTexttt{\hl{#1}}}% will affect all \texttt
%\newcommand{\hltexttt}[1]{\texttt{\hl{#1}}}% comment above \renewcommand if want this
\begin{document}
normal text \texttt{foo bar} normal text
\end{document}
答案2
Peter Grill 已经提供了很好的答案。作为替代方案,您也可以使用\colorbox
或来实现这一点\fcolorbox
。该字母还允许您指定边框颜色:
代码:
\usepackage{xcolor}
\definecolor{codebg}{gray}{0.95}
\definecolor{codeframe}{gray}{0.8}
\newcommand{\inlinecode}[1]{\fcolorbox{codeframe}{codebg}{\small\!\texttt{#1}\!}}
normal text \inlinecode{foo bar} normal text