![biblatex는 참고문헌에 "family=, familyi=" 등을 인쇄합니다.](https://rvso.com/image/400379/biblatex%EB%8A%94%20%EC%B0%B8%EA%B3%A0%EB%AC%B8%ED%97%8C%EC%97%90%20%22family%3D%2C%20familyi%3D%22%20%EB%93%B1%EC%9D%84%20%EC%9D%B8%EC%87%84%ED%95%A9%EB%8B%88%EB%8B%A4..png)
내 목표는 BiBLaTeX를 숫자 구성 스타일과 가족 제공/주어진 가족 방식으로 저자 이름을 정렬하고 모든 이름을 굵게 표시하는 것입니다. 내 MWE는 다음과 같습니다.
\documentclass{scrreprt}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage[
backend=biber,
style=numeric-comp,
sorting=none,
]{biblatex}
\addbibresource{test.bib}
\DeclareNameAlias{sortname}{family-given/given-family-bold}
\DeclareNameFormat{family-given/given-family-bold}{\mkbibbold{%
\ifnumequal{\value{listcount}}{1}
{\ifgiveninits
{\usebibmacro{name:family-given}
{\namepartfamily}
{\namepartgiveni}
{\namepartprefix}
{\namepartsuffix}}
{\usebibmacro{name:family-given}
{\namepartfamily}
{\namepartgiven}
{\namepartprefix}
{\namepartsuffix}}%
\ifboolexpe{%
test {\ifdefvoid\namepartgiven}
and
test {\ifdefvoid\namepartprefix}}
{}
{\usebibmacro{name:revsdelim}}}
{\ifgiveninits
{\usebibmacro{name:given-family}
{\namepartfamily}
{\namepartgiveni}
{\namepartprefix}
{\namepartsuffix}}
{\usebibmacro{name:given-family}
{\namepartfamily}
{\namepartgiven}
{\namepartprefix}
{\namepartsuffix}}}%
\usebibmacro{name:andothers}}}
\DeclareNameAlias{sortname}{given-family-bold}
\DeclareNameAlias{author}{given-family-bold}
\DeclareNameAlias{editor}{given-family-bold}
\DeclareNameAlias{translator}{given-family-bold}
\usepackage{filecontents}
\begin{filecontents}{test.bib}
@book{Doe86,
author = {Doe, John},
year = {1986},
title = {some book},
}
\end{filecontents}
\begin{document}
I'm citing \cite{Doe86}
\printbibliography
\end{document}
이상하게도 컴파일 빈도에 관계없이(라텍스와 바이버 모두) 다음과 같은 출력이 생성됩니다. 내가 도대체 뭘 잘못하고있는 겁니까?
답변1
현재 버전에서는 biblatex
이름 래퍼를 사용하여 이름에 굵은 글씨를 적용합니다. 혼합된 순서를 원하는 경우에도 family-given/given-family
이름 형식도 다시 정의해야 합니다(숫자 스타일의 기본값은 given-family
순서이기 때문입니다).
\documentclass{scrreprt}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage[
backend=biber,
style=numeric-comp,
sorting=none,
]{biblatex}
\DeclareNameAlias{sortname}{family-given/given-family}
\DeclareNameAlias{author}{sortname}
\DeclareNameAlias{editor}{sortname}
\DeclareNameAlias{translator}{sortname}
\DeclareNameWrapperFormat{sortname}{\mkbibbold{#1}}
\DeclareNameWrapperAlias{author}{sortname}
\DeclareNameWrapperAlias{editor}{sortname}
\DeclareNameWrapperAlias{translator}{sortname}
\addbibresource{biblatex-examples.bib}
\begin{document}
I'm citing \cite{sigfridsson,nussbaum}
\printbibliography
\end{document}
질문 코드의 문제점은 하나의 이름 형식( family-given/given-family-bold
)을 정의했다는 것입니다.사용된존재하지 않는 다른 형식( given-family-bold
). 존재하지 않는 형식으로 인해 이상한 출력이 발생합니다. 다음과 같이 재작업할 수 있습니다(그러나 저는 여전히 위의 솔루션을 선호합니다).
\documentclass{scrreprt}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage[
backend=biber,
style=numeric-comp,
sorting=none,
]{biblatex}
\DeclareNameFormat{family-given/given-family-bold}{%
\mkbibbold{%
\ifnumequal{\value{listcount}}{1}
{\ifgiveninits
{\usebibmacro{name:family-given}
{\namepartfamily}
{\namepartgiveni}
{\namepartprefix}
{\namepartsuffix}}
{\usebibmacro{name:family-given}
{\namepartfamily}
{\namepartgiven}
{\namepartprefix}
{\namepartsuffix}}%
\ifboolexpe{%
test {\ifdefvoid\namepartgiven}
and
test {\ifdefvoid\namepartprefix}}
{}
{\usebibmacro{name:revsdelim}}}
{\ifgiveninits
{\usebibmacro{name:given-family}
{\namepartfamily}
{\namepartgiveni}
{\namepartprefix}
{\namepartsuffix}}
{\usebibmacro{name:given-family}
{\namepartfamily}
{\namepartgiven}
{\namepartprefix}
{\namepartsuffix}}}%
\usebibmacro{name:andothers}}}
\DeclareNameAlias{sortname}{family-given/given-family-bold}
\DeclareNameAlias{author}{sortname}
\DeclareNameAlias{editor}{sortname}
\DeclareNameAlias{translator}{sortname}
\addbibresource{biblatex-examples.bib}
\begin{document}
I'm citing \cite{sigfridsson,nussbaum}
\printbibliography
\end{document}
출력은 동일합니다.