Basierend auf dem labelalpha
Stil habe ich mein eigenes BibLaTeX-Label definiert, das aus dem vollständigen Namen des ersten Autors und dem Datum der Veröffentlichung besteht. Wenn der Name des Autors jedoch lang ist und das Zitat am Ende der Zeilen steht, wird das Label mit Bindestrich versehen. Ein MWE sieht folgendermaßen aus:
\documentclass[%
12pt,
english
paper = A4
]{scrbook}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{Verylongname_74,
author = {Verylongname, Tom S. and Longname, Bob C.},
year = {1974},
title = {The economics of brushing teeth},
journal = {Journal of Political Economy},
volume = {82},
number = {4},
pages = {887--891},
}
\end{filecontents}
\usepackage[%
citestyle = alphabetic,
labelalpha = true,
defernumbers = true,
backend = biber,
maxalphanames = 1,
firstinits = true
]{biblatex}%
% own BibLaTeX label definition -------------------------------
\renewcommand*{\labelalphaothers}{+}
\DeclareLabelalphaTemplate{
\labelelement{
\field[final]{shorthand}
\field[compound=false]{labelname}
\field{label}
}
\labelelement{
\literal{\addnbthinspace}
}
\labelelement{
\field[strwidth=2,strside=right]{year}
}
}
\DeclareFieldFormat{labelalphawidth}{\mkbibbrackets{#1}}
% avoid hyphenation, not working!
\DeclareFieldFormat{labelalpha}{\nohyphenation #1}
%--------------------------------------------------------------
\addbibresource{\jobname.bib}
\begin{document}
This is a line of text. This is a line of text. An example citation here is
\cite{Verylongname_74}. The BibLaTeX label, which is the
author's name, is hyphenated!
\end{document}
Wie kann ich BibLaTeX anweisen, Beschriftungen nicht zu trennen?
Antwort1
Mit \AtEveryCitekey{\hyphenrules{nohyphenation}}
in der Präambel kann die Silbentrennung für alle BibLaTeX-Schlüssel deaktiviert werden (die Sprache nohyphenation
muss in definiert sein babel
).
Antwort2
Ich habe die Lösung von Robinaut ausprobiert, aber sie hat unter Windows 10 nicht funktioniert. MikTeX 2.9
Ich habe immer die folgende Fehlermeldung erhalten:
Package babel Error: You haven't defined the language nohyphenation yet.
Ich habe es auch nicht geschafft, den languages.ini
vorgeschlagenen Like zu bearbeitenHier.
Ich habe jedoch eine funktionierende Lösung gefunden. Wenn Sie einen Blick darauf werfen, languages.ini
finden Sie einige Sprachen ohne Silbentrennung (die zerohyph.tex
als Loader verwendet werden). Basierend darauf können Sie eine dieser Sprachen verwenden (z. B. Arabisch):
\AtEveryCitekey{\hyphenrules{arabic}}