CJK 书目问题,Biblatex-Chicago

CJK 书目问题,Biblatex-Chicago

几年来,我一直在使用 xelatex 排版利用东亚源材料的学术作品,并使用 biber/Biblatex-Chicago 创建参考书目。这种设置的最初问题是 Biblatex-Chicago 本身并不了解如何处理东亚名字,尤其是姓氏排在前面的情况。几年前,Audrey 编写的一段非常有用的代码解决了这个问题:芝加哥风格的 CJK 文献引文(例如美国东方学会):姓名顺序;转录/翻译的标题。三年来我几乎每天都在使用这个代码。

我现在不得不买一台新电脑(Windows 10 64 位),这意味着要下载新版本的 MikTeX 和新版本的 TeXStudio。突然间,我发现我的旧文件不再能编译:特别是,Audrey 编写的用于修复东亚名称书目表示的代码现在似乎使编译器崩溃了。

因此,文件无需 Audrey 代码即可编译,但会产生错误的结果。例如:

\documentclass{article}
\usepackage{xltxtra}
\usepackage[fallback]{xeCJK}
\usepackage{xunicode-addon}
\setmainfont[Ligatures={Common, TeX}]{Times New Roman}
\setCJKmainfont[Scale=1]{SimSun}
\usepackage[notes,strict,annotation,cmsdate=both,isbn=false,
backend=biber,bibencoding=utf8]{biblatex-chicago}
\begin{filecontents}{\jobname.bib}
    @book{zhaos,
        title={A Nation-State by Construction: Dynamics of Modern Chinese Nationalism},
    author={Zhao, 趙歲升, Suisheng},
    isbn={9780804750011},
    year={2011},
    address={Stanford}
    publisher={Stanford University Press}}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
    \cite{zhaos}
    \printbibliography
\end{document}

编译没有问题,但产生了错误的结果:

Suisheng Zhao 赵歲升,民族国家的建构:现代中国民族主义的动力(斯坦福:斯坦福大学出版社,2011 年)

参考

钊,洙升,趙歲升。民族国家的建构:现代中国民族主义的动力. 斯坦福:斯坦福大学出版社,2011。

我需要的是

赵岁升,民族国家的建构:现代中国民族主义的动力(斯坦福大学出版社,2011 年)

参考

赵岁升。民族国家的建构:现代中国民族主义的动力. 斯坦福:斯坦福大学出版社,2011。

这个问题曾经由 Audrey 的代码解决,我将添加该代码以制作以下示例(这是无法编译的代码):

\documentclass{article}
\usepackage{xltxtra}
\usepackage[fallback]{xeCJK}
\usepackage{xunicode-addon}
\setmainfont[Ligatures={Common, TeX}]{Times New Roman}
\setCJKmainfont[Scale=1]{SimSun}
\usepackage[notes,strict,annotation,cmsdate=both,isbn=false, backend=biber,bibencoding=utf8]{biblatex-chicago}
\begin{filecontents}{\jobname.bib}
    @book{zhaos,
        title={A Nation-State by Construction: Dynamics of Modern Chinese Nationalism},
        author={Zhao, 趙歲升, Suisheng},
        isbn={9780804750011},
        year={2011},
        address = {Stanford}
        publisher={Stanford University Press}}
\end{filecontents}
\addbibresource{\jobname.bib}

\forcsvlist{\listadd\nameaffixlist}{Junior,Senior}

\newcommand{\ifnameaffix}[1]{%
    \ifboolexpr{ test {\ifrmnum{#1}} or test {\ifinlist{#1}{\nameaffixlist}} }}

% Based on definitions from biblatex.def

\newbibmacro*{name:cjk}[3]{%
    \usebibmacro{name:delim}{#2#3#1}%
    \usebibmacro{name:hook}{#2#3#1}%
    \mkbibnamelast{#1}%
    \ifblank{#2}{}{\bibnamedelimd\mkbibnamefirst{#2}}%
    \ifblank{#3}{}{\bibnamedelimd\mkbibnameaffix{#3}}}

\DeclareNameFormat{first-last}{%
    \ifboolexpr{ test {\ifblank{#7}} or test {\ifnameaffix{#7}} }
    {\iffirstinits
        {\usebibmacro{name:first-last}{#1}{#4}{#5}{#7}}
        {\usebibmacro{name:first-last}{#1}{#3}{#5}{#7}}}
    {\usebibmacro{name:cjk}{#1}{#3}{#7}}%
    \usebibmacro{name:andothers}}

\DeclareNameFormat{last-first}{%
    \ifboolexpr{ test {\ifblank{#7}} or test {\ifnameaffix{#7}} }
    {\iffirstinits
        {\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}}
        {\usebibmacro{name:last-first}{#1}{#3}{#5}{#7}}}
    {\usebibmacro{name:cjk}{#1}{#3}{#7}}%
    \usebibmacro{name:andothers}}

\DeclareNameFormat{last-first/first-last}{%
    \ifboolexpr{ test {\ifblank{#7}} or test {\ifnameaffix{#7}} }
    {\ifnumequal{\value{listcount}}{1}
        {\iffirstinits
            {\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}}
            {\usebibmacro{name:last-first}{#1}{#3}{#5}{#7}}%
            \ifblank{#3#5}
            {}
            {\usebibmacro{name:revsdelim}}}
        {\iffirstinits
            {\usebibmacro{name:first-last}{#1}{#4}{#5}{#7}}
            {\usebibmacro{name:first-last}{#1}{#3}{#5}{#7}}}}
    {\usebibmacro{name:cjk}{#1}{#3}{#7}}%
    \usebibmacro{name:andothers}}

\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}}

\DeclareFieldFormat{usere}{\mkbibparens{#1}}


\begin{document}
    \cite{zhaos}

    \printbibliography
\end{document}

当我尝试编译此代码时,我收到一个错误日志,该日志太长而无法复制到这里,但相关部分似乎是:

! Illegal parameter number in definition of \blx@defformat@d.
<to be read again> 
                   7
l.35 ^^I\ifboolexpr{ test {\ifblank{#7
                                      }} or test {\ifnameaffix{#7}} }
You meant to type ## instead of #, right?
Or maybe a } was forgotten somewhere earlier, and things
are all screwed up? I'm going to assume that you meant ##.

! Illegal parameter number in definition of \blx@defformat@d.
<to be read again> 
                   7
l.35 ...st {\ifblank{#7}} or test {\ifnameaffix{#7
                                                  }} }
You meant to type ## instead of #, right?
Or maybe a } was forgotten somewhere earlier, and things
are all screwed up? I'm going to assume that you meant ##.

! Illegal parameter number in definition of \blx@defformat@d.
<to be read again> 
                   4
l.37 ^^I^^I{\usebibmacro{name:first-last}{#1}{#4
                                                }{#5}{#7}}
You meant to type ## instead of #, right?
Or maybe a } was forgotten somewhere earlier, and things
are all screwed up? I'm going to assume that you meant ##.

这种情况持续了很长时间。有人能告诉我出了什么问题吗?该怎么做才能解决?

答案1

biblatex3.3 中,名称格式代码发生了很大变化,请参见Biblatex 3.3 名称格式

在你的情况下,这意味着我们需要

\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}}

在全

\documentclass{article}
\usepackage[fallback]{xeCJK}
\usepackage{xunicode-addon}
\setmainfont[Ligatures={Common, TeX}]{Times New Roman}
\setCJKmainfont[Scale=1]{SimSun}
\usepackage[notes,strict,annotation,cmsdate=both,isbn=false, backend=biber,bibencoding=utf8]{biblatex-chicago}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{zhaos,
  title={A Nation-State by Construction: Dynamics of Modern Chinese Nationalism},
  author={Zhao, 趙歲升, Suisheng},
  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}}
\end{filecontents}
\addbibresource{\jobname.bib}

\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}}

\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}}

\DeclareFieldFormat{usere}{\mkbibparens{#1}}


\begin{document}
    \cite{zhaos,jim}

    \printbibliography
\end{document}

示例输出


biblatex3.5/Biber 2.6 开始,你可以使用扩展名格式,如Bibtex/Biber:如何使用埃塞俄比亚惯例引用作者?

cjk我们在.dbx文件中定义一个新的名称部分

\DeclareDatamodelConstant[type=list]{nameparts}{prefix,family,suffix,given,cjk}

然后我们可以使用\namepartcjk并简化我们之前使用的一些代码

\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}}}

\DeclareNameFormat{given-family}{%
  \ifdefvoid{\namepartcjk}
    {\ifgiveninits
        {\usebibmacro{name:given-family}
           {\namepartfamily}
           {\namepartgiveni}
           {\namepartprefix}
           {\namepartsuffix}}
        {\usebibmacro{name:given-family}
           {\namepartfamily}
           {\namepartgiven}
           {\namepartprefix}
           {\namepartsuffix}}}
    {\usebibmacro{name:cjk}{\namepartfamily}{\namepartgiven}{\namepartcjk}}%
  \usebibmacro{name:andothers}}

\DeclareNameFormat{family-given}{%
  \ifdefvoid{\namepartcjk}
    {\ifgiveninits
        {\usebibmacro{name:family-given}
           {\namepartfamily}
           {\namepartgiveni}
           {\namepartprefix}
           {\namepartsuffix}}
        {\usebibmacro{name:family-given}
           {\namepartfamily}
           {\namepartgiven}
           {\namepartprefix}
           {\namepartsuffix}}}
    {\usebibmacro{name:cjk}{\namepartfamily}{\namepartgiven}{\namepartcjk}}%
  \usebibmacro{name:andothers}}

\DeclareNameFormat{family-given/given-family}{%
  \ifdefvoid{\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:cjk}{\namepartfamily}{\namepartgiven}{\namepartcjk}}%
  \usebibmacro{name:andothers}}

鉴于芝加哥风格的 CJK 文献引用 #2完整的 MWE 现在支持 CJK 部分的所有名称格式

\documentclass{article}
\usepackage[fallback]{xeCJK}
\usepackage{xunicode-addon}
\setmainfont[Ligatures={Common, TeX}]{Times New Roman}
\setCJKmainfont[Scale=1]{SimSun}

\usepackage{filecontents}
\begin{filecontents*}{chicago-notes.dbx}
\ProvidesFile{chicago-notes.dbx}[2016/07/24 extended name format for biblatex]
\DeclareDatamodelConstant[type=list]{nameparts}{prefix,family,suffix,given,cjk}
\end{filecontents*}
\begin{filecontents*}{\jobname.bib}
@book{zhaos,
  title={A Nation-State by Construction: Dynamics of Modern Chinese Nationalism},
  author={given=Suisheng, family=Zhao, 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}}
\end{filecontents*}

\usepackage[notes,strict,annotation,cmsdate=both,isbn=false, backend=biber]{biblatex-chicago}
\addbibresource{\jobname.bib}

% 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\mkbibnamecjk{#3}}}

\newbibmacro*{name:cjk-nocjk}[3]{%
    \usebibmacro{name:delim}{#2#3#1}%
    \usebibmacro{name:hook}{#2#3#1}%
    \mkbibnamefamily{#1}%
    \ifdefvoid{#2}{}{\bibnamedelimd\mkbibnamegiven{#2}}}

\DeclareNameFormat{labelname}{%
  \ifcase\value{uniquename}%
    \usebibmacro{name:family}
      {\namepartfamily}
      {\namepartgiven}
      {\namepartprefix}
      {\namepartsuffix}%
  \or
    \ifdefvoid{\namepartcjk}
      {\ifuseprefix
         {\usebibmacro{name:given-family}
           {\namepartfamily}
           {\namepartgiveni}
           {\namepartprefix}
           {\namepartsuffixi}}
         {\usebibmacro{name:given-family}
           {\namepartfamily}
           {\namepartgiveni}
           {\namepartprefixi}
           {\namepartsuffixi}}}
      {\usebibmacro{name:cjk-nocjk}
         {\namepartfamily}{\namepartgiven}{\namepartcjk}}%
  \or
    \ifdefvoid{\namepartcjk}
      {\usebibmacro{name:given-family}
         {\namepartfamily}
         {\namepartgiven}
         {\namepartprefix}
         {\namepartsuffix}}
      {\usebibmacro{name:name:cjk-nocjk}
         {\namepartfamily}{\namepartgiven}{\namepartcjk}}%
  \fi
  \usebibmacro{name:andothers}}

\DeclareNameFormat{family-given}{%
  \ifdefvoid{\namepartcjk}
    {\ifgiveninits
        {\usebibmacro{name:family-given}
           {\namepartfamily}
           {\namepartgiveni}
           {\namepartprefix}
           {\namepartsuffix}}
        {\usebibmacro{name:family-given}
           {\namepartfamily}
           {\namepartgiven}
           {\namepartprefix}
           {\namepartsuffix}}}
    {\usebibmacro{name:cjk}{\namepartfamily}{\namepartgiven}{\namepartcjk}}%
  \usebibmacro{name:andothers}}

\DeclareNameFormat{given-family}{%
  \ifdefvoid{\namepartcjk}
    {\ifgiveninits
       {\usebibmacro{name:given-family}
         {\namepartfamily}
         {\namepartgiveni}
         {\namepartprefix}
         {\namepartsuffix}}
       {\usebibmacro{name:given-family}
         {\namepartfamily}
         {\namepartgiven}
         {\namepartprefix}
         {\namepartsuffix}}}
    {\usebibmacro{name:cjk}{\namepartfamily}{\namepartgiven}{\namepartcjk}}%
    \usebibmacro{name:andothers}}

\DeclareNameFormat{family-given/given-family}{%
  \ifdefvoid{\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:cjk}{\namepartfamily}{\namepartgiven}{\namepartcjk}}%
  \usebibmacro{name:andothers}}

\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}}

\DeclareFieldFormat{usere}{\mkbibparens{#1}}


\begin{document}
    \cite{zhaos,jim}

    \printbibliography
\end{document}

输出相同

相关内容