给出的解决方案这个问题关于如何使用 选项引用东亚语言项目biblatex-chicago
的方法非常好。但是,当使用(括号引用)notes
而不是(=脚注中的参考文献,无论是缩写还是完整长度)时,它不起作用。问题在于 如何在具有相同姓氏、名字和 CJK 脚本名称形式的作者之间消除歧义。什么notes
author-date
biblatex-chicago
biblatex-chicago
消除歧义的方法是将名字的首字母添加到姓氏前面,将 CJK 脚本形式的第一个字符放在名字后面。理想情况下,需要的是消除歧义,如果只有姓氏相同,则打印{姓氏} {名字} {日期}或者,如果姓氏和名字相同,但不是 CJK 脚本格式的姓名,则打印{姓氏} {名字} {中日韩文字体姓名} {日期}。
MWE 对上述问题的解决方案包括:
\documentclass[utf8,12pt,a4paper,oneside]{article}
\usepackage{setspace}
\usepackage{xltxtra}
\usepackage[fallback]{xeCJK}
\usepackage{xunicode-addon}
\usepackage{fontspec}
\defaultfontfeatures{Ligatures=TeX}
\newcommand{\mainfont}[0]{Linux Libertine O}
\setmainfont[Ligatures={Required,Contextual,Common,TeX},Contextuals={Alternate},Numbers={OldStyle}]{\mainfont}
\newcommand{\mainfontCJK}[0]{HanaMinA}\setCJKmainfont[Scale=0.9]{\mainfontCJK}
\setCJKfallbackfamilyfont{\CJKrmdefault}[Scale=0.9]
{NanumMyeongjo}
\XeTeXlinebreaklocale "zh"
\XeTeXlinebreakskip = 0pt plus 1pt
\usepackage[bibencoding=utf8,idemtracker=constrict,loccittracker=constrict,compresspages,longcrossref=false,booklongxref=true,authordate,cmsdate=both,strict,isbn=false,backend=biber,hyperref=false,mincrossrefs=2]{biblatex-chicago}
%Enabling CJK names (http://tex.stackexchange.com/questions/320693/cjk-bibliography-problem-biblatex-chicago/320738#320738 ):
\forcsvlist{\listadd\nameaffixlist}{Junior,Senior}
\newcommand{\ifnameaffix}[1]{%
\ifboolexpr{ test {\ifrmnum{#1}} or test {\xifinlist{#1}{\nameaffixlist}} }}
% Based on definitions from biblatex.def
\newbibmacro*{name:cjk}[3]{%
\usebibmacro{name:delim}{#2#3#1}%
\usebibmacro{name:hook}{#2#3#1}%
\mkbibnamefamily{#1}%
\ifdefvoid{#2}{}{\bibnamedelimd\mkbibnamegiven{#2}}%
\ifdefvoid{#3}{}{\bibnamedelimd\mkbibnamesuffix{#3}}}
\DeclareNameFormat{given-family}{%
\ifboolexpr{ test {\ifdefvoid{\namepartsuffix}} or test {\ifnameaffix{\namepartsuffix}} }
{\ifgiveninits
{\usebibmacro{name:given-family}
{\namepartfamily}
{\namepartgiveni}
{\namepartprefix}
{\namepartsuffix}}
{\usebibmacro{name:given-family}
{\namepartfamily}
{\namepartgiven}
{\namepartprefix}
{\namepartsuffix}}}
{\usebibmacro{name:cjk}{\namepartfamily}{\namepartgiven}{\namepartsuffix}}%
\usebibmacro{name:andothers}}
\DeclareNameFormat{family-given}{%
\ifboolexpr{ test {\ifdefvoid{\namepartsuffix}} or test {\ifnameaffix{\namepartsuffix}} }
{\ifgiveninits
{\usebibmacro{name:family-given}
{\namepartfamily}
{\namepartgiveni}
{\namepartprefix}
{\namepartsuffix}}
{\usebibmacro{name:family-given}
{\namepartfamily}
{\namepartgiven}
{\namepartprefix}
{\namepartsuffix}}}
{\usebibmacro{name:cjk}{\namepartfamily}{\namepartgiven}{\namepartsuffix}}%
\usebibmacro{name:andothers}}
\DeclareNameFormat{family-given/given-family}{%
\ifboolexpr{ test {\ifdefvoid{\namepartsuffix}} or test {\ifnameaffix{\namepartsuffix}} }
{\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:cjk}{\namepartfamily}{\namepartgiven}{\namepartsuffix}}%
\usebibmacro{name:andothers}}
% Based on definitions from biblatex-chicago cbx
\DeclareFieldFormat[book]{title}{%
\mkbibemph{#1}%
\iffieldundef{titleaddon}{\isdot}{\nopunct}}
\DeclareFieldFormat{booktitle}{%
\mkbibemph{#1}%
\iffieldundef{booktitleaddon}{}{\nopunct}}
\DeclareFieldFormat{maintitle}{%
\mkbibemph{#1}%
\iffieldundef{maintitleaddon}{}{\nopunct}}
\DeclareFieldFormat[article]{title}{%
\iffieldundef{title}{}{\mkbibquote{#1}}%
\iffieldundef{titleaddon}{\isdot}{\nopunct}}
%Addition for functionality with inbook and bookinbook etc:
\DeclareFieldFormat[inbook]{title}{%
\iffieldundef{title}{}{\mkbibquote{#1}}%
\iffieldundef{titleaddon}{\isdot}{\nopunct}}
\DeclareFieldFormat[bookinbook]{title}{%
\iffieldundef{title}{}{\mkbibquote{#1}}%
\iffieldundef{titleaddon}{\isdot}{\nopunct}}
\DeclareFieldFormat[unpublished]{title}{%
\iffieldundef{title}{}{\mkbibquote{#1}}%
\iffieldundef{titleaddon}{\isdot}{\nopunct}}
\DeclareFieldFormat[thesis]{title}{%
\iffieldundef{title}{}{\mkbibquote{#1}}%
\iffieldundef{titleaddon}{\isdot}{\nopunct}}
%This makes translation brackets into parentheses:
\DeclareFieldFormat{usere}{\mkbibparens{#1}}
\begin{filecontents}{bibliography.bib}
@book{Book1,
title = {Shuming},
titleaddon = {書名},
author = {Zhang, 章學成, Xuecheng},
location = {Beijing},
publisher = {Zhonghua Shuju},
date = {2017},
}
@book{Book2,
title = {Shuming er},
titleaddon = {書名二},
author = {Zhang, 張學成, Xuecheng},
location = {Shanghai},
publisher = {Shangwu Yinshuguan},
date = {2016},
}
@book{Book3,
title = {Sŏmyŏng},
titleaddon = {書名},
author = {Zhang, 장학성, Haksŏng},
location = {Shanghai},
publisher = {Shangwu Yinshuguan},
date = {2016},
}
\end{filecontents}
\addbibresource{bibliography.bib}
\begin{document}
\parencite{Book1} \parencite{Book2} \parencite{Book3}
\printbibliography
\end{document}
韩语条目尤其有趣,因为它只采用了韩语音节的第一个字谜(ㅈ来自장),而这在韩语中从未见过。
注 1:我针对此问题提出了一些问题,参考了较早版本的biblatex
:这里(回答得非常好)和这里(未回答)。
注 2:链接至HanaMin 字体。
答案1
biblatex
3.8/Biber 2.8 允许您完全自定义unqiuename
功能。请参阅https://github.com/plk/biblatex/issues/623进行技术讨论。93-nameparts.tex
对新功能进行了扩展讨论。
其要点是,虽然之前的uniquename
信息是基于given
和family
名称部分,但现在可以从任何定义的名称部分生成。因此,我们也可以使用名称的 CJK 部分来消除歧义。
输入和许多技术细节如下芝加哥风格的 CJK 文献引用 #2。但由于 CJK 名称现在明确标记为nametemplates=cjk
,因此名称检测不是通过检查 CJK 部分是否定义来进行,而是通过\ifsortingnamekeytemplatename
和来进行\ifuniquenametemplatename
。
代码中有趣的新部分是
\DeclareUniquenameTemplate[cjk]{
\namepart[base=true]{family}
\namepart[disambiguation=full]{given}
\namepart[disambiguation=full]{cjk}
}
\DeclareNamehashTemplate[cjk]{
\namepart[hashscope=full]{family}
\namepart[hashscope=full]{given}
\namepart[hashscope=full]{cjk}
}
定义 CJK 唯一名称和哈希方案,该方案cjk
也尊重名称的一部分,并且不会缩写given
或cjk
部分。并且
\newbibmacro{labelname:cjk}{%
\iffieldequalstr{uniquepart}{base}%
{\usebibmacro{name:cjk}
{\namepartfamily}
{\empty}
{\empty}}
{\iffieldequalstr{uniquepart}{given}%
{\usebibmacro{name:cjk}
{\namepartfamily}
{\namepartgiven}
{\empty}}
{\usebibmacro{name:cjk}
{\namepartfamily}
{\namepartgiven}
{\namepartcjk}}}}
\DeclareNameFormat{labelname}{%
\ifuniquenametemplatename{cjk}
{\usebibmacro{labelname:cjk}}
{\usebibmacro{labelname:western}}%
\usebibmacro{name:andothers}}
对于labelname
。根据该uniquepart
值,宏决定需要打印多少名称。
\documentclass[a4paper]{article}
\usepackage{fontspec}
\setmainfont{Linux Libertine O}
\setsansfont{Linux Biolinum O}
\usepackage[fallback]{xeCJK}
\setCJKmainfont{Malgun Gothic}
\usepackage{filecontents}
\begin{filecontents*}{chicago-authordate.dbx}
\ProvidesFile{chicago-authordate.dbx}[2016/07/24 extended name format for biblatex]
\DeclareDatamodelConstant[type=list]{nameparts}{prefix,family,suffix,given,cjk}
\end{filecontents*}
\usepackage[authordate,backend=biber]{biblatex-chicago}
\DeclareSortingNamekeyTemplate[cjk]{
\keypart{
\namepart{family}
}
\keypart{
\namepart{given}
}
\keypart{
\namepart{cjk}
}
}
\DeclareUniquenameTemplate[cjk]{
\namepart[base=true]{family}
\namepart[disambiguation=full]{given}
\namepart[disambiguation=full]{cjk}
}
\DeclareNamehashTemplate[cjk]{
\namepart[hashscope=full]{family}
\namepart[hashscope=full]{given}
\namepart[hashscope=full]{cjk}
}
\newbibmacro*{name:cjk}[3]{%
\usebibmacro{name:delim}{#2#3#1}%
\usebibmacro{name:hook}{#2#3#1}%
\mkbibnamefamily{#1}%
\ifdefvoid{#2}{}{\bibnamedelimd\mkbibnamegiven{#2}}%
\ifdefvoid{#3}{}{\bibnamedelimd\mkbibnamecjk{#3}}}
\newbibmacro{labelname:western}{%
\ifcase\value{uniquename}%
\usebibmacro{name:family}
{\namepartfamily}
{\namepartgiven}
{\namepartprefix}
{\namepartsuffix}%
\or
\ifuseprefix
{\usebibmacro{name:given-family}
{\namepartfamily}
{\namepartgiveni}
{\namepartprefix}
{\namepartsuffixi}}
{\usebibmacro{name:given-family}
{\namepartfamily}
{\namepartgiveni}
{\namepartprefixi}
{\namepartsuffixi}}%
\or
\usebibmacro{name:given-family}
{\namepartfamily}
{\namepartgiven}
{\namepartprefix}
{\namepartsuffix}%
\fi
\usebibmacro{name:andothers}}
\newbibmacro{labelname:cjk}{%
\iffieldequalstr{uniquepart}{base}%
{\usebibmacro{name:cjk}
{\namepartfamily}
{\empty}
{\empty}}
{\iffieldequalstr{uniquepart}{given}%
{\usebibmacro{name:cjk}
{\namepartfamily}
{\namepartgiven}
{\empty}}
{\usebibmacro{name:cjk}
{\namepartfamily}
{\namepartgiven}
{\namepartcjk}}}}
\DeclareNameFormat{labelname}{%
\ifuniquenametemplatename{cjk}
{\usebibmacro{labelname:cjk}}
{\usebibmacro{labelname:western}}%
\usebibmacro{name:andothers}}
\DeclareNameFormat{family-given}{%
\ifsortingnamekeytemplatename{cjk}
{\usebibmacro{name:cjk}{\namepartfamily}{\namepartgiven}{\namepartcjk}}
{\ifgiveninits
{\usebibmacro{name:family-given}
{\namepartfamily}
{\namepartgiveni}
{\namepartprefix}
{\namepartsuffix}}
{\usebibmacro{name:family-given}
{\namepartfamily}
{\namepartgiven}
{\namepartprefix}
{\namepartsuffix}}}%
\usebibmacro{name:andothers}}
\DeclareNameFormat{given-family}{%
\ifsortingnamekeytemplatename{cjk}
{\usebibmacro{name:cjk}{\namepartfamily}{\namepartgiven}{\namepartcjk}}
{\ifgiveninits
{\usebibmacro{name:given-family}
{\namepartfamily}
{\namepartgiveni}
{\namepartprefix}
{\namepartsuffix}}
{\usebibmacro{name:given-family}
{\namepartfamily}
{\namepartgiven}
{\namepartprefix}
{\namepartsuffix}}}%
\usebibmacro{name:andothers}}
\DeclareNameFormat{family-given/given-family}{%
\ifsortingnamekeytemplatename{cjk}
{\usebibmacro{name:cjk}{\namepartfamily}{\namepartgiven}{\namepartcjk}}
{\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}}
% Based on definitions from biblatex-chicago cbx
\DeclareFieldFormat[book]{title}{%
\mkbibemph{#1}%
\iffieldundef{titleaddon}{\isdot}{\nopunct}}
\DeclareFieldFormat{booktitle}{%
\mkbibemph{#1}%
\iffieldundef{booktitleaddon}{}{\nopunct}}
\DeclareFieldFormat{maintitle}{%
\mkbibemph{#1}%
\iffieldundef{maintitleaddon}{}{\nopunct}}
\DeclareFieldFormat[article]{title}{%
\iffieldundef{title}{}{\mkbibquote{#1}}%
\iffieldundef{titleaddon}{\isdot}{\nopunct}}
%Addition for functionality with inbook and bookinbook etc:
\DeclareFieldFormat[inbook]{title}{%
\iffieldundef{title}{}{\mkbibquote{#1}}%
\iffieldundef{titleaddon}{\isdot}{\nopunct}}
\DeclareFieldFormat[bookinbook]{title}{%
\iffieldundef{title}{}{\mkbibquote{#1}}%
\iffieldundef{titleaddon}{\isdot}{\nopunct}}
\DeclareFieldFormat[unpublished]{title}{%
\iffieldundef{title}{}{\mkbibquote{#1}}%
\iffieldundef{titleaddon}{\isdot}{\nopunct}}
\DeclareFieldFormat[thesis]{title}{%
\iffieldundef{title}{}{\mkbibquote{#1}}%
\iffieldundef{titleaddon}{\isdot}{\nopunct}}
%This makes translation brackets into parentheses:
\DeclareFieldFormat{usere}{\mkbibparens{#1}}
\begin{filecontents*}{\jobname.bib}
@book{zhaos,
title={A Nation-State by Construction: Dynamics of Modern Chinese Nationalism},
author={given=Suisheng, family=Zhao, cjk=趙歲升, nametemplates=cjk},
isbn={9780804750011},
year={2011},
address = {Stanford},
publisher={Stanford University Press}}
@book{jim,
title={Lorem},
author={Smith, Junior, Jim},
year={2009},
address = {Stanford},
publisher={Stanford University Press}}
@article{zhaoj,
author={given=Jie, family=Zhao, cjk=赵杰, nametemplates=cjk},
title = {Qingdai Manwen de wenzi tese ji yinyun, yinbian tedian},
titleaddon = {清代满文的文字特色及音韵、音变特点},
usere = {Scriptual specificities of Manchu writing in the Qing period
and characteristics of phonology and sound change},
shorttitle = {Manwen de wenzi tese},
journal = {Manzu yanjiu},
volume = {102},
number = {1},
date = {2011},
pages = {7--12}}
@book{li,
author={given=Wuwei, family=Li, cjk=李无未, nametemplates=cjk and Brown, Junior, Bob and Doe, III, John},
publisher = {Shangwu yinshuguan},
address = {Beijing},
title = {Riben Hanyu yinyun xue shi},
titleaddon = {日本汉语音韵学史},
usere = {History of the study of Chinese phonology in Japan},
date = {2011}}
@book{Book1,
title = {Shuming},
titleaddon = {書名},
author = {family=Zhang, cjk=章學成, given=Xuecheng, nametemplates=cjk},
location = {Beijing},
publisher = {Zhonghua Shuju},
date = {2017},
}
@book{Book2,
title = {Shuming er},
titleaddon = {書名二},
author = {family=Zhang, cjk=張學成, given=Xuecheng, nametemplates=cjk},
location = {Shanghai},
publisher = {Shangwu Yinshuguan},
date = {2016},
}
@book{Book3,
title = {Sŏmyŏng},
titleaddon = {書名},
author = {family=Zhang, cjk=장학성, given=Haksŏng, nametemplates=cjk},
location = {Shanghai},
publisher = {Shangwu Yinshuguan},
date = {2016},
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\begin{document}
\parencite{Book1} \parencite{Book2} \parencite{Book3} \nocite{*}
\printbibliography
\end{document}