From: Oliver von Criegern <oliver.v.criegern@badw-muenchen.de>
To: ntg-context@ntg.nl, Hans Hagen <j.hagen@xs4all.nl>
Subject: Re: Cross references to column numbers
Date: Fri, 15 Nov 2019 15:44:14 +0100 [thread overview]
Message-ID: <20cb51f4-e760-7628-bd08-ae46a4e5756e@badw-muenchen.de> (raw)
In-Reply-To: <c5cfd3a1-d62c-0f5f-487f-54dbb5ba3955@badw-muenchen.de>
Could someone please take a look at this?
Am 12.11.19 um 13:02 schrieb Oliver von Criegern:
> Am 10.09.19 um 13:16 schrieb Hans Hagen:
>> 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) i'll add a feature:
>>
>> \pagereference[column:#1]
>>
>> \doifelsereferencefound{column:#1}{\number\referencecolumnnumber}{}
>>
>> in the next beta,
>>
>> Hans
>
> Thanks for implementing this, but I am afraid it does not work
> properly, at least not if there are several targets following one
> after another.
>
> Consider this example:
>
>
> \setupcolumns[
> n=2,
> ]
> \setuplinenumbering[
> step=5,
> method=page,
> ]
>
> \def\Lab#1{%
> \pagereference[#1]%
> \pagereference[column:#1]%
> \someline[#1]%
> }
>
> \def\Ref#1{
> page \at[#1],
> column
> \doifelsereferencefound{column:#1}{\number\referencecolumnnumber}{},
> line \inlinerange[#1].
> }
>
> \starttext
> \startcolumns
> \startlinenumbering
>
> REFERENCES:\par
> A: \Ref{A}\par
> B: \Ref{B}\par
> C: \Ref{C}\par
> D: \Ref{D}\par
> E: \Ref{E}\par
> F: \Ref{F}\par
> \input lorem
> TARGETS:
> \Lab{A} A,
> \Lab{B} B,
> \Lab{C} C.
> \input lorem
> TARGETS:
> \Lab{D} D,
> \Lab{E} E,
> \Lab{F} F.
> \input lorem
>
> \stoplinenumbering
> \stopcolumns
> \stoptext
>
> As you will see, targets A, B and C are all in the first column, and
> targets D, E and F are all in the second column. But the references
> read as follows:
>
> A: page 1, column 1, line 29.
> B: page 1, column 1, line 29.
> C: page 1, column 2, line 29.
> D: page 1, column 2, line 14.
> E: page 1, column 3, line 14.
> F: page 1, column 3, line 14.
>
>
> Best regards,
> Oliver
>
>
>>
>>>> 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
>>
>> -----------------------------------------------------------------
>> Hans Hagen | PRAGMA ADE
>> Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
>> tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
>> -----------------------------------------------------------------
>> ___________________________________________________________________________________
>>
>> If your question is of interest to others as well, please add an
>> entry to the Wiki!
>>
>> maillist : ntg-context@ntg.nl /
>> http://www.ntg.nl/mailman/listinfo/ntg-context
>> webpage : http://www.pragma-ade.nl / http://context.aanhet.net
>> archive : https://bitbucket.org/phg/context-mirror/commits/
>> wiki : http://contextgarden.net
>> ___________________________________________________________________________________
>>
>
--
Dr. Oliver von Criegern
Referat für IT und Digital Humanities
Bayerische Akademie der Wissenschaften
Alfons-Goppel-Str. 11
80539 München
Tel.: 089-23031-1310
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://context.aanhet.net
archive : https://bitbucket.org/phg/context-mirror/commits/
wiki : http://contextgarden.net
___________________________________________________________________________________
next prev parent reply other threads:[~2019-11-15 14:44 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-08-12 13:26 Oliver von Criegern
2019-09-02 16:46 ` Oliver von Criegern
2019-09-09 20:05 ` Henri Menke
2019-09-10 11:16 ` Hans Hagen
2019-09-10 16:52 ` Oliver von Criegern
2019-09-10 20:05 ` Henning Hraban Ramm
2019-11-12 12:02 ` Oliver von Criegern
2019-11-15 14:44 ` Oliver von Criegern [this message]
2019-11-15 15:31 ` Taco Hoekwater
2019-11-15 15:36 ` Taco Hoekwater
2019-11-15 19:22 ` Pablo Rodriguez
2019-11-16 8:59 ` Hans Hagen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20cb51f4-e760-7628-bd08-ae46a4e5756e@badw-muenchen.de \
--to=oliver.v.criegern@badw-muenchen.de \
--cc=j.hagen@xs4all.nl \
--cc=ntg-context@ntg.nl \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).