
Meine Frage ist einfach: Es ist das Äquivalent vondiese Frage habe ich vor einiger Zeit gestellt, aber jetzt muss ich Bibtex und nicht Biblatex verwenden, hauptsächlich, um meine Dateien einfach auf arXiv stellen zu können und weniger Schwierigkeiten beim Teilen meiner Tex-Dateien mit anderen Leuten zu haben. Genauer gesagt möchte ich, dass die Zitate im Bibtex-Alpha-Stil die vollständige Autorenliste anzeigen. Dies ist kein Problem, wenn die Autorenliste für die jeweilige Veröffentlichung weniger als oder gleich 4 Autoren enthält. Wenn die Autorenliste jedoch mehr als 3 Autoren enthält, wird das Zitat auf den Nachnamen der ersten drei Autoren und ein „+“-Zeichen gekürzt.
Betrachten Sie das Beispiel:
\documentclass[11pt]{article}
\usepackage{cite}
\begin{document}
A citation \cite{cita}.
\bibliography{trial2}{}
\bibliographystyle{alpha}
\end{document}
wobei trial2.bib die BIB-Datei ist
@article {cita,
AUTHOR = {Add, Abel and Bc, Bobby and Ca, Carla and De, Daniela and Edd, Emilio},
TITLE = {Article},
JOURNAL = {Some},
FJOURNAL = {Any},
VOLUME = {1},
YEAR = {2018},
NUMBER = {1},
PAGES = {1--10},
}
Die Ausgabe enthält das Zitat „[ABC+18]“. Ich möchte, dass das Zitat „[ABCDE18]“ lautet. Jede Hilfe ist sehr willkommen.
Falls es überhaupt von Bedeutung ist: Ich arbeite an TeXStudio unter Windows 10 und verwende MikTeX.
Antwort1
Das Verfahren zum Generieren dieser Etiketten ist in der .bst
Datei codiert. alpha.bst
Es gibt keine Möglichkeit, ein von ihm erstelltes Etikett manuell zu überschreiben. Die einzige Möglichkeit, dies zu ändern, ohne andere Dinge zu ändern, besteht also darin, die Datei zu ändern . Dies würde die Zusammenarbeit dann umständlicher machen, da Sie Ihre geänderte Datei auch .bst
verteilen müssen ..bst
Wie auch immer, Sie können alpha.bst
wie folgt ändern
Suchen Sie
alpha.bst
auf Ihrem Computer nach der Datei (Sie können siekpsewhich alpha.bst
über die Befehlszeile ermitteln, um den Speicherort der Datei zu ermitteln) oder laden Sie sie alternativ über CTAN herunter:http://mirrors.ctan.org/biblio/bibtex/base/alpha.bstKopieren Sie es
alpha.bst
an einen Ort, wo LaTeX es finden kann (https://texfaq.org/FAQ-inst-wlcf, das Dokumentverzeichnis reicht vollkommen aus) undumbenennenes zu sagen,alpha-maxalphanames.bst
. Beachten Sie, dass die LizenzerfordertSie benennen die Datei um, wenn Sie sie später weitergeben.Öffnen Sie die umbenannte Datei
alpha-maxalphanames.bst
und ersetzen Sie den CodeblockFUNCTION {format.lab.names} { 's := s num.names$ 'numnames := numnames #1 > { numnames #4 > { #3 'namesleft := } { numnames 'namesleft := } if$ #1 'nameptr := "" { namesleft #0 > } { nameptr numnames = { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = { "{\etalchar{+}}" * #1 'et.al.char.used := } { s nameptr "{v{}}{l{}}" format.name$ * } if$ } { s nameptr "{v{}}{l{}}" format.name$ * } if$ nameptr #1 + 'nameptr := namesleft #1 - 'namesleft := } while$ numnames #4 > { "{\etalchar{+}}" * #1 'et.al.char.used := } 'skip$ if$ } { s #1 "{v{}}{l{}}" format.name$ duplicate$ text.length$ #2 < { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ } 'skip$ if$ } if$ }
mit
FUNCTION {format.lab.names} { 's := s num.names$ 'numnames := numnames #1 > { numnames 'namesleft := #1 'nameptr := "" { namesleft #0 > } { nameptr numnames = { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = { "{\etalchar{+}}" * #1 'et.al.char.used := } { s nameptr "{v{}}{l{}}" format.name$ * } if$ } { s nameptr "{v{}}{l{}}" format.name$ * } if$ nameptr #1 + 'nameptr := namesleft #1 - 'namesleft := } while$ } { s #1 "{v{}}{l{}}" format.name$ duplicate$ text.length$ #2 < { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ } 'skip$ if$ } if$ }
Ersetzen Sie insbesondere den ersten
numnames #4 > {<true>} {<false>} if$
Block nur durch den Inhalt des<false>
Zweigs und entfernen Sie den zweitennumnames #4 > {<true>} {<false>} if$
Block vollständig.Fügen Sie oben in der Datei eine kurze Notiz zu den Änderungen mit Ihrem Namen und dem aktuellen Datum hinzu.
Speicher die Datei.
Verwenden Sie in Ihrem Dokument
\bibliographystyle{alpha-maxalphanames}
anstelle von .\bibliographystyle{alpha}
alpha-maxalphanames
Sie erhalten das ofenfertigehttps://gist.github.com/moewew/d802ea87f432f97fc428dbc9d54e64c1, das diff
zu alpha.bst
ist
--- alpha.bst 2019-12-21 08:15:40.781232500 +0100
+++ alpha-maxalphanames.bst 2019-12-21 08:19:48.505159500 +0100
@@ -1,3 +1,14 @@
+%% alpha-maxalphanames.bst
+%% 2019-12-21 MW
+%% https://tex.stackexchange.com/q/521246/35864
+%% modification of alpha.bst
+%%
+%% small change to format.lab.names:
+%% always set numnames 'namesleft :=
+%% remove both numnames #4 > tests
+%%
+%% original copyright header follows
+%%
% BibTeX standard bibliography style `alpha'
% Version 0.99b (8-Dec-10 release) for BibTeX versions 0.99a or later.
% Copyright (C) 1984, 1985, 1988, 2010 Howard Trickey and Oren Patashnik.
@@ -935,10 +946,7 @@
{ 's :=
s num.names$ 'numnames :=
numnames #1 >
- { numnames #4 >
- { #3 'namesleft := }
- { numnames 'namesleft := }
- if$
+ { numnames 'namesleft :=
#1 'nameptr :=
""
{ namesleft #0 > }
@@ -956,12 +964,6 @@
namesleft #1 - 'namesleft :=
}
while$
- numnames #4 >
- { "{\etalchar{+}}" *
- #1 'et.al.char.used :=
- }
- 'skip$
- if$
}
{ s #1 "{v{}}{l{}}" format.name$
duplicate$ text.length$ #2 <
Damit ist folgendes MWE
\documentclass[11pt]{article}
\usepackage{cite}
\begin{filecontents}{\jobname.bib}
@article {cita,
AUTHOR = {Add, Abel and Bc, Bobby and Ca, Carla and De, Daniela and Edd, Emilio},
TITLE = {Article},
JOURNAL = {Some},
FJOURNAL = {Any},
VOLUME = {1},
YEAR = {2018},
NUMBER = {1},
PAGES = {1--10},
}
\end{filecontents}
\begin{document}
A citation \cite{cita}.
\bibliography{\jobname}
\bibliographystyle{alpha-maxalphanames}
\end{document}
produziert