是否可以提取 LaTeX 放置项目的位置坐标?我希望能够知道 LaTeX 在哪个页面以及在该页面的哪个位置放置了一个图形。
答案1
这zref
包裹提供\zsavepos{<label>}
使用savepos
模块
\usepackage[savepos]{zref}% http://ctan.org/pkg/zref
这允许放置常规\label
样式的标签,这次使用并使用和\zsavepos{<label>}
检索(x,y)坐标。这是一个最小的例子:\zposx{<label>}
\zposy{<label>}
\documentclass{article}
\usepackage[savepos]{zref}% http://ctan.org/pkg/zref
\begin{document}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce rhoncus,
mi in interdum dignissim, urna purus rutrum est, vel sodales elit mi ornare
tortor. Praesent malesuada pulvinar nulla. Integer mattis tempus mi vel
accumsan. Maecenas commodo, ligula dictum interdum sollicitudin, elit justo
eleifend velit, at molestie ligula turpis vel risus. Sed consequat ornare
pellentesque. Curabitur congue sollicitudin semper. \zsavepos{mark1}Nunc ac mi semper nibh
placerat euismod sed sit amet nibh. Nulla neque magna, vestibulum at molestie
ac, condimentum et tortor. Nunc et turpis congue augue dapibus pulvinar.
Phasellus sagittis ipsum eget mauris congue ac condimentum tellus porttitor.
Pellentesque habitant morbi tristique senectus et netus et malesuada fames
ac turpis egestas. \zsavepos{mark2}Sed neque dui, laoreet porttitor lacinia vehicula,
condimentum ut dui. Phasellus viverra sollicitudin est a consectetur.
Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere
cubilia Curae;
\verb|mark1:| (x,y)=(\zposx{mark1}sp,\zposy{mark1}sp)=(\the\dimexpr\zposx{mark1}sp\relax,\the\dimexpr\zposy{mark1}sp\relax) \par
\verb|mark2:| (x,y)=(\zposx{mark2}sp,\zposy{mark2}sp)=(\the\dimexpr\zposx{mark2}sp\relax,\the\dimexpr\zposy{mark2}sp\relax)
\end{document}
结果以s
校准p
点(或sp
)为单位给出,水平方向从页面边框左侧测量,垂直方向从页面边框底部测量。
\label
LaTeX默认\ref
系统已经支持识别某些标签所在的页面
% ... <stuff>
\label{mylab}
% ... <stuff>
\pageref{mylab}
zref
也支持此功能,但由于 LaTeX 默认这样做,因此不需要做其他操作。
由于这些方法使用了LaTeX 的\label
-\ref
系统,因此需要至少两次编译才能准确。