biblatexex 턱받이 라벨과 접두사 번호 사이에 하이픈 사용을 금지합니다.

biblatexex 턱받이 라벨과 접두사 번호 사이에 하이픈 사용을 금지합니다.

biblatex에서 턱받이 라벨에 접두사를 사용하는 경우 특히 긴 접두사의 경우 접두사와 실제 턱받이 라벨 사이에 하이픈이 자주 사용됩니다.

여기에 이미지 설명을 입력하세요

이것을 어떻게 피할 수 있습니까?

여기에 제공되는 솔루션아무런 효과가 없습니다. 확실해대부분의 경우에는 문제가 해결되지만 항상 사용하는 것은 아니며 더 안전한 솔루션을 원합니다.

나도 알고 있지만 \mbox{...}모든 인용 명령을 거기에 수동으로 입력하고 싶지는 않습니다.

\begin{filecontents}{references.bib}
@InProceedings{Baader1989,
  Title                    = {Direct self control of inverter-fed induction machine, a basis for speed control without speed-measurement},
  Author                   = {Baader, U. and Depenbrock, M. and Gierse, Georg},
  Booktitle                = {Industry Applications Society Annual Meeting, 1989., Conference Record of the 1989 IEEE},
  Year                     = {1989},
  Month                    = {Oct},
  Pages                    = {486-492 vol.1},
}
\end{filecontents}

\documentclass{article}

\usepackage[style=alphabetic,%
            backend=biber,
            maxnames=99,
            maxalphanames=1,    
            backref=true,
            doi=false,isbn=false,url=false,
            backref=false,
            ]{biblatex}
\renewcommand*{\labelalphaothers}{}

\bibliography{references.bib} 

\begin{document}
\noindent This is a looong sentence which will lead to hyphenation in the bib label:  \cite{Baader1989}
\printbibliography[prefixnumbers = P-]
\end{document}

답변1

prefixnumbers최신 버전의 에서 더 이상 지원되지 않습니다 biblatex.

\begin{filecontents}{\jobname.bib}
@InProceedings{Baader1989,
  Title                    = {Direct self control of inverter-fed induction machine, a basis for speed control without speed-measurement},
  Author                   = {Baader, U. and Depenbrock, M. and Gierse, Georg},
  Booktitle                = {Industry Applications Society Annual Meeting, 1989., Conference Record of the 1989 IEEE},
  Year                     = {1989},
  Month                    = {Oct},
  Pages                    = {486-492 vol.1},
}
\end{filecontents}

\documentclass{article}

\usepackage[style=alphabetic,%
            backend=biber,
            maxnames=99,
            maxalphanames=1,    
            backref=true,
            doi=false,isbn=false,url=false,
            backref=false,
            ]{biblatex}
\renewcommand*{\labelalphaothers}{}

\addbibresource{\jobname.bib}

\newrobustcmd{\safehyphen}{\ifincsname-\else\mbox{-}\fi}

\begin{document}
\newrefcontext[labelprefix=P\safehyphen]

\noindent This is a looong sentence which will lead to 
hyphenation in the bib label:  \cite{Baader1989}

\printbibliography

\end{document}

나는 동일한 전략이 기존 방식에도 적용될 것이라고 믿습니다. 문제는 접두사가 두 가지 별개의 장소, 즉 인쇄용과 제어 시퀀스 이름 형성용으로 사용된다는 것입니다. 따라서 여기에 매크로를 추가하는 것은 트릭을 사용하지 않는 한 작동하지 않습니다 \ifincsname.

여기에 이미지 설명을 입력하세요

참고: 저는 TeX Live 2014로 테스트했고

\newrobustcmd{\safehyphen}{\ifincsname-\else\mbox{-}\fi}

서문에 함께

\printbibliography[prefixnumbers = P\safehyphen]

공장.

관련 정보