Переместите встроенный узел tikz по вертикали, чтобы выровнять его с базовой линией окружающего текста.

Переместите встроенный узел tikz по вертикали, чтобы выровнять его с базовой линией окружающего текста.

Я пытаюсь включить узлы tikz в бегущий текст, но сделать так, чтобы они хорошо выравнивались с окружающим их текстом. Мой MWE:

% !TEX program = xelatex

\documentclass{scrbook}

\usepackage{tikz}

\begin{document}

Some text \tikz \node[rectangle,rounded corners=0.5mm,text=white,fill=black!65,inner sep=2pt] {\scriptsize{}foo}; more text.

\end{document}

Это производит:

введите описание изображения здесь

Я хотел бы сместить узел вниз так, чтобы базовая линия "foo" совпадала с базовой линией окружающего текста. Есть довольно много информации о выравнивании относительно других узлов, но на самом деле все, что мне нужно сделать, это сместить его вертикально вниз на заданную величину, но я не могу понять, как это сделать.

Какой самый простой/лучший способ сместить весь узел вниз, чтобы базовые линии выровнялись?

решение1

Используйте \tikz[baseline]и anchor=baseкак опцию к узлу или используйте tcolorboxсbox align=base

\documentclass{scrbook}

\usepackage[most]{tcolorbox}

\usepackage{tikz}

\begin{document}

Some text \tikz[baseline]{%
\node[rectangle,rounded corners=0.5mm,text=white,fill=black!65,inner sep=2pt,anchor=base] (A) {\scriptsize{}foo};} more text.

Some text \tcbox[enhanced,frame hidden,box align=base,nobeforeafter,left=0pt,right=0pt,top=0pt,bottom=0pt,arc=0.5mm,fontupper=\scriptsize,colupper=white,,colback=black!65]{foo} more text
\end{document}

введите описание изображения здесь

Связанный контент