참고문헌 항목을 biblatex
색인으로 보내면 접두어가 대문자로 표시되는 경우가 종종 있습니다. 예를 들어 접두사가 붙은 네덜란드 이름봉고차또는 접두사가 붙은 프랑스어 이름드때로는 인덱스에서 대문자로 표시되지 않습니다. 또한 조금 더 특이할 수도 있지만 여전히 관련성이 있을 수 있습니다. 저는 최근에 자신의 이름을 소문자로만 인용하기를 원하는 한 연구원에 대해 알게 되었습니다(저는 이것이 SocSci 어딘가에 있을 것이라고 생각합니다).
MWE:
\begin{filecontents}{test.bib}
@misc{vanTrijp2013,
author = {van Trijp, Remi},
date = {2013},
title = {A Comparison between approach A and B},
}
\end{filecontents}
\documentclass{article}
\usepackage[indexing=cite,style=authoryear,useprefix=true]{biblatex}
\addbibresource{test.bib}
\makeindex
\begin{document}
\cite{vanTrijp2013}
\end{document}
그러면 파일에 다음 항목이 생성됩니다 .dx
.
\indexentry{van Trijp, Remi@\MakeCapital {van} Trijp, Remi}{1}
그리고 이것은 색인 항목을 생성합니다반 트립, 레미, 하지만반 트립, 레미선호됩니다. \MakeCapital
색인의 항목 정렬을 혼동하지 않고 선택 사항이기를 원합니다 .
문제는 가 하드 코딩된 \mkbibindexname
from 과 관련될 수 있습니다.biblatex.def
\MakeCapital
가능한 해결 방법은 을 사용하여 정의에서 etoolbox
간단히 삭제하는 것 입니다.\MakeCapital
\patchcmd{\mkbibindexname}{\ifdefvoid{#3}{}{\MakeCapital{#3} }}{\ifdefvoid{#3}{}{#3 }}{}{}
하지만 이런 식으로 패키지 코드를 변경하는 것은 지속 가능한 솔루션이라고 생각하지 않습니다. 이를 수행하는 더 좋은 방법을 알고 있습니까?
답변1
실제 정의가 \mkbibindexname
다소 어려워 보이지만 사용자는~이다생성된 출력이 마음에 들지 않으면 해당 매크로를 변경해야 합니다. 따라서 제안하신 대로 매크로를 패치하는 것이 완벽할 것입니다. 매크로를 패치하는 것이 나은지 아니면 재정의하는 것이 더 나은지에 대한 일반적인 질문이 있습니다(예를 참조하십시오).Biblatex의 bibmacros, 참고문헌 드라이버, 형식 - 패치 또는 재정의?) 그리고 \mkbibindexname
저와 같은 '작은' 매크로의 경우 일반적으로 패치 대신 경로 재정의를 선호하지만 이는 개인 취향에 달려 있습니다.
이 응용 프로그램의 경우 문제의 매크로를 다음과 같이 재정의할 수 있습니다.
\documentclass{article}
\usepackage[indexing=cite,style=authoryear,useprefix=true]{biblatex}
\usepackage{makeidx}
\makeatletter
\renewcommand*{\mkbibindexname}[4]{%
\ifuseprefix
{\ifdefvoid{#3}{}{#3 }%
\@firstofone #1% remove spurious braces
\ifdefvoid{#4}{}{ #4}%
\ifdefvoid{#2}{}{, #2}}
{\@firstofone #1% remove spurious braces
\ifdefvoid{#4}{}{ #4}%
\ifboolexpe{%
test {\ifdefvoid{#2}}
and
test {\ifdefvoid{#3}}}
{}
{,}%
\ifdefvoid{#2}{}{ #2}%
\ifdefvoid{#3}{}{ #3}}}
\makeatother
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@misc{vanTrijp2013,
author = {van Trijp, Remi},
date = {2013},
title = {A Comparison between approach A and B},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\makeindex
\begin{document}
\cite{vanTrijp2013}
\printindex
\end{document}
특정 옵션이 설정된 경우 이름에 선택적으로 적용하는 것도 가능해야 하지만, 그런 다음 이에 대해 \MakeCapital
어떻게 알리고 싶은지 결정해야 합니다 .biblatex