在内联文本周围添加一个小的彩色圆角框

在内联文本周围添加一个小的彩色圆角框

是否可以使用 TikZ 编写命令,在句子内部的一段文本周围生成一个小的圆形彩色框?我知道该\framedbox命令会在一段文本周围产生一个矩形(但据我所知不是圆角矩形)。

我想人们也可以在使用框架框时调整背景颜色(使用以下答案中的提示问题),但我认为它对其他因素(例如盒子的边缘宽度、圆度等)没有帮助。

下面的图片是为了回答这个问题而用 Inkscape 制作的。

在此处输入图片描述

答案1

直接使用TikZtcolorbox使用\tcbox大量可配置设置。

如果这样的框出现多次,则使用 a\newtcbox是合适的,在那里设置选项,然后说出\inlinebox{foo}等等。

从直接使用可以看出,\tcbox边距太宽,但看起来\inlinebox更好看,那里的边距设置为left=...right=...boxsep=...

在此处输入图片描述

\documentclass{article}

\PassOptionsToPackage{svgnames,x11names,dvipsnames}{xcolor}
\usepackage[most]{tcolorbox}

\newtcbox{\inlinebox}[1][]{enhanced,
 box align=base,
 nobeforeafter,
 colback=cyan,
 colframe=Green4,
 size=small,
 left=0pt,
 right=0pt,
 boxsep=2pt,
 #1}

\begin{document}

Hello \tcbox[enhanced,box align=base,nobeforeafter,colback=cyan,colframe=Green4,size=small]{World} -- what do you expect from the year \inlinebox{2019}?


\end{document}

答案2

另一个选项是tikzmark,其选项比少tcolorbox,但允许您连接不同的盒子并检测您所处的模式(文本与数学等)。

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{tikzmark}
\begin{document}
Here is some text and \tikzmarknode[fill=cyan,fill
opacity=0.3,draw=green!60!black,thick,rounded corners,inner sep=2pt,text
opacity=1]{test}{something about relativity}.
\[\tikzmarknode[fill=cyan,fill
opacity=0.3,draw=green!60!black,thick,rounded corners,inner sep=2pt,text
opacity=1]{testeq}{E~=~m\,c^2}
\begin{tikzpicture}[overlay,remember picture]
\draw[thick,cyan,latex-latex] (test.-5) to[out=-90,in=0] (testeq.east);
\end{tikzpicture}\]
\end{document}

在此处输入图片描述

相关内容