langsci / 177

Chinese version of the English text book on grammatical theory
7 stars 1 forks source link

Problem with "et al" citations #3207

Closed stefan11 closed 4 years ago

stefan11 commented 4 years ago

There is a problem with "et. al." It shows two authors instead of one + "et. al.". This has strange consequences since Bouma, Malouf, et. al. is actually longer than the full citation "Bouma, Malouf & Sag":

grafik

English GT and Chinese GT are both affected.

I guess some biblatex configuration in the class can fix this.

Glottotopia commented 4 years ago

why is the first one printed with three names? Can you please paste a MWE.

stefan11 commented 4 years ago

I used \citep* to get all names.

stefan11 commented 4 years ago

I found the reason. It is a feature, not a bug. There would be two identical Bouma et al. (2001), so it takes an unambiguous prefix. However, the outcome is longer than a full citation would be. Maybe I should file a bug report with biblatex/biber.

\documentclass{article}

\begin{filecontents}{ref.bib}

@article{BMS2001a, Author = {Gosse Bouma and Robert Malouf and Ivan A. Sag}, Doi = {10.1023/A:1006473306778}, Journal = {Natural Langauge \& Linguistic Theory}, Number = {1}, Pages = {1--65}, Title = {Satisfying Constraints on Extraction and Adjunction}, Volume = {19}, Year = {2001}}

@inproceedings{BvNM2001a, Address = {Amsterdam/New York, NY}, Author = {Gosse Bouma and Gertjan van Noord and Robert Malouf}, Booktitle = {Computational Linguistics in the {Netherlands} 2000: {Selected} Papers from the {Eleventh CLIN Meeting}}, Editor = {Walter Daelemans and Khalil Sima'an and Jorn Veenstra and Jakub Zavrel}, Number = {37}, Publisher = {Rodopi}, Series = {Language and Computers}, Title = {Alpino: Wide-coverage Computational Analysis of {Dutch}}, Year = {2001}} \end{filecontents}

\usepackage[ natbib=true, style=langsci-unified, citestyle=langsci-unified, datamodel=langsci, % add authauthor and autheditor as possible fields to bibtex entries %refsection=chapter, maxbibnames=99, uniquename=false, mincrossrefs=99, maxcitenames=2, isbn=false, autolang=hyphen, backend=biber, indexing=cite, ]{biblatex}

\makeatletter % fix \citep et.al. % unclear why it was overwritten, these are the definitions from blx-natbib.def \renewrobustcmd{\citet}{% \@ifstar {\AtNextCite{\AtEachCitekey{\defcounter{maxnames}{999}}}% \textcite} {\textcite}}

\renewrobustcmd*{\citep}{% \@ifstar {\AtNextCite{\AtEachCitekey{\defcounter{maxnames}{999}}}% \parencite} {\parencite}}

\renewrobustcmd*{\citealt}{% \@ifstar {\AtNextCite{% \def\nameyeardelim{\addspace}% \AtEachCitekey{\defcounter{maxnames}{999}}}% \orgcite} {\AtNextCite{\def\nameyeardelim{\addspace}}% \orgcite}}

\renewrobustcmd*{\citealp}{% \@ifstar {\AtNextCite{\AtEachCitekey{\defcounter{maxnames}{999}}}% \orgcite} {\orgcite}}

\let\citew\citet

\let\orgcite=\cite \let\cite=\citet % in order to prevent inconsistencies between \cite and \citet \makeatother

\addbibresource{ref.bib}

\begin{document}
Some languages show extraction path marking \citep*{BMS2001a}. \citet{BMS2001a} give a lot of
examples. And there is also \citet*{BvNM2001a}. They wrote about a lot of important things \citep{BvNM2001a}.

\printbibliography
\end{document}