5

For several years now, I have been typesetting scholarly work that makes use of East Asian source materials with xelatex, and creating bibliographies through the use of biber/Biblatex-Chicago. The initial problem with this set-up was that Biblatex-Chicago does not natively understand how to handle East Asian names, particularly the fact that the surname comes first. This problem was solved several years ago by an incredibly useful bit of code written by Audrey: Chicago-style citations of CJK documents (e.g. American Oriental Society): Name order; transcribed/translated titles. I have been using this code almost every day for three years.

I have now had to get a new computer (Windows 10 64bit), and that has meant downloading a new version of MikTeX and a new version of TeXStudio. All of a sudden, I find that my old files no longer compile: in particular, the bit of code that Audrey wrote to fix the bibliographic presentation of East Asian names now seems to crash the compiler.

Files thus compile without Audrey's code, but they produce the wrong result. For instance:

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

This compiles fine, but it produces the wrong result:

Suisheng Zhao 趙歲升, A Nation-State by Construction: Dynamics of Modern Chinese Nationalism (Stanford: Stanford University Press, 2011)

References

Zhao, Suisheng, 趙歲升. A Nation-State by Construction: Dynamics of Modern Chinese Nationalism. Stanford: Stanford University Press, 2011.

What I need is rather

Zhao Suisheng 趙歲升, A Nation-State by Construction: Dynamics of Modern Chinese Nationalism (Stanford University Press, 2011)

References

Zhao Suisheng 趙歲升. A Nation-State by Construction: Dynamics of Modern Chinese Nationalism. Stanford: Stanford University Press, 2011.

This problem used to be solved by Audrey's code, which I would add to make the following example (this is the code that will not compile):

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

When I try to compile this code, I get an error log that is too long to copy here, but the relevant parts seem to be:

! 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 ##.

It goes on like that for a long time. Can anyone please tell me what has gone wrong, and what can be done to fix it?

  • The name format of biblatex has changed (and has been improved). So the code needs to be reconsidered. There is currently a discussion about it on the biblatex site github.com/plk/biblatex/issues/416. One question: How the sorting in your bibliography? – Ulrike Fischer Jul 23 '16 at 19:31
  • Ok, that explains why I'm getting the problem. I don't quite understand the question; can you elaborate? Also, do you know of a way to get the desired behavior for CJK entries, now that the name format of biblatex has changed? Or can I somehow roll back to an earlier version of biblatex? – LukeB Jul 23 '16 at 20:47
6

In biblatex 3.3 the name formatting code changed quite dramatically, see Biblatex 3.3 name formatting.

In your case that means that we need

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

In full

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

example output


Starting with biblatex 3.5/Biber 2.6 you can use the extended name format as described in Bibtex/Biber: how to cite an author using Ethiopian conventions?

We define a new name part cjk in the .dbx file

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

Then we can use \namepartcjk and can simplify some of the code we used before

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

In light of Chicago-style citations of CJK documents #2 the full MWE now enables all name formats for CJK parts

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

with the same output

  • Thank you very much! Does the second part of your answer indicate that when biblatex 3.5/Biber 2.6 comes around the above code will no longer work? Or does it just mean I can write simpler code to replace it? – LukeB Jul 26 '16 at 20:55
  • @LukeB As far as I am aware, the first suggestion should continue to work with biblatex 3.5. The second version is just a more elegant way making use of new features introduced in version 3.5. – moewe Jul 27 '16 at 9:49
  • @moewe thanks for a great solution. I can't help but ask: is there a way to make it work with biblatex-chicago's author-date option (as opposed to notes)? That is, in parenthetical citations? As it is now, citations of two authors with identical last names are not produced correctly. Just thought I should ask! – Mårten Sep 6 '17 at 19:58
  • @Mårten I think you should ask a new question about that. At the moment I'm not sure what the correct (expected) output would look like. – moewe Sep 7 '17 at 12:16
  • @moewe Good idea. Done: tex.stackexchange.com/questions/390369/… – Mårten Sep 8 '17 at 7:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.