如何为 tikz 节点的命令添加样式

如何为 tikz 节点的命令添加样式

命令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}

在此处输入图片描述

相关内容