(This module is currently not in die distribution. Until it is, you can download it from here).
Cross references in a (academic) text are either internal (linking to an other point inside the same document) or external (linking to a entity of the bibliography that points to a different document).
Here are some concrete examples of cross references:
| "Classic" style |
"New" style
(↑ = external link - ↗ = internal link) |
|---|---|
| [XYZ] | (↑XYZ) and if directly addressed ↑XYZ |
| [XYZ, p. 23] | (↑XYZ, p. 23) ↑XYZ, p. 23, |
| [XYZ, p. 22] and [ABC, p. 22-45] | (↑XYZ, p. 22, and ↑ABC, p. 22-45) |
| Abbildung 2.2 | ↗Abbildung 2.2 |
| Abbildung 2.2 auf Seite 23 | ↗Abbildung 2.2 auf Seite 23 |
| (Absatz 2.4.9/12 auf Seite 23 bis 2.4.2/10 auf Seite 25) | (↗Absatz 2.4.9/12 auf Seite 23 bis ↗Absatz 2.4.2/10 auf Seite 25) |
| (siehe Abs. 3/21) | (siehe ↗Absatz 3/21) |
| (siehe Absätze 3.1/35 und 3.1/38) | (siehe Absätze ↗3.1/35 und ↗3.1/38) |
This cross references have following structure in common:
| left | refprefix | label | ref | detail | refsuffix | right |
|---|---|---|---|---|---|---|
| ( (siehe Absätze und bis |
↑ ↗ [ |
Abbildung Absatz Abs. |
XYZ 2.2 2.2 auf Seite 23 2.4.9/12 auf Seite 23 2.4.2/10 auf Seite 25 3/21 |
, p. 23 | ] | ) |
Referencing
For cross reference the method \crossref is created. It has follow syntax:
\crossref[#2] \crossref[#1][#2] #1 type = *internal external none left = ..text.. right = ..text.. label = ..text.. detail = ..text.. #2 <reference>
Here a simple usage example:
\setupcolors[state=start] \definecolor[red][r=1] \definecolor[green][g=1] \definecolor[blue][b=1] \setupinteraction[state=start,style=normal,color=red,contrastcolor=red] % color and contrastcolor must be the the final color of the refref area in crossref \usemodule[crossref][refColor=green,reffixColor=blue,refrefColor=red] \starttext \textreference[ref1]{1.1/3} Should be: 1.1/3 and is: \crossref[ref1] Should be: (Abs. 1.1/3) and is: \crossref[type=internal,left={(},label=Abs.,right={)}][ref1] Should be: [Zen12, p 23] and is: \crossref[type=external,detail={p. 23}][ref2] Should be: (nach [Zen12, S. 32-33] und weitere) and is: \crossref[type=external, left={(nach }, right={ und weitere)},detail={S. 32-33}][ref2] \textreference[ref2]{Zen12} Biblio blabla fasel \stoptext
Settings
Often references (or links) are printed in a different color than the normal text. In pararef the colors can be set via three paramters:
-
refColorfor the entire reference text, -
reffixColorfor the color of the prefix and suffix if different fromrefColor -
refrefColorfor the detail, ref itself and ref details if different fromrefColor
They are defined as parameters of the module:
\usemodule[crossref][refColor=...,reffixColor=...,refrefColor=...] ...
The brackets and text part for \crossref can also be adjusted or extended with other languages:
\setupcrossreftext[internalPrefix={}] \setupcrossreftext[internalSuffix={}] \setupcrossreftext[externalPrefix={[}] \setupcrossreftext[externalSuffix={]}] \setupcrossreftext[refDetailDivider={\textcomma\space}] \setupcrossreftext[cz][atpageLeft={ na straně }] \setupcrossreftext[cz][atpageRight={ }] \setupcrossreftext[de][atpageLeft={ auf Seite }] \setupcrossreftext[de][atpageRight={}] \setupcrossreftext[en][atpageLeft={ on page }] \setupcrossreftext[en][atpageRight={}] \setupcrossreftext[ru][atpageLeft={ на странице }] \setupcrossreftext[ru][atpageRight={}] \setupcrossreftext[uk][atpageLeft={ на сторінці }] \setupcrossreftext[uk][atpageRight={}]
If you want to change the "classic" style of referencing to the "new" style you only need to add:
\setupcrossreftext[internalPrefix={↗}] \setupcrossreftext[internalSuffix={}] \setupcrossreftext[externalPrefix={↑}] \setupcrossreftext[externalSuffix={}]