![让内联代码打印更美观](https://linux22.com/image/277575/%E8%AE%A9%E5%86%85%E8%81%94%E4%BB%A3%E7%A0%81%E6%89%93%E5%8D%B0%E6%9B%B4%E7%BE%8E%E8%A7%82.png)
我必须在连续的文本中包含小的代码片段,例如方法和类名。我不想将这些代码片段显示为完整的独立列表,它们应该以内联方式显示,类似于此网站提供的选项backticks
。
但是让我们面对现实吧,开箱即用的选项实在太丑了。
我想到的是 GitHub(和许多其他网站)使用的符号:
因此,具体来说:
- 圆角
- 对比边框颜色
- 不同的背景颜色
- 固定宽度代码字体
- 文本内漂亮(垂直)对齐
我发现了许多在文本周围绘制框的选项(fancybox
,,和其他colorbox
)mdframed
,但这些包似乎都不能满足我的所有要求(再说一次,我并不是真正的 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>}