biblatex는 턱받이의 각 요소를 다른 색상으로 색상 지정합니다.

biblatex는 턱받이의 각 요소를 다른 색상으로 색상 지정합니다.

나는 biblatex (xelatex와 함께)를 사용하고 있습니다. 더 구체적으로 말하면 Zotero를 사용한 다음 Zotero에서 bib 형식으로 내보냅니다.

모든 것이 잘 작동하지만 참고문헌이 검은색으로만 표시됩니다. 물론 그것은 정상적인 동작입니다... 그러나 제 목표는 '볼륨'과 같은 턱받이 요소를 잊지 않았는지 확인하기 위해 테스트 목적으로 각 턱받이 요소에 다르게 색상을 지정하는 것입니다. 예를 들어 다음과 같은 색상 코드를 적용하고 싶습니다.

    volume -> dark blue
    pages -> turqoise
    url -> brown
    title -> red
    isbn -> yellow
    booktitle -> pink
    publisher -> orange
    author -> grey
    date -> black

이것이 가능합니까?

답변1

를 사용하여 필드가 표시되는 방식을 변경할 수 있습니다 \DeclareFieldFormat.

\DeclareFieldFormat따라서 관련 필드를 재정의하기만 하면 됩니다 .

몇 가지 주의사항이 있지만,

  1. 모든 '필드'가 그런 것은 아닙니다.필드. biblatex필드, 목록 및 이름 목록을 알고 있습니다. 이 세 가지 유형은 서로 다른 \Declare...Format지시어를 사용합니다. 그래서 당신은 당신의 분야의 유형을 알아야합니다

  2. 완전히 재정의하지 않으려면 원래 정의를 알아야 합니다. 여기서는 평소처럼 이탤릭체와 따옴표를 원한다고 가정하고 색상만 변경하면 됩니다.

    • xpatch'를 사용하여 필드 형식을 패치하는 것이 가능하더라도 \xpretofieldformat특정 유형이 특별하게 처리되는지 알아야 합니다. 일반 형식이나 유형별 형식만 패치할 수 있지만 동시에 둘 다 패치할 수는 없기 때문입니다.

표준 스타일의 경우 대부분의 형식 지시문은 에서 찾을 수 있습니다 biblatex.def.

필드의 경우 이는 필드 검색, 복사 및 정의에 명령 \DeclareFieldFormat추가 만큼 쉬워야 합니다. 동일한 필드에 대해 \color{...}여러 유형별 가 있을 수 있다는 점을 잊지 마십시오 \DeclareFieldFormat(표준 스타일에서는 서로 옆에서 찾아야 합니다).

목록의 경우 비슷한 작업을 수행하지만 를 검색합니다 \DeclareListFormat. ( publisher아래를 참조하세요.)

이름은 더 복잡합니다. 먼저 색상을 지정하려는 이름이 어떤 이름 형식을 사용하는지 알아내야 합니다. 의 author형식을 사용합니다 . 그리고 로 정의됩니다 . 그래서 우리는 의 정의를 복사하고 , 그것을 호출하고 , 추가 하고 지금부터 존재하라고 말합니다 .sortnamestyle=authoryearsortnamefamily-given/given-familyfamily-given/given-familycoloured:family-given/given-family\colour{...}sortnamecoloured:family-given/given-family

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[style=authoryear, backend=biber]{biblatex}
\addbibresource{biblatex-examples.bib}

\usepackage[svgnames]{xcolor}

\DeclareFieldFormat{volume}{\color{DarkBlue}\bibstring{volume}~#1}% volume of a book
\DeclareFieldFormat[article,periodical]{volume}{\color{DarkBlue}#1}% volume of a journal

\DeclareFieldFormat{pages}{\color{Turquoise}\mkpageprefix[bookpagination]{#1}}

\DeclareFieldFormat{url}{\mkbibacro{URL}\addcolon\space\color{Brown}\url{#1}}

\DeclareFieldFormat{title}{\color{Red}\mkbibemph{#1}}
\DeclareFieldFormat
  [article,inbook,incollection,inproceedings,patent,thesis,unpublished]
  {title}{\color{Red}\mkbibquote{#1\isdot}}
\DeclareFieldFormat
  [suppbook,suppcollection,suppperiodical]
  {title}{\color{Red}#1}

\DeclareFieldFormat{isbn}{\mkbibacro{ISBN}\addcolon\space \color{Yellow}#1}

\DeclareFieldFormat{booktitle}{\color{Pink}\mkbibemph{#1}}

\DeclareListFormat{publisher}{%
  \color{Orange}%
  \usebibmacro{list:delim}{#1}%
  #1\isdot
  \usebibmacro{list:andothers}}

\DeclareNameFormat{coloured:family-given/given-family}{%
  \color{Grey}%
  \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}{coloured:family-given/given-family}

\begin{document}
\cite{sigfridsson,vizedom:related,westfahl:space,worman,geer,nussbaum,ctan}
\printbibliography
\end{document}

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

--validate-datamodel항목이 데이터 모델을 준수하는지 확인하는 데 도움이 되도록 컴파일할 때 Biber 옵션을 사용할 수 있습니다 .

관련 정보