我的目标是使用包Colorbox
中的宏realboxes
来突出显示内联代码,并使用包lstinline
中的命令listings
。该Colorbox
命令非常适合此目的,但我发现框周围的填充量对我来说有点太大了。下面我展示了一个 MWE 并展示了编译的示例,然后展示了我希望它看起来是什么样子的比较(修改后的版本是使用图像处理软件创建的)。
\documentclass{article}
\usepackage{xcolor}
\usepackage{listings}
\usepackage{realboxes}
\begin{document}
Some inline code \Colorbox{gray!20}{\lstinline{@#$%^&*()}} here
\end{document}
实际的:
期望:
答案1
您可以局部设置不同的值\fboxsep
;为了使所有这些背景的高度相同,幻影似乎是最佳解决方案。您还可以使用字距减少侧面的填充。
\documentclass{article}
\usepackage{xpatch}
\usepackage{xcolor}
\usepackage{listings}
\usepackage{realboxes}
\definecolor{mygray}{rgb}{0.8,0.8,0.8}
\lstset{
basicstyle=\ttfamily,
backgroundcolor=\color{mygray},
}
\makeatletter
\xpretocmd\lstinline
{%
\bgroup\fboxsep=1.5pt
\Colorbox{mygray}\bgroup\kern-\fboxsep\vphantom{\ttfamily\char`\\y}%
\appto\lst@DeInit{\kern-\fboxsep\egroup\egroup}%
}{}{}
\makeatother
\begin{document}
\noindent\lstinline[language=TeX]|\my code| \lstinline|axe| \lstinline|lll|
\begin{lstlisting}[language=TeX,columns=fullflexible]
\my code
\end{lstlisting}
\end{document}
答案2
它使用\fboxsep
与标准相同的参数\colorbox
\documentclass{article}
\usepackage{xcolor}
\usepackage{listings}
\usepackage{realboxes}
\begin{document}
Some inline code \Colorbox{gray!20}{\lstinline{@#$%^&*()}} here
\setlength\fboxsep{0pt}
Some inline code \Colorbox{gray!20}{\lstinline{@#$%^&*()}} here
\end{document}