考虑以下 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
锚点,在您之前询问的延迟锚点之前。
[...]对于文本节点部分,我们必须设置一个文本锚点。此锚点用于在创建节点时确定文本标签的左下角(在形状的私有坐标系内)。默认情况下,文本锚点位于原点,但您可以更改此[...]