# [NTG-context] Cross references to column numbers

Hans Hagen j.hagen at xs4all.nl
Tue Sep 10 13:16:13 CEST 2019

On 9/9/2019 10:05 PM, Henri Menke wrote:
> Bump
>
> On 9/3/19 4:46 AM, Oliver von Criegern wrote:
>> Dear list members,
>>
>> is there any way to get a cross reference to a column in a two column layout?

yes and no:

no : there is not something buil tin
yes: one can write some hack in a few lines

but instead of posting such a hack (which then will a live of its own)

\pagereference[column:#1]

\doifelsereferencefound{column:#1}{\number\referencecolumnnumber}{}

in the next beta,

Hans

>> At least, I would need to get some value that tells me whether the target is in the left or in the right column. How to achieve this?
>>
>> This is the more simplified version of the my previous question cited below.
>>
>> Best regards,
>> Oliver.
>>
>>
>> Am 12.08.19 um 15:26 schrieb Oliver von Criegern:
>>> Dear list members,
>>>
>>> how can I create cross references to column numbers?
>>>
>>> I have a two column layout with column numbers in the header instead of page numbers (actually, these column numbers are calculated from the page numbers). Now I want to create a cross reference that returns the column number of the target. How can I achieve this?
>>>
>>> Of course, I can get the page number with \pagereference (for the target) and \at (for the reference), but for calculating the column number (according to what I did in the header), I would also need to know whether the target is in the left or in the right column, and I can't see how I can get this information.
>>>
>>> For an example, see the question posted by me at stackexchange:
>>> https://tex.stackexchange.com/questions/502944/context-cross-references-to-column-numbers
>>>
>>> Besides, I am wondering, regarding the generally very regular and consistent naming of commands in ConTeXt, why this is not so in the case of references. For example, to refer to a page, I need \pagereference (for the target) and \at (for the reference); to refer to a line, I need \someline (for the target) and \inline (for the reference), but only if I want it to automatically add the word "line" or something else before the number, otherwise I have to use \inlinerange. It took me some time to find that out. Wouldn't it be easier to have just one command for the target and another one for the reference, and everything else, as counters and headers to be returned, text to be added etc. to be configured by options?
Because all these \in \at \about ... give back different things (a
title, a number, a range, a ...) and packaging all that in one macro
doens't make it cleaner so soon users will then wrap complex calls in a
macro of their own (which then can clash with some existing name).

Also, the ref mechanism evolved over decades and we're not going to drop
compatibility.

Hans

-----------------------------------------------------------------