让内联代码打印更美观

让内联代码打印更美观

我必须在连续的文本中包含小的代码片段,例如方法和类名。我不想将这些代码片段显示为完整的独立列表,它们应该以内联方式显示,类似于此网站提供的选项backticks

但是让我们面对现实吧,开箱即用的选项实在太丑了。

我想到的是 GitHub(和许多其他网站)使用的符号:

因此,具体来说:

  • 圆角
  • 对比边框颜色
  • 不同的背景颜色
  • 固定宽度代码字体
  • 文本内漂亮(垂直)对齐

我发现了许多在文本周围绘制框的选项(fancybox,,和其他colorboxmdframed,但这些包似乎都不能满足我的所有要求(再说一次,我并不是真正的 LaTeX 专家)。

所以问题是:我们如何才能使内联代码变得漂亮?

答案1

这就是你要找的东西吗?

输出

在此处输入图片描述

代码

\documentclass{article}
\usepackage{tikz}

\newcommand\code[1]{
  \tikz[baseline=(s.base)]{
    \node(s)[rounded corners,fill=orange!20,draw=gray]{\texttt{#1}};
  }
}

\begin{document}

Further, lists can be turned into \textcolor{blue}{Task Lists} 
by prefacing list items with \code{[ ]} or \code{[x]} (incomplete or complete,
respectively.

\end{document}

更新

对宏进行了轻微改进\code,以确保无论内容的高度/深度如何,框的高度和深度都是一致的。此外,改进后的宏\codex还允许使用可选参数。

\newcommand\codex[2][]{
    \tikz[baseline=(s.base)]{
        \node(s)[
            rounded corners,
            fill=blue!5,        % background color
            draw=gray,          % border of box
            text=gray!50!black, % text color
            inner xsep =3pt,    % horizontal space between text and border
            inner ysep =0pt,    % vertical space between text and border
            text height=2ex,    % height of box
            text depth =1ex,    % depth of box
            #1                  % other options
        ]{\texttt{#2}};
    }
}

\code比较改进版本的输出\codex

\code{aaaa} \code{bbbb} \code{ffff} \code{gggg} \code{<code>\textbackslash code</code>}

\codex{aaaa} \codex{bbbb} \codex{ffff} \codex{gggg} \codex{<code>\textbackslash code</code>}

在此处输入图片描述

相关内容