BibLaTeX 라벨에 하이픈 넣기 방지

BibLaTeX 라벨에 하이픈 넣기 방지

스타일 에 따라 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}}

관련 정보