命令mybox
来自这个回答。
原来的mybox
\newcommand\mybox[2][]{\tikz[overlay]\node[fill=black!20, inner sep=2pt,
anchor=text, rectangle, rounded corners=1mm,#1] {#2};\phantom{#2}}
如果我使用此命令,我会得到如下结果
我希望它有更多类似代码的风格,所以我把它做成了下面的样子
\newcommand\mybox[2][]{\tikz[overlay]\node[fill=black!20, inner sep=2pt,
anchor=text, rectangle, rounded corners=1mm,\texttt{#1}] {#2};\phantom{#2}}
这个甚至没有编译,所以我搜索并调整为
\newcommand\mybox[2][]{\tikz[overlay]\node[fill=black!20,font=\ttfamily, inner sep=2pt,
anchor=text, rectangle, rounded corners=1mm,#1] {#2};\phantom{#2}}
这个编译了,但这不是我想要的 所以我又创建了另一个命令来包装它。
\newcommand\mybox[2][]{\tikz[overlay]\node[fill=black!20, inner sep=2pt, anchor=text, rectangle, rounded corners=1mm,#1] {#2};\phantom{#2}}
\newcommand{\incode}[2][]{\mybox[#1]{\relscale{0.85}\texttt{#2}}}
我添加了一些相对缩放,因为字体比我想要的大。我得到的结果正是我想要的。但是,我想将这两个命令合并为一个。如果能得到一些帮助就好了。
编辑:MWE 添加
\documentclass[12pt, a4paper]{report}
\usepackage{tikz}
\usepackage{relsize} % relative scaling for font size
\newcommand\mybox[2][]{\tikz[overlay]\node[fill=black!20, inner sep=2pt, anchor=text, rectangle, rounded corners=1mm,#1] {#2};\phantom{#2}}
\newcommand{\incode}[2][]{\mybox[#1]{\relscale{0.85}\texttt{#2}}}
\begin{document}
Example \incode{0.2example} example
\end{document}
答案1
感谢您添加 MWE!
一个可能的解决方案很简单:将第二个命令的定义插入到第一个命令中:
\documentclass{article}
\usepackage{relsize}
\usepackage{tikz}
\newcommand\mybox[2][]{\tikz[overlay]
\node[rounded corners=1mm, fill=black!20, inner sep=2pt, anchor=text,
#1] {\relscale{0.85}\texttt{#2}};\phantom{#2}}
\begin{document}
some text \mybox{0.2example} some text
\end{document}
编辑:以及使用命令选项的示例:
\begin{document}
some text \mybox[draw=red]{0.2example} some text
\end{document}
答案2
另一种选择是tcolorbox
\documentclass[12pt, a4paper]{report}
\usepackage[most]{tcolorbox}
\newtcbox{\incode}[1][]{on line, enhanced, colback=black!20, fontupper=\sffamily\small, boxrule=0pt, boxsep=2pt, left=2pt, right=2pt, top=2pt, bottom=2pt, frame hidden,#1}
\begin{document}
Example \incode{0.2example} example \incode[colback=red!30]{0.2example}
\end{document}