summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/context/bib
diff options
context:
space:
mode:
authorTaco Hoekwater <taco@elvenkind.com>2009-08-23 11:11:32 +0000
committerTaco Hoekwater <taco@elvenkind.com>2009-08-23 11:11:32 +0000
commit8fc3039c82d48605b5ca8b2eda3f4fdd755681e1 (patch)
tree3cd9bbdd599bc4d1ac0409e167fee2136e4c0ec9 /Master/texmf-dist/tex/context/bib
parent850fc99b7cd3ae7a20065531fe866ff7bae642ec (diff)
this is context 2009.08.19 17:10
git-svn-id: svn://tug.org/texlive/trunk@14827 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/context/bib')
-rw-r--r--Master/texmf-dist/tex/context/bib/bibl-ams.tex65
-rw-r--r--Master/texmf-dist/tex/context/bib/bibl-apa-fr.tex2
-rw-r--r--Master/texmf-dist/tex/context/bib/bibl-apa.tex188
-rw-r--r--Master/texmf-dist/tex/context/bib/t-bib.mkii5
-rw-r--r--Master/texmf-dist/tex/context/bib/t-bib.mkiv62
-rw-r--r--Master/texmf-dist/tex/context/bib/t-bib.tex363
6 files changed, 445 insertions, 240 deletions
diff --git a/Master/texmf-dist/tex/context/bib/bibl-ams.tex b/Master/texmf-dist/tex/context/bib/bibl-ams.tex
index ddfe927c39e..37bcf253fa1 100644
--- a/Master/texmf-dist/tex/context/bib/bibl-ams.tex
+++ b/Master/texmf-dist/tex/context/bib/bibl-ams.tex
@@ -1,6 +1,6 @@
%D \module
%D [ file=bibl-ams,
-%D version=2005.11.18
+%D version=2009.07.22
%D title=AMS bibliography style,
%D subtitle=Publications,
%D author={Taco Hoekwater, Giuseppe Bilotta},
@@ -282,30 +282,30 @@
}
\setuppublicationlayout[incollection]{%
- \insertartauthors{}{}{\insertthekey{}{, }{}}%
-% \insertarttitle{\bgroup }{\egroup. }{}%
- \inserttitle
- {, in %
- \bgroup\it}%
- {\egroup
- \inserteditors{, edited by }%
- {}%
- {}
- \insertseries
- {\insertvolume{, number }{~in }{ }}%
- {}%
- {}%
- \insertchap{\unskip, }{ }{ }%
- \insertpubyear{(%
- \insertpublisher{}%{, }%{}%
- }{)\insertEdition{, }{ ed. }{}}{}%
- \insertpages{\unskip, p.~}{. }{\unskip. }%
- }%
- {In \insertcrossref{}{}{}%
- \insertchap{\unskip, }{ }{ }%
- \insertpages{\unskip, p.~}{. }{\unskip. }%
- }%
- \insertNote{ }{.}{}%
+ \insertartauthors{}{}{\insertthekey{}{, }{}}%
+ \insertarttitle{, \bgroup }{\egroup}{}%
+ \inserttitle
+ {, in %
+ \bgroup\it}%
+ {\egroup
+ \inserteditors{, edited by }%
+ {}%
+ {}
+ \insertseries
+ {\insertvolume{, number }{~in }{ }}%
+ {}%
+ {}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpubyear{(%
+ \insertpublisher{}%{, }%{}%
+ }{)\insertEdition{, }{ ed. }{}}{}%
+ \insertpages{\unskip, p.~}{. }{\unskip. }%
+ }%
+ {In \insertcrossref{}{}{}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages{\unskip, p.~}{. }{\unskip. }%
+ }%
+ \insertNote{ }{.}{}%
}
\setuppublicationlayout[inproceedings]{%
@@ -427,12 +427,11 @@
}
\setuppublicationlayout[unpublished]{%
- \insertauthors{}{}{}%
- \inserttitle{\bgroup \it }{\egroup \insertseries{ (}{)}{}}{}%
- \insertbibtype{ (}{)}{}%
- \insertpubyear{ (unpublished,}{)}{ (unpublished)}%
- \insertpages{\unskip, }{ }{}%
- \insertNote{\unskip. }{.}{\unskip.}%
-}
-
+ \insertauthors{}{, }{}%
+ \inserttitle{\bgroup \it }{\egroup \insertseries{ (}{)}{}}{}%
+ \insertbibtype{ (}{)}{}%
+ \insertpubyear{ (unpublished, }{)}{ (unpublished)}%
+ \insertpages{\unskip, }{ }{}%
+ \insertNote{\unskip. }{.}{\unskip.}%
+}
\protect
diff --git a/Master/texmf-dist/tex/context/bib/bibl-apa-fr.tex b/Master/texmf-dist/tex/context/bib/bibl-apa-fr.tex
index d2a1efb8ae7..654a3644190 100644
--- a/Master/texmf-dist/tex/context/bib/bibl-apa-fr.tex
+++ b/Master/texmf-dist/tex/context/bib/bibl-apa-fr.tex
@@ -108,7 +108,7 @@
\def\insertchap#1#2#3%
{\insertchapter
- {#1\insertbibtype{}{\ }{chapter\ }}{#2}%
+ {#1\insertbibtype{}{\ }{chapitre\ }}{#2}%
{#3}}
\def\insertpublisher#1#2#3%
diff --git a/Master/texmf-dist/tex/context/bib/bibl-apa.tex b/Master/texmf-dist/tex/context/bib/bibl-apa.tex
index 8e2e9e84272..20bbccb95c8 100644
--- a/Master/texmf-dist/tex/context/bib/bibl-apa.tex
+++ b/Master/texmf-dist/tex/context/bib/bibl-apa.tex
@@ -1,6 +1,6 @@
%D \module
%D [ file=bibl-apa,
-%D version=2004.7.16,
+%D version=2008.06.09,
%D title=APA bibliography style,
%D subtitle=Publications,
%D author={Taco Hoekwater},
@@ -112,18 +112,40 @@
{#1\insertbibtype{}{\ }{chapter\ }}{#2}%
{#3}}
+% #1city, country: pubname#2
+% #1country: pubname#2
+% #1pubname#2
+% #1city, country#2
+% #3
+
\def\insertpublisher#1#2#3%
{\insertpubname
- {#1}{\insertcity
- {, }
+ {\insertcity
+ {#1}
+ {\insertcountry{, }{}{}: }%
+ {#1\insertcountry{}{: }{}}}%
+ {#2}%
+ {\insertcity
+ {#1}
{\insertcountry{, }{}{#2}}%
- {\insertcountry{, }{}{#2}}}%
+ {\insertcountry{#1}{#2}{#3}}}%
+ }
+
+\def\insertorg#1#2#3%
+ {\insertorganization
+ {\insertcity
+ {#1}
+ {\insertcountry{, }{}{#2}: }%
+ {\insertcountry{}{: }{#2}}}%
+ {}%
{\insertcity
- {}{\insertcountry{, }{}{#2}}%
- {\insertcountry{#1}{#2}{#3}}}%
+ {#1}
+ {\insertcountry{, }{}{#2}}%
+ {\insertcountry{}{#2}{#3}}}%
}
+
\setuppublicationlayout[article]{%
\insertartauthors{}{ }{\insertthekey{}{ }{}}%
\insertpubyear{(}{). }{\unskip.}%
@@ -131,9 +153,9 @@
\insertjournal{\bgroup \it}{\egroup}
{\insertcrossref{In }{}{}}%
\insertvolume
- {, }
- {\insertissue{(}{)}{}\insertpages{:}{.}{.}}
- {\insertpages{, pages }{.}{.}}%
+ {\bgroup \it, }
+ {\egroup\insertissue{\/(}{)}{}\insertpages{, }{.}{.}}
+ {\insertpages{, pp. }{.}{.}}%
\insertnote{ }{.}{}%
\insertcomment{}{.}{}%
}
@@ -156,7 +178,7 @@
{ in~\bgroup}%
{\egroup. }%
{\insertcrossref{ in~}{}{. }}}%
- {\insertseries{ }{.}{} }%
+ {\insertseries{ }{.}{.}}%
\else
\insertcrossref
{\insertchap{, }{}{}%
@@ -176,11 +198,9 @@
}%
\fi}%
{}%
- \insertpublisher
- { }%
- {\insertedition{, }{ edition.}{.}}%
- {\insertedition{, }{ edition.}{}}%
- \insertpages{ }{p. }{}%
+ \insertedition{ }{ edition}{}%
+ \insertpublisher{ }{.}{.}%
+ \insertpages{ }{p. }{ }%
\insertnote{}{.}{}%
}
@@ -191,40 +211,38 @@
}{\insertthekey{}{. }{}}}%
\insertpubyear{(}{). }{\unskip.}%
\inserttitle
- {\bgroup\it }%
- {\/\egroup
- \ifeditedbook
- \global\editedbookfalse
- \insertvolume
- { number~}%
- {\insertseries
- { in~\bgroup}%
- {\egroup. }%
- {\insertcrossref{ in~}{}{. }}}%
- {\insertseries{ }{.}{} }%
- \else
- \insertcrossref
- {\insertchap{, }{}{}%
- \insertpages{, pages }{. }{. }%
- \insertvolume{Volume~}{ of~}{}%
- }%
- {}%
- {\insertvolume
- {, volume~}%
- {\insertseries
- { of~\bgroup\it}%
- {\egroup}
- {}}
- {}%
- \insertchap{, }{}{}%
- \insertpages{, pages }{. }{. }%
- }%
+ {\bgroup\it }%
+ {\/\egroup
+ \ifeditedbook
+ \global\editedbookfalse
+ \insertvolume
+ { number~}%
+ {\insertseries
+ { in~\bgroup}%
+ {\egroup. }%
+ {\insertcrossref{ in~}{}{.}}}%
+ {\insertseries{ }{.}{}}%
+ \else
+ \insertcrossref
+ {\insertchap{, }{}{}%
+ \insertpages{, pages }{. }{. }%
+ \insertvolume{Volume~}{ of~}{}%
+ }%
+ {}%
+ {\insertvolume
+ {, volume~}%
+ {\insertseries
+ { of~\bgroup\it}%
+ {\egroup}
+ {}}
+ {}%
+ \insertchap{, }{}{}%
+ \insertpages{, pages }{.}{}%
+ }%
\fi}%
- { }%
- \insertpublisher
- {}%
- {\insertedition{, }{ edition. }{. }}%
- {\insertedition{, }{ edition. }{}}%
+ { }%
+ \insertedition{ }{ edition.}{}%
+ \insertpublisher{ }{.}{.}%
\insertnote{ }{.}{}%
}
@@ -232,10 +250,8 @@
\insertauthors{}{ }{\insertthekey{}{. }{}}%
\insertpubyear{(}{). }{}%
\inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
- \insertpublisher
- {}%
- {\insertedition{, }{ edition. }{. }}%
- {\insertedition{, }{ edition. }{}}%
+ \insertedition{ }{ edition.}{}%
+ \insertpublisher{ }{.}{.}%
\insertpages{}{p. }{}%
\insertnote{ }{.}{}%
}
@@ -244,12 +260,8 @@
\insertauthors{}{ }{\insertthekey{}{. }{}}%
\insertpubyear{(}{). }{}%
\inserttitle{\bgroup \it }{\/\egroup \insertseries{ (}{)}{}. }{}%
- \insertorganization
- {}%
- {\insertcity{, }%
- {\insertedition{, }{ edition. }{. }}%
- {\insertedition{, }{ edition. }{. }}}%
- {\insertedition{, }{ edition. }{}}%
+ \insertedition{ }{ edition.}{}%
+ \insertorg{ }{.}{.}%
\insertpages{}{p. }{}%
\insertnote{ }{.}{}%
}
@@ -270,10 +282,8 @@
{}%
\insertchap{\unskip, }{ }{ }%
\insertpages{\unskip, pages~}{. }{\unskip. }%
- \insertpublisher
- {}%
- {\insertedition{, }{ edition. }{. }}%
- {\insertedition{, }{ edition. }{}}%
+ \insertedition{ }{ edition}{}%
+ \insertpublisher{ }{.}{.}%
}%
{In \insertcrossref{}{}{}%
\insertchap{\unskip, }{ }{ }%
@@ -297,14 +307,8 @@
{}%
{}%
\insertchap{\unskip, }{ }{ }%
- \insertpages
- {\unskip, pages~}
- {\insertcity{, }{. }{. }}
- {\unskip. }%
- \insertorganization
- {}%
- {\insertpubname{, }{. }{. }}%
- {\insertpubname{}{. }{}}% was {, }{. }{}
+ \insertpages{, pages~}{}{}%
+ \insertorg{. }{.}{.}%
}%
{In \insertcrossref{}{}{}%
\insertchap{\unskip, }{ }{ }%
@@ -322,19 +326,15 @@
\inserttitle
{\bgroup\it}%
{\egroup
- \insertseries
- {\insertvolume{, number }{~in }{ }}%
- {}%
- {}%
- \insertchap{\unskip, }{ }{ }%
- \insertpages{\unskip, pages~}{\insertcity{, }{. }{. }}
- {\unskip\insertcity{, }{. }{. }}%
- \insertorganization
- {}%
- {\insertpubname{, }{. }{. }}%
- {\insertpubname{, }{. }{}}%
- }%
+ \insertseries
+ {\insertvolume{, number }{~in }{ }}%
+ {}%
{}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages{, pages~}{}{}%
+ \insertorg{. }{.}{.}%
+ }%
+ {}%
\insertnote{ }{.}{}%
}
@@ -343,8 +343,8 @@
\insertpubyear{(}{). }{}%
\inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
\insertbibtype{}{, }{Master's thesis, }%
- \insertpublisher{}{. }{}%
- \insertpages{}{p. }{}%
+ \insertpublisher{ }{.}{.}%
+ \insertpages{ }{p. }{}%
\insertnote{ }{.}{}%
}
@@ -352,9 +352,9 @@
\insertauthors{}{ }{}%
\insertpubyear{(}{). }{}%
\inserttitle{\bgroup\it }{\egroup \insertseries{ (}{)}{}. }{}%
- \insertbibtype{}{, }{PhD thesis, }%
- \insertpublisher{}{. }{}%
- \insertpages{}{p. }{}%
+ \insertbibtype{}{, }{PhD thesis,}%
+ \insertpublisher{ }{.}{.}%
+ \insertpages{ }{ p. }{}%
\insertnote{ }{.}{}%
}
@@ -362,8 +362,8 @@
\insertauthors{}{ }{\insertthekey{}{. }{}}%
\insertpubyear{(}{). }{}%
\inserttitle{\bgroup }{\egroup \insertseries{ (}{)}. }{}%
- \insertpublisher{}{. }{}%
- \insertpages{}{p. }{}%
+ \insertpublisher{ }{.}{.}%
+ \insertpages{ }{p. }{}%
\insertnote{ }{.}{}%
}
@@ -371,9 +371,9 @@
\insertauthors{}{ }{}%
\insertpubyear{(}{). }{}%
\inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
- \insertbibtype{}{\insertvolume{ }{, }{, }}{Technical Report, }%
- \insertpublisher{}{. }{}%
- \insertpages{}{p. }{}%
+ \insertbibtype{}{\insertvolume{ }{, }{, }}{Technical Report}%
+ \insertpublisher{ }{.}{.}%
+ \insertpages{ }{p. }{}%
\insertnote{ }{.}{}%
}
@@ -381,8 +381,8 @@
\insertauthors{}{ }{}%
\insertpubyear{(}{). }{}%
\inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
- \insertpublisher{}{. }{}%
- \insertpages{}{p. }{}%
+% \insertpublisher{ }{.}{.}%
+ \insertpages{ }{p. }{}%
\insertbibtype{(}{)}{}%
\insertnote{ }{.}{}%
}
diff --git a/Master/texmf-dist/tex/context/bib/t-bib.mkii b/Master/texmf-dist/tex/context/bib/t-bib.mkii
new file mode 100644
index 00000000000..ac34947257a
--- /dev/null
+++ b/Master/texmf-dist/tex/context/bib/t-bib.mkii
@@ -0,0 +1,5 @@
+% some code will move here
+
+\unprotect
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/bib/t-bib.mkiv b/Master/texmf-dist/tex/context/bib/t-bib.mkiv
new file mode 100644
index 00000000000..9a01bc7cde1
--- /dev/null
+++ b/Master/texmf-dist/tex/context/bib/t-bib.mkiv
@@ -0,0 +1,62 @@
+%D Note by HH:
+%D
+%D We use a still somewhat experimental extension to the list
+%D mechanism. Eventually the bibtex module will use the bibl loader
+%D and access the data by means of lpath expressions. In that case we
+%D don't need to process the bibliography but still need to track
+%D usage as done here.
+
+\unprotect
+
+\startluacode
+local list = { }
+
+bibtexhacks = {
+ reset = function() list = { } end,
+ add = function(str) list[#list+1] = str end,
+ flush = function() tex.sprint(table.concat(list,",")) end,
+}
+\stopluacode
+
+% HACK WILL GO:
+
+\def\namedlistparameter#1#2{\csname\dolistparameter{\??li#1}#2\endcsname}
+
+% TILL HERE
+
+\let\bibrefprefixcounter\!!plusone
+\def\bibrefprefix {\bibrefprefixcounter:}
+\let\preparebibrefprefix\relax
+\let\preparebibreflist \gobbleoneargument
+\let\bibreflist \empty
+
+\setuplist[pubs][\c!state=\s!start]
+
+\installstructurelistprocessor{pubs:userdata}
+ {\ctxlua{bibtexhacks.add(structure.lists.uservalue("\currentlist",\currentlistindex,"bibref"))}}
+
+\def\docitation#1%
+ {\expanded{\writedatatolist[pubs][bibref=#1]}}
+
+\def\filllocalpublist
+ {\edef\currentlist{pubs}%
+ \doif{\listparameter\c!criterium}{cite}{\setuplist[pubs][\c!criterium=\v!here]}%
+ \ctxlua{bibtexhacks.reset()}%
+ \placestructurelist{pubs}{\listparameter\c!criterium}{\listparameter\c!number}%
+ \edef\localpublist{\ctxlua{bibtexhacks.flush()}}}
+
+\def\gotobiblink#1[#2]{\doifreferencefoundelse{\bibrefprefix#2}{\goto{#1}[\bibrefprefix#2]}{\unknownreference{#2}}}
+\def\atbiblink [#1]{\doifreferencefoundelse{\bibrefprefix#1}{\at [\bibrefprefix#1]}{\unknownreference{#1}}}
+\def\inbiblink [#1]{\doifreferencefoundelse{\bibrefprefix#1}{\at [\bibrefprefix#1]}{\unknownreference{#1}}}
+
+\ifdefined\normaldodoplacepublications \else % just in case we load twice
+
+ \let\normaldodoplacepublications\dodoplacepublications
+
+ \def\dodoplacepublications
+ {\normaldodoplacepublications
+ \doglobal\increment\bibrefprefixcounter}
+
+\fi
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/bib/t-bib.tex b/Master/texmf-dist/tex/context/bib/t-bib.tex
index 67a741096f1..876bad8e2ab 100644
--- a/Master/texmf-dist/tex/context/bib/t-bib.tex
+++ b/Master/texmf-dist/tex/context/bib/t-bib.tex
@@ -1,6 +1,6 @@
%D \module
%D [ file=t-bib,
-%D version=2006.12.07,
+%D version=2009.08.13,
%D title=\CONTEXT\ Publication Module,
%D subtitle=Publications,
%D author=Taco Hoekwater,
@@ -34,7 +34,7 @@
%D \item added headtext for it (23/11/2005)
%D \item make \type{\cite[url]} and \type{\cite[doi]} interactive (23/11/2005)
%D \item make right-aligned labels in the list work even when autohang=no
-%D \item use 'et al.' instead of 'et.al.'. Pointed out by Peter Münster (30/12/2005)
+%D \item use 'et al.' instead of 'et.al.'. Pointed out by Peter M�nster (30/12/2005)
%D \item added headtext for cz (31/12/2005)
%D \item Keep whitespace after \type{\cite} with single argument (31/12/2005)
%D \item Fix broken \type{\cite{}} support (31/12/2005)
@@ -62,7 +62,7 @@
%D \item fix a bug in \type{\cite{<item>}} (17/5/2006)
%D \item support \type{\cite[authornum]} (18/5/2006)
%D \item make \type{\cite} unexpandable (20/6/2006)
-%D \item allow hyperlinks in author\&year combo's
+%D \item allow hyperlinks in author\&year combo's
%D (cite list compression has to be off) (20/6/2006)
%D \item fix duplicate labels for per-chapter style (20/6/2006)
%D \item allow \type{\setupcite[interaction=(start|stop)]}
@@ -70,7 +70,7 @@
%D \item make the default criterium for \type{\placepublications} be \type{previous} (23/6/2006)
%D \item fix \type{\normalauthor} and \type{\normalshortauthor} spacing (29/6/2006)
%D \item do not typeset empty arguments to \type{\typesetapublication} (29/6/2006)
-%D \item add \type{symbol=none} to \type{\setuplist} in unnumbered
+%D \item add \type{symbol=none} to \type{\setuplist} in unnumbered
%D mode to prevent typesetting of bare numbers (29/6/2006)
%D \item remove two incorrect spaces from bibl-num.tex (1/7/2006)
%D \item reset font styles within \type{\cite}, so that font switches
@@ -80,7 +80,7 @@
%D \item test \type{\iflocation} before deciding to use the
%D interactive version of cite (18/7/2006)
%D \item support \type{\setupcite[authoretallimit=1]} (18/7/2006)
-%D \item support use of \type{\cite} within titles and captions by
+%D \item support use of \type{\cite} within titles and captions by
%D saveguarding the list item extraction and reference placement
%D code (19/7/2006)
%D \item support \type{\setuppublicationlist[title=\chapter]} (4/8/2006)
@@ -88,15 +88,15 @@
%D \item hook added for repeated authors in publication list
%D \type{\setuppublicationlist[artauthorcommand=\mythreeargscommand]}
%D (4/8/2006)
-%D \item make the bracketed arguments of \type{\artauthor}, \type{\author}
+%D \item make the bracketed arguments of \type{\artauthor}, \type{\author}
%D and \type{\editor} (bbl commands) optional (4/8/2006)
%D \item the constants \type{sorttype}, \type{compress} and
%D \type{autohang} have moved to the core (8/8/2006)
%D \item bibtex is now registered as a program to be run by texexec (8/8/2006)
%D \item fix a bug in \type{\setupcite[authoretallimit=1]} (9/8/2006)
-%D \item fix a bug inside citations that prevented lastpubsep from ever being
+%D \item fix a bug inside citations that prevented lastpubsep from ever being
%D used due to a volatile \type{\commalistsize} (25/8/2006).
-%D \item added the possibility of \type{\placepublications[option=continue]}
+%D \item added the possibility of \type{\placepublications[option=continue]}
%D (6/9/2006)
%D \item Mojca translated Master's Thesis to Masterarbeit (bibl-apa-de.tex)
%D (12/9/2006)
@@ -104,9 +104,40 @@
%D Thomas Schmitz (15/9/2006)
%D \item Removed some spurious spaces pointed out by willi egger (19/9/2006)
%D \item Add configuration of bibtex executable name (4/11/2006)
-%D \item Fix numbering=short and numbering=bib (spotted by Matthias Wächter) (4/11/2006)
+%D \item Fix numbering=short and numbering=bib (spotted by Matthias W�chter) (4/11/2006)
%D \item third attempt to get a correct release (5/11/2006)
%D \item fix a few missing dots in bibl-num.tex (7/12/2006)
+%D \item Patch for DOI's by Tobias Burnus (17/4/2007)
+%D \item Patch for \type{\insertbiburl} and \type{\insertdoi} for Tobias Burnus (18/4/2007)
+%D \item Added a missing \type{\relax} in \type{\dospecialbibinsert},
+%D that made the space before the {\it et al.} text disappear. (18/4/2007)
+%D \item Attempt to fix percent signs in bbl files. As a side-effect,
+%D this prohibits comments in \tex{startpublication} blocks! (17/4/2008)
+%D \item Patch from Matthias W\"achter that allows arbitrary .bst
+%D files to be used with \tex{setupbibtex} (25/9/2008)
+%D \item Extended for the new multilingual setups for the Oct 2008 current of ConTeXt (23/10/2008)
+%D \item Multilingual setups needed another fix (27/10/2008)
+%D \item Two fixes for bibl-apa by Michael Green (27/10/2008)
+%D \item Catalan translation of 'References' (10/11/2008)
+%D \item 'chapter' -> 'chapitre' in bibl-apa-fr (27/11/2008)
+%D \item Run bibtex via os.execute in mkiv modee (01/12/2008)
+%D \item Small correction in bibl-apa's placement of volume
+%D information in articles (05/01/2009)
+%D \item Handle multi-author (more than two) cases in \type{\cite}
+%D (02/03/2009)
+%D \item Suppress a syntax error in \type{cont-xp} mode. The output is
+%D probably not right, though (02/03/2009)
+%D \item Added a \tex{loadmarkfile} at the end, and two new files
+%D from Hans. The \type{t-bib.mkiv} is needed to make the module
+%D work with the new structure code (17/04/2009)
+%D \item Added a patch to \type{t-bib.mkiv} from Hans to make the
+%D cross referencing between multiple citations an
+%D bibliographies work (27/04/2009)
+%D \item Remove a superfluous \type{\unprotect} in t-bib.mkiv (11/05/2009).
+%D \item Patch of incollection in bibl-ams.tex from Xan (08/06/2009).
+%D \item Patch of unpublished in bibl-ams.tex from Xan (22/07/2009).
+%D \item Modified \type{\bibdogetupsometextprefix} so it works for undefined
+%D language labels, from Hans (13/08/2009).
%D \stopitemize
%D
%D \subject{WISHLIST}
@@ -120,6 +151,23 @@
\unprotect
+%D start with a temp hack the file will still work with pre-Oct 2008
+%D versions of ConTeXt:
+
+
+\def\startinterface #1
+ {\doifnot{#1}{all}{\doifnotinset\currentinterface{#1}{\gobbleuntil\stopinterface}}}
+
+\let\checksetvalue\gobbletwoarguments
+
+
+%\defineinterfacevariable {title} {title}
+%\defineinterfacevariable {short} {short}
+%\defineinterfacevariable {cite} {cite}
+%\defineinterfacevariable {bbl} {bbl}
+%\defineinterfacevariable {bib} {bib}
+%\defineinterfacevariable {author} {author}
+
%D A few new shortcuts:
\definesystemvariable {pv} % PublicationVariable
@@ -142,67 +190,97 @@
%D Some constants for the multi-lingual interface
-\startconstants dutch english
-
- database: database database
- artauthor: artauthor artauthor
- editor: editor editor
- authoretallimit: authoretallimit authoretallimit
- artauthoretallimit: artauthoretallimit artauthoretallimit
- editoretallimit: editoretallimit editoretallimit
- authoretaldisplay: authoretaldisplay authoretaldisplay
- artauthoretaldisplay: artauthoretaldisplay artauthoretaldisplay
- editoretaldisplay: editoretaldisplay editoretaldisplay
- authoretaltext: authoretaltext authoretaltext
- artauthoretaltext: artauthoretaltext artauthoretaltext
- editoretaltext: editoretaltext editoretaltext
- otherstext: otherstext otherstext
- andtext: andtext andtext
- totalnumber: totalnumber totalnumber
- firstnamesep: firstnamesep firstnamesep
- vonsep: vonsep vonsep
- juniorsep: juniorsep juniorsep
- surnamesep: surnamesep surnamesep
- lastnamesep: lastnamesep lastnamesep
- finalnamesep: finalnamesep finalnamesep
- namesep: namesep namesep
- pubsep: pubsep pubsep
- lastpubsep: lastpubsep lastpubsep
- refcommand: refcommand refcommand
- samplesize: samplesize samplesize
-
-\stopconstants
-
-\startvariables dutch english
- german czech
- italian romanian
- french
- title: titel title
- titel titul
- titolo titlu
- titre
- short: kort short
- kurz short
- short short
- short
- cite: cite cite
- cite cite
- cite cite
- cite
- bbl: bbl bbl
- bbl bbl
- bbl bbl
- bbl
- bib: bib bib
- bib bib
- bib bib
- bib
- author: auteur author
- autor autor
- autore autor
- auteur
-
-\stopvariables
+\startinterface all
+ \setinterfaceconstant {database} {database}
+ \setinterfaceconstant {artauthor} {artauthor}
+ \setinterfaceconstant {editor} {editor}
+ \setinterfaceconstant {authoretallimit} {authoretallimit}
+ \setinterfaceconstant {artauthoretallimit} {artauthoretallimit}
+ \setinterfaceconstant {editoretallimit} {editoretallimit}
+ \setinterfaceconstant {authoretaldisplay} {authoretaldisplay}
+ \setinterfaceconstant {artauthoretaldisplay} {artauthoretaldisplay}
+ \setinterfaceconstant {editoretaldisplay} {editoretaldisplay}
+ \setinterfaceconstant {authoretaltext} {authoretaltext}
+ \setinterfaceconstant {artauthoretaltext} {artauthoretaltext}
+ \setinterfaceconstant {editoretaltext} {editoretaltext}
+ \setinterfaceconstant {otherstext} {otherstext}
+ \setinterfaceconstant {andtext} {andtext}
+ \setinterfaceconstant {totalnumber} {totalnumber}
+ \setinterfaceconstant {firstnamesep} {firstnamesep}
+ \setinterfaceconstant {vonsep} {vonsep}
+ \setinterfaceconstant {juniorsep} {juniorsep}
+ \setinterfaceconstant {surnamesep} {surnamesep}
+ \setinterfaceconstant {lastnamesep} {lastnamesep}
+ \setinterfaceconstant {finalnamesep} {finalnamesep}
+ \setinterfaceconstant {namesep} {namesep}
+ \setinterfaceconstant {pubsep} {pubsep}
+ \setinterfaceconstant {lastpubsep} {lastpubsep}
+ \setinterfaceconstant {refcommand} {refcommand}
+ \setinterfaceconstant {samplesize} {samplesize}
+\stopinterface
+
+\startinterface dutch
+ \setinterfacevariable {title} {titel}
+ \setinterfacevariable {short} {kort}
+ \setinterfacevariable {cite} {cite}
+ \setinterfacevariable {bbl} {bbl}
+ \setinterfacevariable {bib} {bib}
+ \setinterfacevariable {author} {auteur}
+\stopinterface
+
+\startinterface english
+ \setinterfacevariable {title} {title}
+ \setinterfacevariable {short} {short}
+ \setinterfacevariable {cite} {cite}
+ \setinterfacevariable {bbl} {bbl}
+ \setinterfacevariable {bib} {bib}
+ \setinterfacevariable {author} {author}
+\stopinterface
+
+\startinterface german
+ \setinterfacevariable {title} {titel}
+ \setinterfacevariable {short} {kurz}
+ \setinterfacevariable {cite} {cite}
+ \setinterfacevariable {bbl} {bbl}
+ \setinterfacevariable {bib} {bib}
+ \setinterfacevariable {author} {autor}
+\stopinterface
+
+\startinterface czech
+ \setinterfacevariable {title} {titul}
+ \setinterfacevariable {short} {short}
+ \setinterfacevariable {cite} {cite}
+ \setinterfacevariable {bbl} {bbl}
+ \setinterfacevariable {bib} {bib}
+ \setinterfacevariable {author} {autor}
+\stopinterface
+
+\startinterface italian
+ \setinterfacevariable {title} {titolo}
+ \setinterfacevariable {short} {short}
+ \setinterfacevariable {cite} {cite}
+ \setinterfacevariable {bbl} {bbl}
+ \setinterfacevariable {bib} {bib}
+ \setinterfacevariable {author} {autore}
+\stopinterface
+
+\startinterface romanian
+ \setinterfacevariable {title} {titlu}
+ \setinterfacevariable {short} {short}
+ \setinterfacevariable {cite} {cite}
+ \setinterfacevariable {bbl} {bbl}
+ \setinterfacevariable {bib} {bib}
+ \setinterfacevariable {author} {autor}
+\stopinterface
+
+\startinterface french
+ \setinterfacevariable {title} {titre}
+ \setinterfacevariable {short} {short}
+ \setinterfacevariable {cite} {cite}
+ \setinterfacevariable {bbl} {bbl}
+ \setinterfacevariable {bib} {bib}
+ \setinterfacevariable {author} {auteur}
+\stopinterface
\def\biblistname{pubs} % for compatibility
@@ -211,7 +289,6 @@
\let\preloadbiblist\relax
-
\ifx\currentcomponent\v!text
% single file
\edef\temp{\the\everystarttext}%
@@ -254,6 +331,7 @@
\setupheadtext[it][pubs=Bibliografia]
\setupheadtext[sl][pubs=Literatura]
\setupheadtext[fr][pubs=Bibliographie]
+\setupheadtext[ca][pubs=Referències]
%D \macros{bibdoif,bibdoifnot,bibdoifelse}
%D
@@ -294,15 +372,14 @@
\def\dosetupbibtex[#1]%
{\let\@@pbdatabase\empty
- \let\@@pbsort \empty
- \getparameters[\??pb][#1]%
+ \getparameters[\??pb][sort=\s!default,#1]%
\expanded{\processaction[\@@pbsort]}
[ \v!no=>\def\bibstyle{cont-no},
\v!author=>\def\bibstyle{cont-au},
\v!title=>\def\bibstyle{cont-ti},
\v!short=>\def\bibstyle{cont-ab},
\s!default=>\def\bibstyle{cont-no},
- \s!unknown=>\def\bibstyle{cont-no}]%
+ \s!unknown=>\def\bibstyle{\@@pbsort}]%
\ifx\@@pbdatabase\empty\else \writeauxfile \fi}
\dosetupbibtex[bibtex=bibtex]
@@ -335,7 +412,9 @@
\write \scratchwrite {\string\bibdata{\@@pbdatabase}}%
\closeout\scratchwrite
\showmessage\m!bib{3}{}%
- \expanded{\installprogram{\@@pbbibtex\space\jobname}}}}
+ \doifmodeelse{*mkiv}
+ {\ctxlua{os.execute('\@@pbbibtex\space\jobname')}}
+ {\expanded{\installprogram{\@@pbbibtex\space\jobname}}}}}
%D \macros{ifsortbycite,iftypesetall,ifautohang,ifbibcitecompress}
%D
@@ -497,10 +576,15 @@
\processcommacommand[\bibcommandlist]\simplebibdef
+\def\insertdoi#1#2#3%
+ {{\bibdoifelse{\@@pb@doi}%
+ {\edef\ascii{\@EA\detokenize\@EA{\@@pb@doi}}%
+ #1\expanded{\gotoDOI{\@@pb@thekey}{\ascii}}#2}{#3}}}
+
\def\insertbiburl#1#2#3%
{{\bibdoifelse{\@@pb@biburl}%
{\edef\ascii{\@EA\detokenize\@EA{\@@pb@biburl}}%
- #1\@EA\hyphenatedurl\@EA{\ascii}#2}{#3}}}
+ #1\expanded{\gotoURL{\@@pb@thekey}{\ascii}}#2}{#3}}}
\def\insertmonth#1#2#3%
{\bibdoifelse{\@@pb@month}%
@@ -567,11 +651,11 @@
\def\dododocomplexbibdef[#1]#2#3%
{\@EA\increment\csname \currentype @num\endcsname
\setevalue{\??pb @\currentype\csname \currentype @num\endcsname}%
- {{\secondarg}{#2}{#3}{#1}{\firstarg}}\ignorespaces}%
+ {{\secondarg}{#2}{#3}{#1}{\firstarg}}\ignorespaces}%
\def\complexbibdef#1%
{\@EA\newcounter\csname #1@num\endcsname
- \@EA\def\csname bib@#1\endcsname{\docomplexbibdef{#1}}%
+ \@EA\def\csname bib@#1\endcsname{\docomplexbibdef{#1}}%
\@EA\def\csname insert#1s\endcsname##1##2##3%
{\specialbibinsert{#1}{\csname #1@num\endcsname}{##1}{\unskip ##2}{##3}}}
@@ -641,13 +725,13 @@
\ifnum \numexpr\scratchcounter-1\relax<#2\relax
\getvalue{\??pv data#1}##1%
\ifnum \scratchcounter=#2\relax
- \ifnum\etallimitcounter<\commalistsize \bibalternative{#1etaltext}\fi
+ \ifnum\etallimitcounter<\commalistsize\relax \bibalternative{#1etaltext}\fi
\else \ifnum\numexpr\scratchcounter+1 = #2\relax
\ifnum \commalistsize > \plustwo \bibalternative\c!finalnamesep
\else \bibalternative\c!lastnamesep \fi
\else
\bibalternative\c!namesep
- \fi \fi
+ \fi \fi
\fi}%
\processcommacommand[#3]\processauthoritem }
@@ -726,9 +810,16 @@
%D to \type{\startpublication}. Of course, then there
%D is no key either, and it had better be an
%D article (otherwise the layout will be all screwed up).
+%D
+%D Now prohibits comments, so % can be used for urls
+
+\def\startpublication
+ {\edef\bibmodsavedpercent{\the\catcode`\%}%
+ \catcode`\%=12
+ \dosingleempty\dostartpublication}
-\def\startpublication{\dosingleempty\dostartpublication}
-\def\stoppublication {}
+\def\stoppublication
+ {} % the \catcode of % is reset below
%D Only specifying the key in the argument is also
%D legal. In storing this stuff into macros, some trickery with
@@ -760,7 +851,8 @@
\setxvalue{pbdu-\@@pbk}{\@@pbu}
\setxvalue{pbdd-\@@pbk}{\the\toks0}
\xdef\allrefs{\allrefs,\@@pbk}%
- \egroup }
+ \egroup
+ \catcode`\%=\bibmodsavedpercent\relax }
% intialization of the order-list:
@@ -857,9 +949,11 @@
\fi
\def\filllocalpublist%
- {\let\dosetfilterlevel\patcheddosetfilterlevel
- \dosettoclevel\??li{pubs}%
- \let\dosetfilterlevel\normaldosetfilterlevel
+ {\doifdefinedelse{\alltoclevels}
+ {\let\dosetfilterlevel\patcheddosetfilterlevel
+ \dosettoclevel\??li{pubs}%
+ \let\dosetfilterlevel\normaldosetfilterlevel }%
+ {\dosettoclevel\??li{pubs}}%
\global\let\glocalpublist\empty
\doloop
{\doifdefinedelse
@@ -873,9 +967,9 @@
{\exitloop}}%
\let\localpublist\glocalpublist}
-%
+%
\def\typesetpubslist
- {\dobeginoflist
+ {\dobeginoflist
\edef\askedlevel{\csname \??li pubs\c!criterium\endcsname}%
\ifx\askedlevel\v!all
\def\bibrefprefix{}%
@@ -883,7 +977,7 @@
\preparebibrefprefix
\fi
\ifsortbycite
- \filllocalpublist
+ \filllocalpublist
\iftypesetall
\let\localallrefs\allrefs
\processcommacommand[\localpublist]\typesetapublication
@@ -898,11 +992,11 @@
\iftypesetall
\processcommacommand[\allrefs]\typesetapublication
\else
- %
+ %
\filllocalpublist
\processcommacommand[\allrefs]\maybetypesetapublication
\fi
- \fi
+ \fi
\doendoflist }
\newif\ifinpublist
@@ -978,14 +1072,34 @@
\def\completepublications
{\dosingleempty\docompletepublications}
+\def\bibdogetupsometextprefix#1#2#3%
+ {\ifcsname#2#1#3\endcsname
+ \csname#2#1#3\endcsname
+ \else\ifcsname\??la#1\c!default\endcsname
+ \@EA\ifx\csname\??la#1\c!default\endcsname\empty
+ \ifcsname#2#3\endcsname
+ \csname#2#3\endcsname
+ \else\ifcsname#2\s!en#3\endcsname
+ \csname#2\s!en#3\endcsname
+ \fi\fi
+ \else
+ \expandafter\bibdogetupsometextprefix
+ \csname\??la#1\c!default\endcsname{#2}{#3}%
+ \fi
+ \else
+ \ifcsname#2#3\endcsname
+ \csname#2#3\endcsname
+ \else\ifcsname#2\s!en#3\endcsname
+ \csname#2\s!en#3\endcsname
+ \fi\fi
+ \fi\fi}
+
\def\docompletepublications[#1]%
- {%\getparameters[\??pv data][#1]%
- \begingroup
- \setuplist[pubs][\c!criterium=\v!previous,#1]
+ {\begingroup
+ \setuplist[pubs][\c!criterium=\v!previous,#1]
\begingroup
- \loggingall
\let\handletextprefix\firstoftwoarguments
- \edef\headtextpubs{\dogetupsometextprefix\headlanguage\c!title{pubs}}%
+ \edef\headtextpubs{\bibdogetupsometextprefix\headlanguage\c!title{pubs}}%
\doifdefinedelse
{\??pv data\v!title}
{\doifemptyelsevalue
@@ -1016,7 +1130,7 @@
{\global\let\bibcounter\!!zerocount }%
\inpublisttrue
\typesetpubslist
- \inpublistfalse
+ \inpublistfalse
\endgroup }
@@ -1024,8 +1138,8 @@
%D
\unexpanded\def\typesetapublication#1%
- {\doifsomething{#1}{\doglobal\increment\bibcounter
- \bgroup
+ {\doifsomething{#1}{\doglobal\increment\bibcounter
+ \bgroup
\makepbkvalue{#1}%
\ifgridsnapping
\snaptogrid\vbox{\dodolistelement{pubs}{}{\bibcounter}%
@@ -1098,7 +1212,7 @@
{\begingroup
\setupinteraction[\c!style=]%
\edef\temp{#2}%
- \ifx\empty\temp \secondargumentfalse
+ \ifx\empty\temp \secondargumentfalse
\else \secondargumenttrue \fi
\ifsecondargument
\processcommalist[#2]\docitation
@@ -1188,7 +1302,7 @@
\newcounter\citationnumber
\def\docitation#1{%
- \iftrialtypesetting \else
+ \iftrialtypesetting \else
\ifdoinpututilities\else
\doglobal\increment\citationnumber
\expanded{\rawreference{}{cite-\jobname-\citationnumber}{#1}}%
@@ -1304,11 +1418,32 @@
\or
\expanded{\docurrentbibauthor#1}%
\else
- % this can't happen/
- \def\currentbibauthor{}%
+ \handlemultiplebibauthors{\commalistsize}{#1}%
\fi }
+\newcount\citescratchcounter
+
+\def\handlemultiplebibauthors#1#2%
+ {\citescratchcounter 0
+ \def\currentbibauthor{}%
+ \def\bibprocessauthoritem##1%
+ {\advance\citescratchcounter1
+ \ifnum \citescratchcounter=#1\relax
+ \edef\currentbibauthor{\currentbibauthor##1}%
+ \else \ifnum\numexpr\citescratchcounter+1 = #1\relax
+ \edef\currentbibauthor{\currentbibauthor ##1\bibalternative{andtext}}%
+ \else
+ \edef\currentbibauthor{\currentbibauthor ##1\bibalternative{namesep}}%
+ \fi
+ \fi }%
+ \processcommalist[#2]\bibprocessauthoritem }
+
+
+\setupcite
+ [author,authoryear,authoryears]
+ [\c!namesep={, }]
+
%D This discovery of authoretallimit is not the best one,
%D but it will do for now.
@@ -1431,7 +1566,7 @@
%D \macros{preparebibrefprefix}
%D
%D The reference list only writes bare references when the criterium
-%D is `all'. Otherwise, a prefix is added to make sure that pdfTeX
+%D is `all'. Otherwise, a prefix is added to make sure that pdfTeX
%D does not encounter duplicate named references. On the generation
%D side, this is not a big problem. \type{\preparebibrefprefix}
%D creates a suitable string to prepend if a prefix is needed.
@@ -1454,9 +1589,9 @@
%D \macros{preparebibreflist}
%D
-%D But this optional prefixing is a bit of a problem on the
+%D But this optional prefixing is a bit of a problem on the
%D other side. We would like to do \type{\goto{}[article-full]}
-%D but can't do it like that, because the actual label may be
+%D but can't do it like that, because the actual label may be
%D \type{1:2:0:3:4:article-full]} or so. The problem is solved
%D by building a commalist that looks like this:
%D \starttyping
@@ -1472,7 +1607,7 @@
\def\preparebibreflist#1%
{\let\bibreflist\empty
\def\storeitem##1%
- {\ifx\bibreflist\empty
+ {\ifx\bibreflist\empty
\edef\prefix{##1\sectionseparator}%
\edef\bibreflist{\prefix#1,#1}%
\else
@@ -1480,7 +1615,7 @@
\edef\bibreflist{\prefix#1,\bibreflist}%
\fi}%
\expanded{\processseparatedlist[\bibrefprefix][\sectionseparator]}\storeitem }
-
+
%D \macros{gotobiblink,inbiblink,atbiblink}
%D
%D The final task is looping over that list until a match is found.
@@ -1570,7 +1705,7 @@
{\bibalternative\v!left
\ixbibauthoryear{#1}
{\bibmaybeinteractive{#1}{{\currentbibauthor}\bibalternative\c!inbetween{\currentbibyear}}}
- {\bibalternative\c!pubsep
+ {\bibalternative\c!pubsep
\bibmaybeinteractive{#1}{{\currentbibauthor}\bibalternative\c!inbetween{\currentbibyear}}}
{\bibalternative\c!lastpubsep
\bibmaybeinteractive{#1}{{\currentbibauthor}\bibalternative\c!inbetween{\currentbibyear}}}%
@@ -1636,7 +1771,9 @@
\def\gotoDOI#1#2%
{\ifbibinteractionelse
- {\useURL[bibfoo#1][http://dx.doi.org/#2]\goto{\url[bibfoo#1]}[url(bibfoo#1)]}
+ {\useURL[bibfooDoi#1][#2]%
+ \useURL[bibfoo#1][http://dx.doi.org/#2]%
+ \goto{\url[bibfooDoi#1]}[url(bibfoo#1)]}
{\hyphenatedurl{#2}}}
\def\bibdoiref[#1]%
@@ -1716,7 +1853,7 @@
{\ifbibreffound\else
\doifreferencefoundelse
{##1}
- {\global\bibreffoundtrue
+ {\global\bibreffoundtrue
\@EA\doglobal\@EA\addtocommalist\@EA{\reftypet}\therefs }%
{}\fi}%
\processcommacommand[\bibreflist]\setuplink
@@ -1785,6 +1922,8 @@
\setuppublications
[\v!month\v!conversion=,\c!alternative=apa]
+\loadmarkfile{t-bib}
+
\preloadbiblist
-\protect \endinput \ No newline at end of file
+\protect \endinput