是否可以绘制一个填充线高度的矩形?

是否可以绘制一个填充线高度的矩形?

我试图通过将文档的某些部分放在用 TikZ 绘制的框内来突出显示它们。为了保留可读的文档,我使用一个简单的宏来实现这一点\focus

\documentclass{article}
\usepackage{tikz}
\begin{document}

% highlighting
\newcommand*{\focus}[1]{%
\tikz[baseline]\node[rectangle, inner ysep=0pt, inner xsep=2pt, anchor=text, fill=lightgray, anchor=base]{$#1$};%
}

\focus{x} \focus{g}
\end{document}

如您所见,突出显示通常有效,但绘制的矩形的大小由封闭字符的大小决定。有没有办法让整行获得统一的大小?

答案1

我会使用幻影(和正极y sep):

\documentclass{article}
\usepackage{tikz}
\begin{document}

% highlighting
\newcommand*{\focus}[1]{%
  \tikz[baseline]
    \node[
      rectangle,
      inner ysep=1pt,
      inner xsep=2pt,
      anchor=text,
      fill=lightgray,
      anchor=base
    ]{$\vphantom{ly}#1$}
  ;%
}

x\focus{x} \focus{g}x
\end{document}

在此处输入图片描述

答案2

另一种选择是使用tcboxfromtcolorbox而不是TikZ

\documentclass{article}
\usepackage[most]{tcolorbox}

\newtcbox{\focus}[1][gray]{enhanced, 
    on line, 
    size=tight, 
    boxsep=1pt,
    sharp corners, 
    frame hidden,
    before upper=\vphantom{ly},     
    colback=#1}

\begin{document}
x\focus{x} \focus{g}x \focus[red]{h}
\end{document}

在此处输入图片描述

相关内容