스타일 에 따라 labelalpha
첫 번째 저자의 이름과 출판 날짜로 구성된 BibLaTeX 라벨을 정의했습니다. 그러나 저자 이름이 길고 인용이 줄 끝 부분에 있으면 레이블에 하이픈이 추가됩니다. MWE는 다음과 같습니다.
\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}
BibLaTeX에서 라벨에 하이픈을 넣지 않도록 어떻게 알 수 있나요?
답변1
\AtEveryCitekey{\hyphenrules{nohyphenation}}
프리앰블을 사용하면 모든 BibLaTeX 키에 대해 하이픈 넣기를 비활성화할 수 있습니다(언어는 에서 nohyphenation
정의되어야 함 babel
).
답변2
Robinaut의 솔루션을 시도했지만 Windows 10에서는 작동하지 않았습니다 MikTeX 2.9
. 항상 다음과 같은 오류가 발생했습니다.
Package babel Error: You haven't defined the language nohyphenation yet.
저도 편집을 못했어요languages.ini
나는 또한 제안된 좋아요를여기.
그러나 나는 효과적인 해결책을 찾았습니다. 를 보면 languages.ini
하이픈이 없는 언어도 있습니다(로더로 사용함 zerohyph.tex
). 이를 바탕으로 다음 언어(예: 아랍어) 중 하나를 사용할 수 있습니다.
\AtEveryCitekey{\hyphenrules{arabic}}