summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/custom-bib
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2007-04-26 12:39:02 +0000
committerKarl Berry <karl@freefriends.org>2007-04-26 12:39:02 +0000
commit12b887dd18265b4fa23960d385992f4bf0001959 (patch)
tree39693279c44d1cdbf7ef345639de540f6909d828 /Master/texmf-dist/tex/latex/custom-bib
parentd4543aa76817fbab919ceddab409f6e5d5d8e450 (diff)
custom-bib 420 (25apr07)
git-svn-id: svn://tug.org/texlive/trunk@4195 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/custom-bib')
-rw-r--r--Master/texmf-dist/tex/latex/custom-bib/merlin.mbs284
1 files changed, 267 insertions, 17 deletions
diff --git a/Master/texmf-dist/tex/latex/custom-bib/merlin.mbs b/Master/texmf-dist/tex/latex/custom-bib/merlin.mbs
index 6e5014dc22b..f1c9cd61aac 100644
--- a/Master/texmf-dist/tex/latex/custom-bib/merlin.mbs
+++ b/Master/texmf-dist/tex/latex/custom-bib/merlin.mbs
@@ -1,6 +1,6 @@
-%\iffalse THIS IS A META COMMENT
+%\iffalse THIS IS A META COMMENT -*- TeX -*- -*- DTX -*-
% File: merlin.mbs
-%% Copyright 1994-2005 Patrick W Daly
+%% Copyright 1994-2007 Patrick W Daly
% Max-Planck-Institut f\"ur Sonnensystemforschung
% Max-Planck-Str. 2
% D-37191 Katlenburg-Lindau
@@ -44,7 +44,7 @@
% ===============================================================
% Name and version information of the main mbs file:
%\fi
- % \ProvidesFile{merlin.mbs}[2005/10/17 4.14 (PWD, AO, DPC)]
+ % \ProvidesFile{merlin.mbs}[2007/04/24 4.20 (PWD, AO, DPC)]
%\iffalse
%</!tail>
%<*a&!a>
@@ -88,7 +88,7 @@
% Grave accent \` Left brace \{ Vertical bar \|
% Right brace \} Tilde \~}
%
-% \CheckSum{450}
+% \CheckSum{516}
% \setcounter{StandardModuleDepth}{1}
% \setcounter{IndexColumns}{2}
% \setlength{\IndexMin}{10cm}
@@ -248,7 +248,7 @@
% \texttt{pp-last} and \texttt{dt-beg}}
% \changes{4.06}{2003 Apr 2}{PWD: add \texttt{nmd-2} and \texttt{nmd-3} for use with \texttt{nmdash}}
% \changes{4.10}{2003 May 28}{PWD: add DOI}
-% \changes{4.10}{2003 June 3}{PWD: use \texttt{\backslash providecommand}
+% \changes{4.10}{2003 June 3}{PWD: use \texttt{\protect\bslash providecommand}
% instead of \TeX\ commands, but provide \texttt{noprov} option to undo it.}
% \changes{4.10}{2003 June 3}{PWD: make \texttt{eid} available not just for Rev\TeX}
% \changes{4.10}{2003 June 11}{PWD: add \texttt{pg-pre} for total book pages location}
@@ -263,6 +263,10 @@
% \changes{4.13}{2004 Feb 9}{PWD: add option \texttt{tit-col} for colon after titles}
% \changes{4.14}{2005 Oct 17}{PWD: add option \texttt{nm-rvvc}, spaceless initials with comma}
% \changes{4.14}{2005 Oct 17}{PWD: add option \texttt{etal-xc} to suppress comma before et al.}
+% \changes{4.15}{2006 Jan 4}{PWD: add option \texttt{pres} for conference talks, presentations}
+% \changes{4.16}{2006 Feb 15}{PWD: fix bug in \texttt{proceedings} that suppress number/series at times}
+% \changes{4.20}{2007 Apr 23}{PWD: add option to allow more than one author in cites before et al.}
+% \changes{4.20}{2007 Apr 24}{PWD: allow variable number of authors before truncating citation}
%
% \pagestyle{myheadings}
% \markboth{P. W. Daly}{A General Master Bibliography Style}
@@ -849,6 +853,22 @@
% \item[annote] annotations enabled, with \texttt{annote} field.
% \end{opt}
%
+% \textbf{Presentations:}
+% add a non-standard type to handle talks (presentations). This is similar to the
+% \texttt{inproceedings} but without \texttt{booktitle} and with the presenting
+% author in bold face. This author is specified by the \texttt{key} entry, which
+% is that author's position in the author list (1, 2, \dots). The type of presentation
+% (oral or poster) is specified by the entry \texttt{type}. The date without year is given
+% in \texttt{month}, which must be present.
+% \begin{opt}
+% \item[--] no presentations
+% \item[pres] include a \texttt{presentation} type
+% \item[pres-bf] (with \texttt{pres}) to put speaker in bold face
+% \item[pres-it] (with \texttt{pres}) to put speaker in italics
+% \item[pres-sc] (with \texttt{pres}) to put speaker in small caps
+% \end{opt}
+% Without any of the extra font options, the speaker's name is not highlighted.
+%
% \textbf{Missing names:}
% If the author and/or editor is missing, the standard \texttt{.bst} files
% use the \texttt{key} field in place of the names for purposes of ordering the
@@ -894,7 +914,7 @@
% junior part last, after the (reversed) first name
% \end{opt}
%
-% \textbf{Number of names:} normally all names listed (in reference list)
+% \textbf{Number of names in bibliography:} normally all names listed (in reference list)
% \begin{opt}
% \item[nmlm] limit number of names
% \item[x1...x90] (with \texttt{nmlm}) maximum number of names to appear;
@@ -906,6 +926,17 @@
% one \texttt{m} number must be given, and {\tt x}$\le${\tt m}
% \end{opt}
%
+% \textbf{Number of names in citation:} before \textsl{et al.}
+%
+% The default is to cite one or two names at most, but for three or more, to
+% cite only one name with \textsl{et~ al.}
+% \begin{opt}
+% \item[mcite] to change the default
+% \item[mct-1...mct-5] (with \texttt{mcite}) number of names preceding \textsl{et~al.}
+% \item[mct-x2...mct-x5] (with \texttt{mcite}) max number of authors without truncating
+% \end{opt}
+% The default is equivalent to \texttt{mct-1} and \texttt{mct-x2}.
+%
% \textbf{Names font:} in the reference list
% \begin{opt}
% \item[--] default is names in normal typeface
@@ -1532,6 +1563,23 @@
\endoptiongroup
% \end{macrocode}
%
+% \subsection*{Presentations}
+% Presentations are talks at meetings, oral or poster, that are not otherwise
+% published. The author making the presentation is indicated with the \texttt{key}
+% entry, which is the speaker's number within the author list. The font used
+% to highlight the speaker is either bold or italics, depending on the secondary
+% option, otherwise not highlighted.
+% \begin{macrocode}
+\beginoptiongroup{PRESENTATIONS:}{}
+\optdef{*}{}{Do not add presentation type}{for conference talks}
+\optdef{p}{pres}{Add presentation, speaker not highlighted}{}
+\optdef{b}{pres,pres-bf}{Presentation, speaker bold face}{}
+\optdef{i}{pres,pres-it}{Presentaion, speaker italic}{}
+\optdef{c}{pres,pres-sc}{Presentaion, speaker in small caps}{}
+\getans
+\endoptiongroup
+% \end{macrocode}
+%
% \subsection*{Ordering of the listed references}
% Choices here depend on citation style. The default in both cases is
% alphabetical order of all authors. For numerical style, one may also
@@ -1710,7 +1758,7 @@
% \texttt{.bst} file itself (it might be possible, but I found it too complex),
% this is done here.
% \begin{macrocode}
-\beginoptiongroup{NUMBER OF AUTHORS:}{}
+\beginoptiongroup{NUMBER OF AUTHORS IN BIBLIOGRAPHY:}{}
\optdef{*}{}{All authors}{included in listing}
\optdef{l}{nmlm}{Limited authors}{(et al replaces missing names)}
\getans
@@ -1739,6 +1787,38 @@
% \end{macrocode}
%
+% Something that I finally add after being asked many times, is to allow for
+% more than one name in the citation before inserting \textsl{et~al.}
+% to allow more than 2 authors before truncating
+% \begin{macrocode}
+\beginoptiongroup{AUTHORS IN CITATIONS:}{}
+\optdef{*}{}{One author et al}{for three or more authors}
+\optdef{m}{mcite}{Some other truncation scheme}{}
+\getans
+\endoptiongroup
+\mytempfalse
+\if\ans m\mytemptrue\fi
+\beginoptiongroup{MAX AUTHORS BEFORE ET AL:
+ (if regular cite not selected)}
+ {\ifmytemp*\fi}%
+\optdef{*}{mct-1}{One et al}{}
+\optdef{2}{mct-2}{One, Two et al}{}
+\optdef{3}{mct-3}{One, Two, Three et al}{}
+\optdef{4}{mct-4}{One, Two, Three, Four et al}{}
+\optdef{5}{mct-5}{One, Two, Three, Four, Five et al}{}
+\getans
+\endoptiongroup
+\beginoptiongroup{MAX AUTHORS WITHOUT ET AL:
+ (if regular cite not selected)}
+ {\ifmytemp*\fi}%
+\optdef{*}{mct-x2}{Two authors without truncating}{}
+\optdef{3}{mct-x3}{Three authors}{without truncating}
+\optdef{4}{mct-x4}{Four authors}{without truncating}
+\optdef{5}{mct-x5}{Five authors}{without truncating}
+\getans
+\endoptiongroup
+% \end{macrocode}
+%
% \subsection*{Typeface of names}
% The author names in the list of references normally appear in the current
% typeface. This may be changed to small caps, bold, or italics.
@@ -3415,7 +3495,7 @@ FUNCTION {emphasize}
% The bold font command may be NFSS or the regular \LaTeX~2.09 declaration.
%\changes{1.3(2.1)}{1994 Jul 1}{Add \texttt{nfss} option}
% \begin{macrocode}
-%<*nmft-bf|vol-bf|vol-2bf|lab-bf|dtbf>
+%<*nmft-bf|vol-bf|vol-2bf|lab-bf|dtbf|pres-bf>
FUNCTION {bolden}
{ duplicate$ empty$
{ pop$ "" }
@@ -3426,7 +3506,7 @@ FUNCTION {bolden}
%</!html>
if$
}
-%</nmft-bf|vol-bf|vol-2bf|lab-bf|dtbf>
+%</nmft-bf|vol-bf|vol-2bf|lab-bf|dtbf|pres-bf>
% \end{macrocode}
% \end{macro}
%
@@ -3434,7 +3514,7 @@ FUNCTION {bolden}
% To put text into small caps.
%\changes{3.0}{1995 Mar 3}{Add function}
% \begin{macrocode}
-%<*lab-sc|nmft-sc>
+%<*lab-sc|nmft-sc|pres-sc>
FUNCTION {scaps}
{ duplicate$ empty$
{ pop$ "" }
@@ -3445,7 +3525,7 @@ FUNCTION {scaps}
%</!html>
if$
}
-%</lab-sc|nmft-sc>
+%</lab-sc|nmft-sc|pres-sc>
% \end{macrocode}
% \end{macro}
%
@@ -4260,6 +4340,35 @@ FUNCTION {format.url}
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{`check.speaker'}
+% \changes{4.15}{2006 Jan 4}{Add \texttt{presentation}, which needs this function
+% to highlight speaker name}
+% The \texttt{presentation} type uses the \texttt{key} entry to indicate which
+% author is the speaker, as the sequence number in the author list. The speaker's
+% name is put into a different font, depending on the extra option. If no font
+% is specified, all names are the same.
+% \begin{macrocode}
+INTEGERS { nameptr namesleft numnames }
+
+%<*pres-bf|pres-it|pres-sc>
+FUNCTION {check.speaker}
+{ key empty$ 'skip$
+ { key nameptr int.to.str$ =
+ {
+%<pres-bf> bolden
+%<pres-it&!pres-bf> emphasize
+%<pres-sc&!pres-it&!pres-bf> scaps
+ }
+ 'skip$
+ if$
+ }
+ if$
+}
+
+%</pres-bf|pres-it|pres-sc>
+% \end{macrocode}
+% \end{macro}
+
% \begin{macro}{`format.names'}
% \changes{1.5(2.3)}{1994 Sep 16}{Add \texttt{harvard} command for `and' with
% new option \texttt{harnm}}
@@ -4309,7 +4418,6 @@ FUNCTION {format.url}
% just before the call.
% \begin{macrocode}
STRINGS { bibinfo}
-INTEGERS { nameptr namesleft numnames }
% \end{macrocode}
%
@@ -4541,6 +4649,12 @@ FUNCTION {format.names}
*
%</nmft&(fnm-rm|fnm-def)>
bibinfo bibinfo.check
+%<*pres-bf|pres-it|pres-sc>
+ type$ "presentation" =
+ { check.speaker }
+ 'skip$
+ if$
+%</pres-bf|pres-it|pres-sc>
't :=
nameptr #1 >
{
@@ -5253,6 +5367,7 @@ FUNCTION {end.quote.btitle}
% \changes{3.89}{1999 May 20}{Reset \texttt{t}; might still be ``others''
% from last format function}
% \changes{3.98}{1999 May 28}{Fix bug with \texttt{harnm}, missing brace}
+% \changes{4.20}{2007 Apr 23}{Format juniors to be same as for \texttt{format.lab.names}}
% \begin{macrocode}
%<*har|cay|nat>
FUNCTION {format.full.names}
@@ -5263,7 +5378,11 @@ FUNCTION {format.full.names}
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr
- "{vv~}{ll}" format.name$
+%<!jnrlab> "{vv~}{ll}" format.name$
+%<*jnrlab>
+%<!nm-rv&!nm-rvv&!nm-rvx&!nm-rvcx> "{vv~}{ll}{, jj}" format.name$
+%<nm-rv|nm-rvv|nm-rvx|nm-rvcx> "{vv~}{ll}{ jj}" format.name$
+%</jnrlab>
%<lab&and-rm> cite.name.font
't :=
nameptr #1 >
@@ -7004,7 +7123,7 @@ FUNCTION {booklet}
% \changes{4.13}{2004 Feb 9}{Restore chap specification with \texttt{dt-jnl} option.}
% Restore the chapter specification (2004 Feb 9) after someone complained.
% There are still some bugs here. If some date punctuation is specified, say
-% with \texttt{yrp-semi) for a semi-colon after the year, this appears always,
+% with \texttt{yrp-semi} for a semi-colon after the year, this appears always,
% even if there is no text following. But then this to be an unlikely wish anyway,
% since such punctuation options are best suited for \texttt{dt-beg}.
% \begin{macrocode}
@@ -7509,9 +7628,47 @@ FUNCTION {phdthesis}
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{`presentation'}
+% \begin{macrocode}
+%<*pres>
+FUNCTION {presentation}
+{ output.bibitem
+ format.authors output
+%<ay> author format.key output
+%<au-col> add.colon
+%<nmdash> name.or.dash
+%<!blk-com&!blk-tit&!blk-tita> new.block
+ format.title output
+%<blk-com&tit-qq> end.quote.title
+%<!blk-com&!blk-tit&!blk-tita> new.block
+%<blk-tit&!tit-col> new.sentence
+%<blk-tit&tit-col> add.colon
+ format.organization.address "organization and address" output.check
+ month "month" output.check
+ year "year" output.check
+%<!blk-com&!blk-tit&!blk-tita> new.block
+%<(blk-com|blk-tit|blk-tita)&blknt> new.sentence
+ format.note output
+ new.sentence
+ type missing$ 'skip$
+ {"(" type capitalize * ")" * output}
+ if$
+%<*url-blk&!harnm>
+%<!blk-com&!blk-tit&!blk-tita> new.block
+ format.url output
+%</url-blk&!harnm>
+ fin.entry
+%<(harnm|url-nl)&!revdata> write.url
+}
+
+%</pres>
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{`proceedings'}
% \changes{3.89d1}{1999 July 20}{AO: call \texttt{format.eprint}, and \texttt{format.url}.}
% \changes{4.10}{2003 May 28}{Add \texttt{format.doi}}
+% \changes{4.16}{2006 Feb 15}{For numerical, the number/series could be missing when editor there; fixed}
% \begin{macrocode}
%<*ay>
FUNCTION {proceedings}
@@ -7574,7 +7731,7 @@ FUNCTION {proceedings}
%<!numser> format.number.series output
editor empty$
{ publisher empty$
- 'skip$
+%<numser> { format.number.series output }
{
%<!blk-com&!blk-tit&!blk-tita> new.sentence
%<numser> format.number.series output
@@ -7585,9 +7742,11 @@ FUNCTION {proceedings}
{ publisher empty$
{
%<!blk-com&!blk-tit&!blk-tita> new.sentence
+%<numser> format.number.series output
format.organization.address output }
{
%<!blk-com&!blk-tit&!blk-tita> new.sentence
+%<numser> format.number.series output
organization "organization" bibinfo.check output
format.publisher.address output
}
@@ -7855,8 +8014,10 @@ FUNCTION {format.lab.names}
% \end{macrocode}
% \changes{3.89}{1999 May 20}{Reset \texttt{t}; might still be ``others''
% from last format function}
+% The function for the standard citation: one or two authors cited full, but for
+% more than two, only the first with \emph{et~al.} given.
% \begin{macrocode}
-%<*ay>
+%<*ay&!mcite>
FUNCTION {format.lab.names}
{ 's :=
"" 't :=
@@ -7921,7 +8082,96 @@ FUNCTION {format.lab.names}
%</lab&!and-rm>
}
-%</ay>
+%</ay&!mcite>
+% \end{macrocode}
+%
+% \changes{4.20}{2007 Apr 23}{Add citations with more than one author with \emph{et~al.}}
+% \changes{4.20}{2007 Apr 24}{Select number of authors before truncating}
+% The code for formating author--year citations with more than one author
+% before \emph{et al.} or selecting a number other than two for truncating,
+% is much the same as the \texttt{format.full.names} function.
+% \begin{macrocode}
+%<*ay&mcite>
+FUNCTION {format.lab.names}
+{'s :=
+ "" 't :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { s nameptr
+%<!jnrlab> "{vv~}{ll}" format.name$
+%<*jnrlab>
+%<!nm-rv&!nm-rvv&!nm-rvx&!nm-rvcx> "{vv~}{ll}{, jj}" format.name$
+%<nm-rv|nm-rvv|nm-rvx|nm-rvcx> "{vv~}{ll}{ jj}" format.name$
+%</jnrlab>
+%<lab&and-rm> cite.name.font
+ 't :=
+ nameptr #1 >
+ {
+%<mct-1> nameptr #2 =
+%<mct-2> nameptr #3 =
+%<mct-3> nameptr #4 =
+%<mct-4> nameptr #5 =
+%<mct-5> nameptr #6 =
+%<mct-x2> numnames #2 > and
+%<mct-x3> numnames #3 > and
+%<mct-x4> numnames #4 > and
+%<mct-x5> numnames #5 > and
+ { "others" 't :=
+ #1 'namesleft := }
+ 'skip$
+ if$
+ namesleft #1 >
+ { ", " * t * }
+ {
+ s nameptr "{ll}" format.name$ duplicate$ "others" =
+ { 't := }
+ { pop$ }
+ if$
+ t "others" =
+ {
+%<lab&!and-rm&(etal-it|etal-rm)> cite.name.font
+%<*!etal-it>
+%<lab&and-rm&!etal-rm> " " * bbl.etal cite.name.font *
+%<!lab|!and-rm|etal-rm> " " * bbl.etal *
+%</!etal-it>
+%<etal-it> " " * bbl.etal emphasize *
+%<lab&!and-rm&!(etal-it|etal-rm)> cite.name.font
+ }
+ {
+%<*!harnm>
+%<*!and-xcom>
+ numnames #2 >
+ { "," * }
+ 'skip$
+ if$
+%</!and-xcom>
+%<!amper> bbl.and
+%<amper> "\&"
+%</!harnm>
+%<harnm> "\harvardand{}"
+ space.word * t *
+ }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+%<*lab&!and-rm>
+ t "others" =
+ 'skip$
+ { cite.name.font }
+ if$
+%</lab&!and-rm>
+}
+
+%</ay&mcite>
% \end{macrocode}
% \end{macro}
%