summaryrefslogtreecommitdiff
path: root/doc/context/sources/general/manuals/publications/publications-citations.tex
diff options
context:
space:
mode:
Diffstat (limited to 'doc/context/sources/general/manuals/publications/publications-citations.tex')
-rw-r--r--doc/context/sources/general/manuals/publications/publications-citations.tex881
1 files changed, 881 insertions, 0 deletions
diff --git a/doc/context/sources/general/manuals/publications/publications-citations.tex b/doc/context/sources/general/manuals/publications/publications-citations.tex
new file mode 100644
index 000000000..aabdd5328
--- /dev/null
+++ b/doc/context/sources/general/manuals/publications/publications-citations.tex
@@ -0,0 +1,881 @@
+\environment publications-style
+
+\startcomponent publications-citations
+
+\startchapter
+ [title=Citations,
+ reference=ch:cite]
+
+The \index {style+APA}APA Style Guide as well as good practice demand that
+\emphasis {all} references appearing in the bibliography be cited at least once
+in the text (and, of course, all citations must have a corresponding
+bibliographical reference). Other publishing styles, textbooks in particular,
+might additionally include lists of general references for \quote {further
+reading} (and these lists might sometimes be split into sections according to
+subject). An author may, in contrast, choose not to interrupt a text with many
+citations, nevertheless, including a list of references. Furthermore, one might
+refer in the text to certain works that need not necessarily be accompanied by a
+full bibliography listing (for example, \Name {Darwin} {C.}'s \emph {Origin}).
+\startfootnote \textcite[entry] [default::Darwin1859] \stopfootnote Thus, a
+system providing tools to handle bibliographies needs to be flexible.
+
+A good, general reference on bibliography practice (in the English language),
+independent of any particular specification, can be found in \cite [title]
+[default::vanLeunen1992] \cite [default::vanLeunen1992]. Note that rules and
+traditions may differ slightly in other languages and cultures.
+
+The examples of bibliography listings of the previous chapter were simplified by
+the fact that the entire bibliographical dataset was rendered. In practice, the
+same dataset source(s) could be used over many documents, and the dataset might
+contain many more references than are used in any one document. That is, the data
+source might be more complete than the final rendered bibliography list or lists.
+The mechanism of citation allows you to select references from the dataset(s) to
+build the list rendering as well as to place a indicator of the reference (or
+not) in the text of the document corresponding to a list entry (a publication).
+These citation renderings can be of many forms.
+
+A citation is normally pretty short as its main purpose is to refer uniquely to a
+more detailed description. But, there are several ways to refer, which is why the
+citation subsystem is configurable and extensible. Just look at the following
+commands:
+
+\cindex{cite}
+\tindex{::}
+
+\starttabulate
+\NC \TEXcode{\cite[num][article]} \NC \cite[num] [article] \NC \NR
+\NC \TEXcode{\cite[textnum][article]} \NC \cite[textnum] [article] \NC \NR
+\NC \TEXcode{\cite[authornum][article]} \NC \cite[authornum] [article] \NC \NR
+\NC \TEXcode{\cite[authoryear][article]} \NC \cite[authoryear] [article] \NC \NR
+\NC \TEXcode{\cite[authoryears][article]} \NC \cite[authoryears][article] \NC \NR
+\NC \TEXcode{\cite[short][article]} \NC \cite[short] [article] \NC \NR
+\NC \TEXcode{\cite[tag][article]} \NC \cite[tag] [article] \NC \NR
+\NC \TEXcode{\cite[index][article]} \NC \cite[index] [article] \NC \NR
+\NC \TEXcode{\cite[category][article]} \NC \cite[category] [article] \NC \NR
+\NC \TEXcode{\cite[author][article]} \NC \cite[author] [article] \NC \NR
+\NC \TEXcode{\cite[year][article]} \NC \cite[year] [article] \NC \NR
+\NC \TEXcode{\cite[title][article]} \NC \cite[title] [article] \NC \NR
+\NC \TEXcode{\cite[keywords][article]} \NC \cite[keywords] [article] \NC \NR
+\NC \TEXcode{\cite[none][article]} \NC \cite[none] [article] \NC \NR
+\NC \TEXcode{\cite[X]} \NC \cite[X] \NC \NR
+\NC \TEXcode{\cite[]} \NC \cite[] \NC \NR
+\NC \TEXcode{\cite[template::Chen:1988:IPP]} \NC \cite[template::Chen:1988:IPP] \NC \NR
+\NC \TEXcode{\cite[entry][article]} \NC \cite[entry] [article] \NC \NR
+\stoptabulate
+
+The first argument is optional and if omitted, the default citation rendering
+(for example, \TEXcode {num} or \TEXcode {authoryear}, depending on the
+specification) will be selected.
+
+\startbuffer
+\cite[article]
+\stopbuffer
+\cindex{cite}
+
+\typeTEXbuffer \getbuffer
+
+\startaside
+The default citation alternative is defined via \cindex {setupbtx}
+
+\startTEX
+\setupbtx[alternative=num]
+\stopTEX
+
+However, this is not used as it is overridden by the specification, even the
+\TEXcode {default} specification:
+
+\startTEX
+\setupbtx[default:cite][alternative=num]
+\setupbtx [apa:cite][alternative=authoryear]
+\stopTEX
+
+These examples introduce the concept of \Index {namespace}s that is extensively
+used in the bibliography subsystem. The \TEXcode {cite} namespace will inherit
+from the root namespace; similarly, the \TEXcode {default} specification will
+inherit elements from the \TEXcode {cite} namespace, but will be distinct from
+the \TEXcode {apa} specification's \TEXcode {cite} namespace, and so forth.
+Normally, we need not to worry about this as it is handled through the loading of
+the specification.
+\stopaside
+
+\cindex {cite}
+\showsetup[cite]
+
+The \Cindex{citation} command is synonymous to \Cindex{cite}.
+
+\cindex {citation}
+\showsetup[citation]
+%\showsetup[citation:userdata]
+\showsetup[citation:alternative]
+\showsetup[citation:direct]
+
+\startaside
+Note that the \MKII\ module based on \Tindex {bibtex} allowed the use of curly
+brackets enclosing the \Index {tag} (for reasons of backward compatibility with
+traditional \LATEX\ practice). A side|-|effect made this a bit picky about spaces
+between its arguments, the first of which is optional. We have chosen to remove
+this restriction through the use of standard \CONTEXT\ syntax using square
+brackets (reserving curly brackets to usually be used to enclose text that is to
+be typeset).
+
+The system will tolerate the \Index {depreciated} syntax \cindex {cite}\TEXcode
+{\cite{tag}}, but this practice is to be strongly discouraged and cannot be mixed
+with any other options.
+\stopaside
+
+The most commonly used citation variants (or alternatives) are \TEXcode {num} and
+\TEXcode {authoryear} introduced above. The first is typically employed in
+conjunction with a numbered bibliography list, usually sorted in the citation
+order in the text; the second is typically used in conjunction with a
+bibliography list sorted by author and year of publication.
+
+Other citation variants may be quite useful, even when used in the context of the
+above standard schemes. One such example would be \Cindex {cite}\TEXcode
+{[title][tag]} that can be used to include the title of the work in the running
+text (as can be seen earlier in \in {section} [sec:styles]; another one is
+\cindex {cite}\TEXcode {\cite[year][tag]} that can be used to include the
+publication date and \cindex {cite}\TEXcode {\cite[author][tag]} can be used to
+extract the authors' names. These are examples of a general rule where \cindex
+{cite}\TEXcode {\cite[field][tag]} will return the contents of the given field
+for an entry, if the entry contains such a field.
+
+The variants \TEXcode {textnum} and \TEXcode {authoryears} are intended to be
+used in the running text when the reference becomes part of the syntax of the
+sentence: typically, they will not be set|-|off by parenthesis, for example.
+
+\startaside
+The name \TEXcode {authoryears} (with an \quote{s}) is a shorthand that was used
+in \MKII. Whereas its name is not immediately obvious at first view, in practice
+it is a quite convenient variant of \TEXcode {authoryear} that differs only in
+the style of punctuation, thus its place in a sentence structure.
+\stopaside
+
+Notice that in the example \TEXcode{\cite[template::Chen:1988:IPP]} shown above,
+the \TEXcode {tag} was prefixed with an alternate dataset name (\tindex
+{::}\TEXcode {template::}) rather than to the default \TEXcode {dataset=example}
+that was specified in the \Cindex {setupbtx} command earlier. The reason behind
+the double|-|colon syntax should be made obvious here (where the \Index {tag}
+itself uses single colons).
+
+In the last of the examples shown above, \TEXcode{\cite[entry][article]}, the
+full rendered bibliographic entry gets placed.
+
+Unless the placed rendering uses \TEXcode {method=dataset}, only publications
+that are explicitly cited will end up in the lists. You can force a citation into
+a list using \Cindex {usecitation}, for example:
+
+\cindex{usecitation}
+
+\startTEX
+\usecitation[patent]
+\stopTEX
+
+This command has two synonyms: \Cindex {nocite} and \Cindex {nocitation} so you
+can choose whatever fits you best.
+
+\cindex {nocite}
+\showsetup[nocite]
+
+\cindex {nocitation}
+\showsetup[nocitation]
+
+\cindex {usecitation}
+\showsetup[usecitation]
+
+The purpose and utility of these commands (and their synonyms) is not only to
+draw a citation from the dataset for inclusion in the bibliography, but also to
+mark the place in the text where the citation is relevant. Normally, one might
+claim that this should be done through one of the forms of the \Cindex {cite} (or
+\Cindex {citation}) command, as all references appearing in the bibliography are
+to be cited at least once in the text. However, even if one does not disagree
+with this statement, one might still wish attach the citation to the reference in
+the text of a \Index {floating object} such as a table or a figure, thus
+establishing a proper order in the numbering since the explicit citation
+rendering might occur within the table or the figure caption that might get
+placed on a much later page. Consider the following schematic illustration:
+
+\cindex{nocite}
+\cindex{cite}
+
+\startTEX
+(see \nocite [MyReference]\in {table} [tab:mytable]).
+
+\startplacetable[reference=tab:mytable]
+ \unknown\ \cite[MyReference]
+\stopplacetable
+\stopTEX
+
+The citation rendering and the bibliographic list rendering are intimately
+coupled reciprocally and cannot be dissociated. This coupling can be through the
+reference number for example, but unnumbered reference lists also contain
+interacting hyperlinks. A failure to take into account this interdependence can
+lead to fundamental misunderstandings in use.
+
+\startaside
+Both the citation and the list must be rendered. For example, a common error
+would be to omit (or comment|-|out) the list rendering during the writing stage
+of a document. Such an error will cause the citations to fail to render properly.
+
+Whereas this might seem to be an unnecessary limitation, it results from a
+specific design choice and from the possibility of placing multiple renderings
+freely, anywhere in a document. It is preferable not to render citations at all
+than to render these citations possibly incorrectly.
+\stopaside
+
+\startsection[title=Combining citations]
+
+\startbuffer
+\cite[num][article,book,booklet]
+\stopbuffer
+
+A single citation might refer to several sources, obtained through the use of a
+comma separated list of \Index{tag}s, for example: \getbuffer
+
+\cindex{cite}
+
+\typeTEXbuffer
+
+A comma separated list of three (or more) consecutive numbers will get collapsed
+or compressed into a range of numbers (if possible).
+
+\cindex {cite} The order in which the citation \Index {tag}s appear in the list
+may or may not be important, depending upon the citation variant and on the style
+specification. Consider the following examples:
+
+\startbuffer
+\cite[num] [article,book]
+\cite[textnum] [article,book]
+\cite[authoryear] [article,book]
+\cite[authoryears][article,book]
+\cite[short] [article,book]
+\cite[author] [article,book]
+\cite[year] [article,book]
+\cite[title] [article,book]
+\stopbuffer
+
+\typeTEXbuffer
+
+This gives:
+
+\cindex{cite}
+\startlines \getbuffer \stoplines
+
+Now we swap the order:
+
+\startbuffer
+\cite[num] [book,article]
+\cite[textnum] [book,article]
+\cite[authoryear] [book,article]
+\cite[authoryears][book,article]
+\cite[short] [book,article]
+\cite[author] [book,article]
+\cite[year] [book,article]
+\cite[title] [book,article]
+\stopbuffer
+
+\typeTEXbuffer
+
+and get:
+
+\startlines \getbuffer \stoplines
+
+Note that the numbered citation reference is always rendered in numerical order,
+where the numbers correspond to the order in which the entries appear in the
+bibliography list. This order depends on the \Index {sorting} of the list
+rendering (this sorting may be, in some styles, in the order in which the
+references are cited) and is controlled by the \TEXcode {[list]} \TEXcode
+{sorttype} parameter. In the \index {style+APA}APA style, presently active, the
+citations are always sorted according to author and year. Thus, \quotation
+{BookAuthorLastname} appears before \quotation {Last} in our example here,
+regardless of the order in which the references appear in the \Cindex {cite}
+command (i.e. either \TEXcode {\cite[article,book]} or \TEXcode
+{\cite[book,article]}).
+
+The user can control the state of sorting of the \cindex{cite}\TEXcode {cite}
+variants through the parameter \TEXcode {sorttype=normal}; other choices are
+\TEXcode {reverse} and \TEXcode {none}:
+
+\startTEX
+\setupbtx[aps:cite:num][sorttype=none]
+\stopTEX
+
+\startsubsubject [title=Single list item containing multiple publication entries]
+
+Some bibliography styles admit the combination of several bibliographical sources
+into a single list item having a unique reference number. The combination of
+multiple bibliographic entries into as single bibliography list item is more
+compact and this practice is often encountered in short \quote {letter}|-|type
+journal articles. (Note, however, that entries combined as such do not make any
+sense in an authoryear scheme such as \index {style+APA}APA.)
+
+One can combine \Index {tag}s using the addition operator symbol (\TEXcode {+}),
+best illustrated though an example:
+
+\startbuffer
+\METAFUN\ began as an expression of love and appreciation for \METAPOST.
+\citation [num] [tugboat::Berdnikov:TB21-2-129+Hobby:TB21-2-131]
+
+\definebtxrendering[tugboat][aps][dataset=tugboat,group=examples]
+\placebtxrendering [tugboat][criterium=section]
+\stopbuffer
+
+\cindex{citation}
+\cindex{definebtxrendering}
+\cindex{placebtxrendering}
+\tindex{::}
+
+\typeTEXbuffer
+
+\getbuffer
+
+Combined entries are joined using a separator that can be specified, as in:
+
+\startbuffer
+\setupbtxrendering[tugboat][separator={\break}]
+\stopbuffer
+
+\cindex{setupbtxrendering}
+\tindex{separator}
+
+\typeTEXbuffer
+
+or suppressed (using \tindex {separator}\TEXcode {separator=,}); By default,
+\cindex {removepunctuation}\TEXcode {separator={\removepunctuation;\space}}.
+
+Dataset entries that are combined cannot also appear apart (nor does this really
+make any logical sense). All of the following:
+
+\startbuffer
+\cite[num][tugboat::Berdnikov:TB21-2-129]
+\cite[num][tugboat::Berdnikov:TB21-2-129,Hobby:TB21-2-131]
+\cite[num][tugboat::Hobby:TB21-2-131]
+\stopbuffer
+\cindex{cite}
+\tindex{::}
+
+\typeTEXbuffer \getbuffer
+
+will point to the combined reference (as they should). However, beware that
+attempting to include any of these references in a \emphasis {different} combined
+list item is undefined, meaning unsupported.
+
+Combining list entries is another instance showing that citations and the
+rendered bibliography list interact and cannot be separated.
+
+\stopsubsubject
+
+\stopsection
+
+\startsection[title=Additional text]
+
+\startsubsubject [title=Additional text in a citation reference]
+
+Sometimes one would like to include additional text in a citation, for example
+a specific commentary or page number reference.
+
+\startbuffer
+\cite[righttext={ p.\nbsp xx}][article]
+\stopbuffer
+
+\cindex{cite}
+
+\typeTEXbuffer
+
+yielding:
+
+\getbuffer
+
+The additional text can be either before (\TEXcode {lefttext=}) or after
+(\TEXcode {righttext=}) \startfootnote The \MKII\ bib module used the keyword
+\TEXcode {extra=} in the place of \TEXcode {righttext=}. We chose not to support
+this as a synonym as the name is ambiguous. Furthermore, we seek to limit the
+number of keywords used in \CONTEXT. \stopfootnote each citation entry and are
+not to be confused with the delimiters \TEXcode {left={(},} and \TEXcode
+{right={)},} used to surround the entire citation. The difference becomes
+important when referencing multiple citations.
+
+The following examples further illustrate the syntax:
+
+\startbuffer
+\cite[lefttext={See },righttext={ p.\nbsp yy}][book]
+\stopbuffer
+
+\typeTEXbuffer \getbuffer
+
+\startbuffer
+\cite[alternative=authoryears,righttext={ p.\nbsp xx}][article]
+
+\cite[alternative=authornum,righttext={ p.\nbsp xx}][article]
+\stopbuffer
+
+\typeTEXbuffer \getbuffer
+
+\startbuffer
+\cite[alternative=num,righttext={{ p.\nbsp xx},{ p.\nbsp yy}}]
+ [article,book,booklet]
+\stopbuffer
+
+\cindex{cite}
+
+\typeTEXbuffer \getbuffer
+
+\startbuffer
+\cite[lefttext={In the article: },righttext={.}][article]
+\stopbuffer
+
+\cindex{cite}
+
+\typeTEXbuffer \getbuffer
+
+\startbuffer
+\cite[lefttext={{In the article: },{in the book: }},alternative=title]
+ [article,book]
+\stopbuffer
+
+\cindex{cite}
+
+\typeTEXbuffer \getbuffer
+
+\startbuffer
+\cite[righttext={{ p.\nbsp xx},}][article,book]
+\stopbuffer
+
+\cindex{cite} \typeTEXbuffer \getbuffer
+
+Because \CONTEXT\ does not allow mixing key|-|value pair lists with single value
+keys, the keyword \TEXcode {alternative=} must be used, if needed, as shown in
+the examples above.
+
+Note that a double curly|-|bracket (\TEXcode {{{}}}) also needs to be used when
+the text is to contain a comma.
+
+\stopsubsubject
+
+\startsubsubject [title=Additional text in a list entry]
+
+Additional text such as notes and page numbers can also get placed with the entry
+in the bibliography list. Of course, the bibliography data entry can contain a
+\TEXcode {note=} field that may or may not get rendered, but often is, according
+to the style specification.
+
+It is also possible to specify notes or page references to be rendered \TEXcode
+{before} or \TEXcode {after} a bibliography entry through the citation call.
+
+\startbuffer
+\cite
+ [alternative=num,
+ before={{Introducing MetaPost: },},
+ after={,{ See, also, the references therein, p.\nbsp 58.}}]
+ [tugboat::Hobby:TB10-4-505,Hobby:TB22-1-46]
+\blank
+\placebtxrendering [tugboat][criterium=section]
+\stopbuffer
+
+\cindex{cite}
+\cindex{placebtxrendering}
+\tindex{::}
+
+\typeTEXbuffer \getbuffer
+
+Clearly, such additional text can be added to each entry only once, so the first
+such \Cindex {cite} call wins.
+
+\stopsubsubject
+
+\stopsection
+
+\startsection[title=Placing a single citation]
+
+Sometimes, one would like to place a single citation somewhere in the text
+without necessarily adding it to a bibliography list. Take, for example,
+
+\startbuffer
+\placecitation[tugboat::Mahajan:TB31-1-88]
+\stopbuffer
+
+\getbuffer
+
+obtained by using
+
+\cindex{placecitation}
+\tindex{::}
+
+\typeTEXbuffer
+
+Note that \Cindex {placecitation}\TEXcode {[tag]} is a synonym for \Cindex
+{citation}\TEXcode {[entry][tag]} (that was seen earlier).
+
+\showsetup[placecitation]
+
+As for other citation reference, this will fail if a bibliography list rendering
+is not placed somewhere in the document so let's do that here:
+
+\startbuffer
+\placebtxrendering[tugboat][criterium=section]
+\stopbuffer
+
+\cindex{placebtxrendering}
+
+\typeTEXbuffer \getbuffer
+
+Whereas this might seem redundant above (placing the citation entry as well as
+its list rendering), this will only exceptionally be the case (as in this highly
+artificial example of this manual); Indeed, all cited work (such as \cite
+[textnum] [tugboat::Mahajan:TB31-1-88], above) will logically always be placed in
+a list of references.
+
+The placement of a single citation brings to light a subtle point: The \TEXcode
+{specification} that is used by citations is that set in the root namespace
+(through \Cindex {setupbtx}\TEXcode {[specification=apa]} or possibly through
+\Cindex {usebtxdefinitions}\TEXcode {[apa]}. This is \emphasis {not} necessarily
+the same as that of the rendering (if a different rendering specification is
+declared). Note that the named rendering used above (\TEXcode {[tugboat]}) was
+not declared a child of the rendering named \TEXcode {[aps]}, though the \TEXcode
+{specification=apa} is active. Thus, the style of the citations can be made to
+differ from the style of their bibliography list, as here, but this is not really
+a very good practice.
+
+\stopsection
+
+\startsection[title=Placing citations as footnotes]
+
+A \Cindex {placecitation} command can occur inside a footnote or other \Index
+{floating object} such as a figure or table caption. No specification or style
+that places its bibliography list renderings as footnotes has been implemented
+yet.
+
+% bibliographies as endnotes intercalated with footnotes...
+
+\stopsection
+
+\startsection[title=Searching]
+
+Finding the right \Index {tag} in a database can be a pain. In particular,
+datasets having their origin in multiple source files may contain conflicting
+\Index {tag}s, though duplicate \Index {tag}s get suffixed automatically so this
+should not be a real problem.
+
+On the other hand, asking for a \Index {wildcard} also makes no sense.
+\startfootnote Note that \cindex {nocite}\TEXcode {\nocite{*}} is a valid
+\LATEX/\BIBTEX\ practice that is used to include all entries of a \Tindex {.bib}
+file in the final bibliography. This result can be obtained in \CONTEXT\ through
+the \TEXcode {method=dataset} list rendering parameter. Alternately, one can use
+the syntax \cindex {cite}\TEXcode {\cite[match(*:*)]} which is a shorthand to
+match all values of all fields. \stopfootnote Nevertheless, we provide a powerful
+mechanism for matching a query. Keep in mind that a \Index {tag} is used as a
+quick look|-|up in a hashed table whereas a search will look through the entire
+dataset. If processing speed is critical, one should use the cite \Index {tag}
+lookup; in practice, even on a big book project employing a very large dataset,
+the search is not a penalty.
+
+Let's look in more detail at the \Cindex {cite} command. In order to distinguish
+efficiently between a normal reference and a more clever one, we use the \TEXcode
+{match()} function:
+
+\tindex{::}
+\startTEX
+match(query)
+dataset::match(query)
+dataset :: match ( query )
+\stopTEX
+
+The handler is rather tolerant for spaces (as well as capitalization) which is
+handy if you have long queries that wrap around in the source code. Of course the
+\tindex {::}\TEXcode {dataset::} prefix is optional in which case the current
+dataset is taken. Such match queries can be mixed in a multiple reference
+citation indifferently with hashed cite \Index {tag}s so the system is really
+flexible.
+
+\blank
+
+To demonstrate the use a search query, we load a small bibliographic database:
+
+\startbuffer
+\usebtxdataset[boekplan][boekplan.bib]
+\stopbuffer
+
+\cindex{usebtxdataset}
+
+\typeTEXbuffer
+
+\getbuffer
+
+We could switch to this base using:
+
+\cindex{setupbtx}
+\startTEX
+\setupbtx[dataset=boekplan]
+\stopTEX
+
+but instead we shall use a prefix as seen previously. Consider the following:
+
+\startbuffer
+everything that you might want to know about layouts
+\cite[boekplan::match(author:Egger)]
+\stopbuffer
+
+\cindex{cite}
+\tindex{::}
+
+\typeTEXbuffer
+
+We will get: \quotation {\inlinebuffer}. Of course this assumes that we also
+typeset a list of references somewhere in our document, so let's do that here:
+
+\startbuffer
+\definebtxrendering[boekplan][apa][dataset=boekplan,group=examples]
+\placebtxrendering [boekplan][criterium=chapter]
+\stopbuffer
+
+\cindex{definebtxrendering}
+\cindex{placebtxrendering}
+
+\typeTEXbuffer \getbuffer
+
+\startbuffer
+\cite[authoryears][ match(title:Lua)]\\
+\cite[authoryears][default:: match(title:Lua)]\\
+\cite[authoryears][boekplan::match(title:Lua)]
+\stopbuffer
+
+\cindex{cite}
+\tindex{::}
+
+\typeTEXbuffer \getbuffer
+
+Notice that no match is found in the \quote {current} dataset (\TEXcode {example}).
+
+A query eventually becomes a \LUA\ expression so you can use helpers to achieve
+your goal. As a convenience there are some shortcuts to access fields. The
+following examples demonstrate this:
+
+\startbuffer
+\cite
+ [authoryears]
+ [boekplan::match(author:hagen and year:2010-2011)]\\
+\cite
+ [authoryears]
+ [boekplan::match(author:{Willi Egger})]\\
+\cite
+ [authoryears]
+ [boekplan::match(author:Hans and (tonumber(field:year) or 0) > 2011)]
+\stopbuffer
+
+\cindex{cite}
+\tindex{::}
+
+\typeTEXbuffer \getbuffer
+
+You can use grouping braces when spaces are involved. Ranges (of numbers) are
+recognized. Of course, you can use other characters that the basic alphabet.
+
+\startbuffer
+\cite[authoryears][tugboat::match(author:{Bogusław Jackowski})]\\
+\stopbuffer
+
+\cindex{cite}
+\tindex{::}
+
+\typeTEXbuffer \getbuffer
+
+This demonstrates further the interest in converting classical \TEX\ accent
+sequences into proper \UTF\ characters. The citations found above \bold{must}
+correspond to some bibliography list entries, so we will place this list here:
+
+\startbuffer
+\placebtxrendering [tugboat][criterium=section]
+\stopbuffer
+
+\cindex{placebtxrendering}
+
+\typeTEXbuffer \getbuffer
+
+String lookups are partial and case insensitive.
+
+\startbuffer
+\cite [boekplan::match(author:e)]\\
+\cite [boekplan::match(author:h)]
+\stopbuffer
+
+\cindex{cite}
+\tindex{::}
+
+\typeTEXbuffer
+
+so one must take care in formulating cite queries as both lookups above will
+get all five entries: \inlinebuffer, whereas
+
+\startbuffer
+\cite [boekplan::match(author:eg)]\\
+\cite [boekplan::match(author:e*r)]
+\stopbuffer
+
+\cindex{cite}
+\tindex{::}
+
+\typeTEXbuffer
+
+finds \inlinebuffer. As the match compares the entire author string, and not
+just each author, it also finds [Hag]en & Br[aslau] as well as [Ho]ekwater[ &
+Hagen].
+
+% To Hans: It is curious that match(author:e*r) finds [Hag]en and Br[aslau].
+% To Alan: We match the whole (original) string.
+%
+% Response: Yes, but this is not what one might naively expect.
+% It would be useful to match author by author, rather than the entire author
+% string, at least that is how one might want to use it. Oh well...
+% the mechanism is predictable and the above example explicitly explains this
+% point. Would it be easy to add match(lastname:h*), for example? I suppose that
+% this would have to yield hits in ALL author-type fields (author, editor, ...).
+
+Note also that the order of the match criteria is not significant.
+
+\startaside
+The search mechanism is very powerful. However, a \bold {major \Index{pitfall}}
+or risk comes from the possibility to easily under|-|specify the match criteria.
+For example, \TEXcode {match(author:Hagen and author:Hoekwater)} will find \cite
+[title] [boekplan::match(title:Fonts)], but it will also find \cite [title]
+[boekplan::match(title:Layouts)]; Nor would adding the criterium \TEXcode {and
+year:2011} be of any help. The solution is
+
+\startbuffer
+\cite
+ [authoryear]
+ [boekplan::match(author:Hagen and author:Hoekwater and title:fonts)]
+\stopbuffer
+
+\cindex{cite}
+\tindex{::}
+
+\typeTEXbuffer \getbuffer
+
+Note that using \TEXcode {match(title:fonts)} alone would also work, that is
+until another reference work containing the word \quote {fonts} in its title gets
+added to the dataset! \startfootnote Multiple hits would have occurred in the
+examples above containing \TEXcode {title:lua} had only one dataset been used in
+the typesetting of the present manual. \stopfootnote Thus, whereas it might
+appear that the match mechanism be a more robust way of identifying dataset
+entries then short cite \Index {tag}s, incomplete search queries might return
+unwanted, excess matches.
+
+It is quite common in real bibliography databases for some author or authors to
+appear in many different references published in the same year, perhaps buried in
+a longer list of authors, so some care has to be taken to uniquely identify the
+desired work. Of course, this feature can also be a good shorthand as well to
+select several different matching works when that is the desired result.
+\stopaside
+
+% This only begins to touch on the search mechanism.
+% This section needs to be expanded.
+
+\stopsection
+
+\startsection[title={Page index, interaction, and registers},reference=sec:index]
+
+Each citation in the text not only marks the dataset entry for inclusion in the
+bibliography list but also records the page number on which the citation occurs.
+Each named list rendering can be instructed to include these pages just like an
+index.
+
+\startbuffer
+\setupbtxrendering
+ [default]
+ [pagestate=start]
+\stopbuffer
+
+\cindex{setupbtxrendering}
+
+\typeTEXbuffer
+
+The result can be observed in the \about [ch:biblio] on \at {page} [ch:biblio].
+If interaction is active (\cindex {setupinteraction}\TEXcode
+{\setupinteraction[state=start]}), then these page numbers will be \Index
+{hyperlink}s back to the citations. If \TEXcode {numbering=yes}, then the
+numbered bibliography entries will also contain \Index {hyperlink}s back to the
+first occurrence in the text where the entry is cited (which is the same as the
+first page indexed).
+
+Some styles, such as \index {style+APA}\TEXcode {apa}, will have other \Index
+{hyperlink}s. The author list including the year will be active just like the
+numbers above (an \TEXcode {authoryear} list is usually not numbered).
+Furthermore, any doi or url that is included in the entry will be a \Index
+{hyperlink} to the external resource. Finally, all titles will contain \Index
+{hyperlink}s to the local downloaded file of the cited work if this exists and
+was specified (using the data field \TEXcode {file={},}).
+
+In addition to the index of pages of citations in the text associated with each
+entry in the bibliography list, one has the possibility of adding bibliography
+items to any standard index list. This can be illustrated through the creation of
+a list of authors or names:
+
+\startbuffer
+\defineregister
+ [indexofauthors]
+
+\definebtxregister
+ [authors]
+ [field=author,
+ register=indexofauthors,
+ method=always,
+ dataset=default,
+ alternative=invertedshort]
+\stopbuffer
+
+\cindex{defineregister}
+\cindex{definebtxregister}
+
+\typeTEXbuffer
+
+placed in the preamble of the document and to be followed later, typically
+towards the end of the document, by
+
+\cindex{placeregister}
+
+\startTEX
+\startchapter[title=Index of Names]
+ \placeregister[indexofauthors][compress=yes]
+\stopchapter
+\stopTEX
+
+as can be see in the present manual on \at {page} [ch:indexofauthors].
+
+\cindex {definebtxregister}
+\showsetup[definebtxregister]
+
+\cindex {setupbtxregister}
+\showsetup[setupbtxregister]
+
+Any field can be indexed, as desired, for example \TEXcode {field=title}. One
+particularly useful field is \TEXcode {keywords={}}: a semi|-|colon separated
+list of keywords will be split into individual index entries for each cited work.
+
+The handling of fields to be interpreted as names (as in \TEXcode {author}) or as
+keywords (split into fields separated by semi|-|colons), etc. depends on the
+specification and is declared in a lua file associated with the specification
+definition file. This will be described in the next chapter.
+
+\stopsection
+
+\startsection [title=Summary and explanation of the \TEXcode {\cite} mechanism]
+
+As the list of cited references is being built in memory, each used dataset entry
+is flagged. As the list gets placed, either partially or fully, eventual conflits
+in \TEXcode {short} and in \TEXcode {authoryear} tags are resolved through an
+assignment of suffixes. These are then fed|-|back to the citation references.
+
+A dataset can have multiple renderings and multiple datasets and renderings can
+be grouped. The many citation variants can be freely used together and this may
+or may not make coherent sense. For example, an \TEXcode {authoryear} sorted list
+is assigned numbers that are available for use as numbered citation references,
+but these numbers will follow the order of the list and not the order of
+citations. Conversely, a list that is sorted in the order of citations will still
+have \TEXcode {authoryear} and \TEXcode {short} citation tags, but these will be
+of less use for the reader in this case than the \TEXcode {authornum} variant.
+With such flexibility comes complication.
+
+\stopsection
+
+\stopchapter
+
+\stopcomponent