Com base no labelalpha
estilo, defini um rótulo próprio do BibLaTeX, que consiste no nome completo do primeiro autor e na data da publicação. Porém, se o nome do autor for longo e a citação estiver próxima ao final das linhas, o rótulo será hifenizado. Um MWE se parece com isto:
\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}
Como posso dizer ao BibLaTeX para não hifenizar rótulos?
Responder1
No \AtEveryCitekey{\hyphenrules{nohyphenation}}
preâmbulo, a hifenização pode ser desabilitada para todas as chaves do BibLaTeX (o idioma nohyphenation
deve ser definido em babel
).
Responder2
Tentei a solução do Robinaut, mas não consegui funcionar com MikTeX 2.9
o Windows 10. Sempre recebi o seguinte erro:
Package babel Error: You haven't defined the language nohyphenation yet.
Também não consegui editar languages.ini
como sugeridoaqui.
No entanto, encontrei uma solução funcional. Se você der uma olhada, languages.ini
existem alguns idiomas sem hifenização (eles usam zerohyph.tex
como carregador). Com base nisso, você pode usar um destes idiomas (por exemplo, árabe):
\AtEveryCitekey{\hyphenrules{arabic}}