1

I want to dump positions of objects to an external file with zref package. I can dump zposx and zposy, but not be able to dump zrefpage.

MWE:

\documentclass{article}

\usepackage[user,savepos]{zref}

\begin{document}

ABC \zlabel{page}\zsavepos{pos}
page: \zpageref{page}

\edef\temp{page \zpageref{page} position \zposx{pos} \zposy{pos}}

\newwrite\writer
\openout\writer=position.pos\relax
\write\writer{\temp}
\closeout\writer

\end{document}

Dumped position.pos file after 2 compilations:

page \zpageref {page} position 11430063 42091806

\zpageref is still there.

How to replace \zpageref{page} by its page number?

SongHerz
  • 147

1 Answers1

1

Inspired by https://tex.stackexchange.com/a/209195/143504, I realize that probably \zref cannot be used in \edef also.

By reading zref document, I figured out how to get the number. Use zref@extractdefault to get the page number, but not zpageref.

MWE:

\documentclass{article}

\usepackage[user,savepos]{zref}


\begin{document}

ABC \zlabel{page-label}\zsavepos{pos}

\makeatletter
\edef\temp{page \zref@extractdefault{page-label}{page}{0} position \zposx{pos} \zposy{pos}}
\makeatother

\newwrite\writer
\openout\writer=position.pos\relax
\write\writer{\temp}
\closeout\writer

\end{document}

And the position.pos:

page 1 position 11430063 42091806
SongHerz
  • 147