将 TikZ 图片置于文本上方

将 TikZ 图片置于文本上方

LuaLaTeX我正在使用(此时可互换)设计一些信头XeLaTeX,我希望我的签名和姓名像这样绘制:

在此处输入图片描述

签名是 TikZ 绘图,文本是普通类型,以负片凸起\vspace{}。但是,如果仔细观察,文本(自然)位于签名之上,我想将其反转。

我理解为什么它在顶部,但我不知道该怎么做才能扭转它,因为文本是相对于签名的大小来定位的。

因为上面的 MWE 示例有 3,878 行,所以我制作了一个较小的 MWE:

\documentclass{article}
\usepackage{tikz}

\begin{document}
    \begin{minipage}{2in}
        \resizebox{2in}{!}{
            \begin{tikzpicture}
                \draw[color=blue](0,0) circle (2);
            \end{tikzpicture}}\par
        \vspace*{-.15in}
        \resizebox{2in}{!}{Minimum Working Example}
    \end{minipage}
\end{document}

在此处输入图片描述

结构相同,只是更简单的绘图和文本。有什么方法可以强制蓝色TikZ绘图显示在下方文本的上方吗?

答案1

\documentclass{article}
\usepackage{tikz,stackengine}
\begin{document}
\stackon[-5pt]{\resizebox{2in}{!}{Minimum Working Example}}
{\begin{tikzpicture}\draw[color=cyan](0,0) circle (2);\end{tikzpicture}}
\end{document}

在此处输入图片描述

答案2

一种选择是使用overlaytikzpicture为了实现精确定位,您还可以使用tikzmark库放置一些标记,然后使用remember picture,使用这些标记将 放置tikzpicture在所需的位置;一个小例子:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{tikzmark,calc}

\begin{document}
    \begin{minipage}{2in}
        \tikzmark{start}\resizebox{2in}{!}{Minimum Working Example}\tikzmark{end}
            \begin{tikzpicture}[remember picture,overlay]
                \draw[color=blue,line width=3pt] 
                  ( $ (pic cs:start)!0.5!(pic cs:end) + (0cm,2cm) $ ) circle [radius=2cm];
            \end{tikzpicture}
    \end{minipage}
\end{document}

在此处输入图片描述

更新

由于overlay正在使用,您无法直接缩放tikzpicture;在这种情况下,首先将缩放的框起来tikzpicture,然后将其放置在所需的位置:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{tikzmark,calc}

\newsavebox\mybox
\savebox\mybox{%
\resizebox{2in}{!}{%
  \begin{tikzpicture}
    \draw[color=blue,line width=3pt] 
      ( $ (pic cs:start)!0.5!(pic cs:end) + (0cm,2cm) $ ) circle [radius=2cm];
  \end{tikzpicture}}%
}

\begin{document}

\vspace*{4cm}% just for the example

    \begin{minipage}{2in}
        \tikzmark{start}\resizebox{2in}{!}{Minimum Working Example}\tikzmark{end}
            \begin{tikzpicture}[remember picture,overlay]
                \node[inner sep=0pt,anchor=south] at
                  ( $ (pic cs:start)!0.5!(pic cs:end) $ ) {\usebox\mybox};
            \end{tikzpicture}
    \end{minipage}
\end{document}

在此处输入图片描述

该代码需要运行两到三次才能稳定下来。

相关内容