
私は biblatex (xelatex 付き) を使用しています。具体的には、Zotero を使用して、Zotero から bib 形式にエクスポートします。
すべて正常に動作しますが、参考文献は黒色のみです。もちろん、これは正常な動作です...ただし、私の目的は、テスト目的で各 bib 要素を異なる色にして、'volume' などの bib の要素を忘れていないことを確認することです。たとえば、次のカラー コードを適用します。
volume -> dark blue
pages -> turqoise
url -> brown
title -> red
isbn -> yellow
booktitle -> pink
publisher -> orange
author -> grey
date -> black
これは可能ですか?
答え1
フィールドの表示方法は で変更できます\DeclareFieldFormat
。
\DeclareFieldFormat
したがって、関連するフィールドを再定義するだけです。
ただし、いくつか注意点があります。
すべての「分野」が田畑.
biblatex
フィールド、リスト、名前リストを認識できます。これら3つのタイプは異なる\Declare...Format
ディレクティブを使用します。したがって、フィールドのタイプを知る必要があります。完全に上書きしたくない場合は、元の定義を知っておく必要があります。ここでは、通常どおり斜体と引用符を使用し、色のみを変更することを想定しています。
xpatch
フィールド形式を'sを使用してパッチすることは可能ですが\xpretofieldformat
、特別な処理が必要な型があるかどうかを知る必要があります。パッチできるのは一般的な形式か型固有の形式のみであり、両方を同時にパッチすることはできないためです。
標準スタイルの場合、ほとんどの書式設定ディレクティブは にありますbiblatex.def
。
フィールドの場合、これはフィールドを検索し、 をコピーして定義にコマンド\DeclareFieldFormat
を追加するのと同じくらい簡単です。同じフィールドに複数のタイプ固有の が存在する可能性があることを忘れないでください (標準スタイルでは、それらは互いに隣り合って表示されます)。\color{...}
\DeclareFieldFormat
リストの場合も同様のことを行いますが、 を検索します\DeclareListFormat
。(publisher
下記参照)
名前はより複雑です。まず、色付けしたい名前がどの名前形式を使用しているかを調べる必要があります。は のauthor
形式を使用します。また、は として定義されます。したがって、 の定義をコピーしてと呼び、 を追加して、今後は となるように指示します。sortname
style=authoryear
sortname
family-given/given-family
family-given/given-family
coloured:family-given/given-family
\colour{...}
sortname
coloured: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}
コンパイル時にBiber オプションを使用する--validate-datamodel
と、エントリがデータ モデルに準拠しているかどうかを確認できます。