具有用户定义形状的 PGF 节点呈现为细长的空 PDF 文件

具有用户定义形状的 PGF 节点呈现为细长的空 PDF 文件

考虑以下 LaTeX 手稿,其中包含一个节点的 PGF 图片,其形状是用户定义的形状myshape

\documentclass{standalone}
\usepackage{pgf}
\usepgfmodule{shapes}
\begin{document}
    \pgfdeclareshape{myshape}{
        \savedanchor\mytext{\pgfpointorigin}
        \anchor{text}{\mytext}
    }
    \begin{pgfpicture}
        \pgfnode{myshape}{text}{Hello world}{}{\pgfusepath{stroke}}
    \end{pgfpicture}
\end{document}

生成的 PDF 文件又长又细,而且是空的。

我希望 PDF 包含一个单独、正常大小的页面,其中包含文本“Hello world”。

答案1

首先,standalone截断所有未报告边界框的内容。如果 pgfpicture 的内容报告任何具有大小的内容,则会跟踪其边界框。您的形状没有大小。因此,所有内容都被截断,看起来奇怪的页面大小是一个独立的工件。

在文章的情况下,如果您在图片后继续输入常规文本,TeX 也会覆盖,因为从它的角度来看没有任何内容。

\documentclass{article}
\usepackage{pgf}
\usepgfmodule{shapes}
\begin{document}
    \pgfdeclareshape{myshape}{
        \savedanchor\mytext{\pgfpointorigin}
        \anchor{text}{\mytext}
    }
    \begin{pgfpicture}
        \pgfnode{myshape}{text}{Hello world}{}{\pgfusepath{stroke}}
    \end{pgfpicture}{\Large\textcolor{blue}{\textbf{Some more text}}}
\end{document}

在此处输入图片描述

再次,从手册中,关于text锚点,在您之前询问的延迟锚点之前。

[...]对于文本节点部分,我们必须设置一个文本锚点。此锚点用于在创建节点时确定文本标签的左下角(在形状的私有坐标系内)。默认情况下,文本锚点位于原点,但您可以更改此[...]

相关内容