图形的位置和坐标信息

图形的位置和坐标信息

是否可以提取 LaTeX 放置项目的位置坐标?我希望能够知道 LaTeX 在哪个页面以及在该页面的哪个位置放置了一个图形。

答案1

zref包裹提供\zsavepos{<label>}使用savepos模块

\usepackage[savepos]{zref}% http://ctan.org/pkg/zref

这允许放置常规\label样式的标签,这次使用并使用和\zsavepos{<label>}检索(x,y)坐标。这是一个最小的例子:\zposx{<label>}\zposy{<label>}

标签的 (x,y) 坐标

\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)为单位给出,水平方向从页面边框左侧测量,垂直方向从页面边框底部测量。


\labelLaTeX默认\ref系统已经支持识别某些标签所在的页面

% ... <stuff>
\label{mylab}
% ... <stuff>
\pageref{mylab}

zref也支持此功能,但由于 LaTeX 默认这样做,因此不需要做其他操作。


由于这些方法使用了LaTeX 的\label-\ref系统,因此需要至少两次编译才能准确。

相关内容