Does it exist a command like pageref with which I can indicate the column too? (I am writing a two-column text and I would like to give an indication more precise than the simple page).
1 Answer
Detecting/tracking the (current) column is not easy. However, a somewhat simplistic yet effective way of identifying the column can be done by labelling the x-coordinate on the page. If that x-coordinate is less than half the page width, you should be within the left (first) column, otherwise you're in the right (second) column.
Here is that implementation using the savepos
module from zref
:
\documentclass[twocolumn]{article}
\usepackage{xcolor}
\usepackage[savepos]{zref}
\newcommand{\columnlabel}[1]{\label{#1}\zsaveposx{#1}}
\newcommand{\columnref}[1]{%
\ifdim\zposx{#1}sp<.5\pdfpagewidth
left% column 1
\else
right% column 2
\fi
}
\usepackage{lipsum}
\begin{document}
\sloppy% Just for this example
\lipsum[1-5]
\textcolor{red}{\columnlabel{important}Some important text}%
\lipsum[6-10]
See \textcolor{red}{page~\pageref{important} (\columnref{important} column)}.
\end{document}
You could update \columnref
to output something of the format <page>-<column>
in the following way:
% Output <page>-<column> as a reference
\newcommand{\columnref}[1]{%
\pageref{#1}-%
\ifdim\zposx{#1}sp<.5\pdfpagewidth
1% column 1
\else
2% column 2
\fi
}
-
Thanks. Just a minor esthetic thing. I am sorry but I do not undersand how to properly write a code section in a comment. I want to add an hyperlink with something like this
code
\lipsum[1-5] \phantomsection\label{mylabel}{Important text} \lipsum[6-10] Check out in the document at Pag.~\columnref{mylabel}.code
The red box of the link is only around the page number. Is it poss ible to make it larger so as to include the column number too?– GippoFeb 11, 2021 at 23:54 -
1
1
or2
as the output?