4

I'm regularly citing East Asian material in styles similar to HJAS (but sometimes in the author-date style). This has been possible thanks to the ingenious solution offered in Chicago-style citations of CJK documents (e.g. American Oriental Society): Name order; transcribed/translated titles.

However, I noticed a problem with the solution given in that question:

When I have 2 CJK names that have the same family name but different given name, the names are not disambiguated. Ideally, I would like them to be disambiguated by adding the given name to the family name (not including the CJK characters): e.g., Zhao Jie 2011 and Zhao Suisheng 2011, but they are both rendered as Zhao 2011.

(To clarify, I would like them disambiguated also in case they have the same names but the publications cited have different dates; I chose this example simply because the problem appears most clearly here.)

MWE (based on the previous question):

\documentclass{article}
\usepackage{xeCJK}
\setCJKmainfont{HanaMinA}%SimSun
% Sets uniquelist=minyear and uniquename=minfull
\usepackage[authordate,backend=biber,bibencoding=utf8]{biblatex-chicago}

% List of name affixes excluding Roman numerals
\forcsvlist{\listadd\nameaffixlist}{Junior,Senior}

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

% Based on definitions from biblatex.def    
\DeclareNameFormat{labelname}{%
  \ifboolexpr{ test {\ifblank{#7}} or test {\ifnameaffix{#7}} }
    {\ifcase\value{uniquename}%
       \usebibmacro{name:last}{#1}{#3}{#5}{#7}%
     \or
       \ifuseprefix
         {\usebibmacro{name:first-last}{#1}{#4}{#5}{#8}}
         {\usebibmacro{name:first-last}{#1}{#4}{#6}{#8}}%
     \or
       \usebibmacro{name:first-last}{#1}{#3}{#5}{#7}%
     \fi}%
    {\ifnumequal{\value{uniquename}}{0}%
       {\usebibmacro{name:cjk}{#1}{}{}}
       {\usebibmacro{name:cjk}{#1}{#3}{}}}%
  \usebibmacro{name:andothers}}

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

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

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

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

\begin{filecontents}{\jobname.bib}
@book{zhaos,
  title={A Nation-State by Construction: Dynamics of Modern Chinese Nationalism},
  author={Zhao, 趙歲升, Suisheng},
  isbn={9780804750011},
  year={2011},
  publisher={Stanford University Press}}
@article{zhaoj,
  author = {Zhao, 赵杰, Jie},
  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 = {Li, 李无未, Wuwei 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}}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
\noindent
\textcite{li,zhaos,zhaoj} \\
\citeauthor{li,zhaos,zhaoj} \\
\fullcite{li,zhaos,zhaoj}
\printbibliography
\end{document}

Output:

Output

Mårten
  • 2,194

1 Answers1

3

Based on the second part of my answer to CJK Bibliography Problem, Biblatex-Chicago, which uses the new extended name format, we just need to redefine the format for labelname.

We need to add only

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

for citations and

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

for other names in the bibliography where western names are in 'first last' order.

In total

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

\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} \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}} @article{zhaoj, author={given=Jie, family=Zhao, 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=李无未 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}} \end{filecontents}

\usepackage[authordate,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,li,zhaoj}

\printbibliography

\end{document}

gives

enter image description here

moewe
  • 175,683
  • Thank you! That works. Now I just have to edit all the entries in my bibliography database (the file is currently 33528 lines long...) – Mårten Sep 08 '17 at 14:17
  • Sorry to bother you again. I noticed that it only works with author, not editor. An entry with both CJK author and CJK editor will not produce the right names for the editor (it gives the name in Western order, without the CJK). Any ideas? – Mårten Sep 08 '17 at 14:24
  • 1
    @Mårten Have a look at the edit. Now all name formats should support CJK names. – moewe Sep 08 '17 at 15:00
  • Fantastic, it looks perfect! Thank you so much. – Mårten Sep 08 '17 at 15:18
  • Thank you for this code, moewe! On the biblatex roadmap, found in the biblatex wiki on sourceforge, I’ve seen a “multi-script” goal, but it has not been realized as of yet. Your solution implies quite some code in the preamble, and the generation of an extra (dbx) file (that gets overwritten and therefore makes xelatex produce a warning). And it’s code that I, being a mere user, don’t understand, so I’d be happy to see it hidden in a package (and also documented). Hence: Is it likely that a solution (similar or different to yours) will be implemented in biblatex anytime soon (@PLK)? ;-) – Philipp Sep 28 '17 at 06:41
  • @Philipp There were plans for a multi-script version, but development has stalled in recent years. The problem is not only with how one would implement such a feature, but also with what the feature should do exactly, how it should work, what the user interface should be like. There were more pressing (and less complicated) things on the agenda. In the short term you probably won't see a full multi-script version, in the medium to long term hopefully. But even now, certain things are possible. – moewe Sep 28 '17 at 08:53
  • @moewe I recently noticed that when citing an @inbook in the notes style, the the name of the author of the CJK book does not follow CJK order, but follows Given name + Family name.

    @book{Book1, author = {family=Yang, cjk=楊士聰, given=Shicong}, title = {Booktitle}}

    @inbook{Inbook1, crossref = {Book1}, title = {Inbooktitle}, author = {family=Liu, cjk=劉尚友, given=Shangyou}}

    In this example, the author of Book1 appears as Shicong Yang in the footnote.

    Do you understand what I mean? Perhaps I should ask a new question for this?

    – Mårten Mar 08 '18 at 16:28
  • @Mårten Please do that. I assume it's just a small oversight in my code, but a new question will make it easier to see where the problem appears. – moewe Mar 08 '18 at 16:36
  • @moewe Turns it I had just missed something when I changed to notes, in fact it works perfectly. My apologies for the inconvenience. – Mårten Mar 08 '18 at 17:25
  • @Mårten Don't worry about it. Glad it still works. – moewe Mar 08 '18 at 17:32
  • @moewe Thanks a lot for your code; it helped me immensely. There is one small suggestion: I found that I had to escape the linebreaks before and after the ifboolexpe block because otherwise I would get spurious spaces whenever the name consists just of the family part. For instance, editor={{Ministry of Education}}, shortauthor={MoE} would result in MoE (Ministry of Education ) rather than the intended MoE (Ministry of Education). Escaping the line breaks before ifboolexpe{ and after {\usebibmacro{name:revsdelim}} fixes this issue. – Abun Aug 01 '22 at 09:31
  • I meant shorthand, not shortauthor, sorry. – Abun Aug 01 '22 at 09:38
  • @Abun Thanks for the heads-up. Fixed the missing %. (AFAICS the problem was only before \ifboolexpe. The other line was fine.) – moewe Aug 01 '22 at 16:01