tikzpicture 与文本的垂直对齐

tikzpicture 与文本的垂直对齐

我想使用 underbrace 来澄清一些文本,经过一番搜索,我找到了一个解决方案使用 Tikz 包。但是我在垂直对齐方面遇到了一些问题。以下是说明我的问题的 MWE:

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{matrix}
\usetikzlibrary{decorations.pathreplacing}

\tikzstyle{underbrace style}=[decorate,decoration={brace,raise=0.5mm,amplitude=3pt,mirror,pre=moveto,pre length=1pt,post=moveto,post length=1pt}]
\tikzstyle{underbrace text style}=[font=\tiny, below, pos=.5, yshift=-1mm]

\newcommand{\tikzunderbrace}[2]{\draw [underbrace style] (#1.south west) -- (#1.south east) node [underbrace text style] {#2};}

\begin{document}

Begining text
\begin{tikzpicture}
\matrix[matrix of nodes, inner sep=0pt, column sep=0pt, nodes={anchor=south}, text height=1.5ex,text depth=.25ex]{
\node (text) {some underlined text};\\
};
\tikzunderbrace{text}{explanation}
\end{tikzpicture}
and some more text

\end{document}

这是我得到的结果:

在此处输入图片描述

如您所见,文本垂直不对齐。经过更多搜索后,我意识到我必须在环境中添加一个选项tikzpicture

我尝试了以下选项[baseline={(text.south)}],得到了以下结果:

在此处输入图片描述

以及[baseline={([yshift={-\ht\strutbox}]text.north)}],这给了我以下结果:

在此处输入图片描述

如您所见,两种情况下的对齐效果都不太好。我希望整个文本出现在同一行上。

有人能帮我看看需要使用哪些参数才能实现正确的垂直对齐吗?提前谢谢了。

附言:我之所以使用矩阵环境,是因为实际文档比我在此处展示的要复杂得多。我刚刚将其精简为 MWE 的情况。

答案1

\documentclass{article}
\usepackage{amsmath}
\newcommand{\explan}[2]{$\underbrace{\text{#1}}_\text{#2}$}

\begin{document}

Begining text \explan{some underlined text}{explanation} and some more text

\end{document}

在此处输入图片描述

答案2

tikzmark 下支架

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{tikzmark}
\usetikzlibrary{matrix}
\usetikzlibrary{decorations.pathreplacing}

\tikzstyle{underbrace style}=[decorate,decoration={brace,raise=0.5mm,amplitude=3pt,mirror,pre=moveto,pre length=1pt,post=moveto,post length=1pt}]
\tikzstyle{underbrace text style}=[font=\tiny, below, pos=.5, yshift=-1mm]

\newcommand{\tikzunderbrace}[2]{\draw [underbrace style] (#1.south west) -- (#1.south east) node [underbrace text style] {#2};}

\begin{document}

You should use  \tikzmarknode{N1}{the tikzmark library} to underbrace your text.

\begin{tikzpicture}[overlay,remember picture]
    \tikzunderbrace{N1}{explanation}
\end{tikzpicture}

\end{document}

请注意,您必须至少编译两次才能正确定位您的图片。

答案3

在此处输入图片描述

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{matrix}
\usetikzlibrary{decorations.pathreplacing}

\tikzstyle{underbrace style}= [decorate,decoration={brace,raise=0.5mm,amplitude=3pt,mirror,pre=moveto,pre length=1pt,post=moveto,post length=1pt}]
\tikzstyle{underbrace text style}=[font=\tiny, below, pos=.5, yshift=-1mm]

\newcommand{\tikzunderbrace}[2]{\draw [underbrace style] (#1.south west) -- (#1.south east) node [underbrace text style] {#2};}

\begin{document}
    
    Begining text
    \begin{tikzpicture}[baseline=-0.12cm]
        \matrix[matrix of nodes, inner sep=0pt, column sep=0pt, ]{
            \node (text) {some underlined text};\\
        };
        \tikzunderbrace{text}{explanation}
    \end{tikzpicture}
    and some more text
    
\end{document}

相关内容