On 9/22/2013 11:02 PM, Marco Patzer wrote:
Hi,
a couple of times the question came up¹²³ how to create more intelligent referencing. There are already mechanisms in the core, namely \somewhere and \atpage but they both have drawbacks. \somewhere happily prints its text if the figure is placed on the same double page. In fact, no text at all should be printed if the figure is visible. Furthermore it's a little verbose to use unless hidden in a custom macro. \atpage on the other hand doesn't hesitate to print “see figure 1.2 at page 42” while you're on page 42.
Just wondering .. did you look at \atpage? there is some info available about reference locations
I'm aware that automatic generation of reference text is problematic since the text depends on the placement of floats which in turn depends on the text which might result in oscillation. I'm not sure how likely this is to occur in practice.
I don't know if there's interest in integrating such functionality into the core. I attached some code, a new macro \smartref, which takes the same arguments as \in.
\smartref{figure}[fig:somefigure]
- it prints the reference if it is on the same page (e.g. Figure 1.2)
- it prints the reference and a customizable text if the reference is on the next/previous page (e.g. Figure 1.2 on the previous page)
- it prints the reference and the page if the reference is further away than one page (e.g. Figure 1.2 on page 42)
- it adapts to single-sided and double-sided layouts
Marco
¹ http://thread.gmane.org/gmane.comp.tex.context/65295 ² http://thread.gmane.org/gmane.comp.tex.context/59455 ³ http://thread.gmane.org/gmane.comp.tex.context/76001
___________________________________________________________________________________ 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://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________
-- ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------