内联 tikz 对齐 — 使用 \newcommand

内联 tikz 对齐 — 使用 \newcommand

我想tikzpicture无缝地在文本中使用它作为命令。

我正在尝试做以下事情

\documentclass{article}

\usepackage{tikz}

\newcommand{\textrot}[1]{%
    \begin{tikzpicture}
    \node[scale=-1] {#1};
    \end{tikzpicture}
}

\begin{document}

My beautiful text

My \textrot{beautiful} text

\end{document}

但一切都发生了变化。我的目标是使用内联修改文本tikz,而不影响其他文字。

在此处输入图片描述

笔记:我并不是在寻找反映单词的方法。我打算将 tikzpicture 用作其他用途的命令。

答案1

您必须说出tikzpicture基线必须去往何处(我添加了一个带有后代的字母,因为它很重要......):

请注意,您必须定义对齐的含义。在第一种情况下,文本的两个基线对齐。在第二种情况下,反射文本的顶部位于基线上。在最后一种情况下,文本的中心位于基线上。

\documentclass{article}

\usepackage{tikz}

\newcommand{\textrot}[1]{%
    \begin{tikzpicture}[baseline=(A.base)]
        \node[scale=-1, inner sep=0pt](A) {#1};
    \end{tikzpicture}%
}
\newcommand{\textrotb}[1]{%
    \begin{tikzpicture}[baseline=(A.north)]
        \node[scale=-1, inner sep=0pt](A) {#1};
    \end{tikzpicture}%
}

\newcommand{\textrotc}[1]{%
    \begin{tikzpicture}[baseline]% baseline at 0,0 of the picture
        \node[scale=-1, inner sep=0pt](A) {#1};
    \end{tikzpicture}%
}
\begin{document}

My beautiful text

My \textrot{beautjful} text

My \textrotb{beautjful} text

My \textrotc{beautjful} text
\end{document}

在此处输入图片描述

如果你draw, red向节点选项添加一个,你会看到更好的效果:

在此处输入图片描述

您可以明确使用带有可选参数的定义作为基线锚点,例如

\newcommand{\textrot}[2][base]{%
    \begin{tikzpicture}[baseline=(A.#1)]
        \node[draw, red, thin, scale=-1, inner sep=0pt](A) {#2};
    \end{tikzpicture}%
}

相关内容