3

I would like to use Chinese brackets with biblatex. Is this possible? I could not figure out how from the manual. It should look like the second example:

enter image description here

\documentclass{scrbook}

\usepackage{xeCJK}
\setCJKmainfont{SimSun}


\usepackage[
    natbib=true,
    citestyle=authoryear-comp,
    maxbibnames=99,maxcitenames=2,
    isbn=false,
    doi=false,
    url=false,
    eprint=false,
    backend=biber,
    indexing=cite,
    ]{biblatex}

\usepackage{filecontents}

\bibliography{bibliography}

\begin{filecontents}{bibliography.bib}
  @misc{FSP2016a,
Author = {Antonio Fabregas and Tom Stroik and Michael Putnam},
Howpublished = {Ms.\ Penn State University},
Title = {Is Simplest Merge too simple?},
Year = {2016}}
\end{filecontents}


\begin{document}

更多最近有关合并的构成的标记和大量的过度分析请看 \citet{FSP2016a}。

更多最近有关合并的构成的标记和大量的过度分析请看 Fabregas et al.(2016)。


\end{document}
  • All round parentheses ever produced by biblatex or only some? – moewe Apr 27 '18 at 10:26
  • No, biblatex produces normal ascii brackets. – Stefan Müller Apr 27 '18 at 10:33
  • With bibtexthere was a command \bibpunct with which one could change the punctuation. No such thing seems to exist for biblatex. – Stefan Müller Apr 27 '18 at 10:34
  • Sorry, my question was not clear. Do you want all parentheses that biblatex inserts automatically to be CJK round brackets or do you want that to happen in only an assorted lot of specific situations? biblatex does not have a \bibpunct command, but it has similar capabilities. – moewe Apr 27 '18 at 10:36
  • Yes, I guess "everywhere" would be the expected occurance of Chinese brackets. – Stefan Müller Apr 27 '18 at 10:42
5

The command that biblatex ultimately uses to insert a left round bracket is \bibleftparen and that for a right round bracket \bibrightparen. You can modify these two commands to your liking. Unfortunately the CJK parentheses seem to bring their own space (that's why you wrote Fabregas et al.(2016)。 without additional space), so we need to hack our way out of these spaces.

\makeatletter
\renewcommand*{\bibleftparen}{\unspace\blx@postpunct(}
\renewcommand*{\bibrightparen}{\blx@postpunct)\unspace\midsentence}
\makeatother

enter image description here

  • Thank you! You rock! This also solves a problem with linebrakes after the bracket and before the dot, which I could not solve with bibtex. – Stefan Müller Apr 27 '18 at 11:40
  • I think the unspace should not be done when in the middle of a sentence: 的过度分析请看\citep{FSP2016a}更多最近有关合. Here, Chinese expects the space. For strange reasons the spacing seems to work on the left-hand side. – Stefan Müller Apr 27 '18 at 15:00
  • Ideally the command would eat up all following spaces but leave the space that belongs to the bracket and have the CJK mechanism decide whether the dot goes close to the bracket or whether the space is preserved since a normal Chinese character is following. – Stefan Müller Apr 27 '18 at 15:12
  • 1
    @StefanMüllern Sorry, that is the best I can do. I don't really know how the whole spacing business works, but there are chances that biblatex (like hyperref) interferes here (maybe it goes via kerning, that could be problematic github.com/plk/biblatex/issues/598). One of the xeCJK developers is active on this site, maybe he sees your question and can help you. – moewe Apr 27 '18 at 15:58
  • 2
    @StefanMüller: I think one should use a normal space before/after a \cite command manually when necessary. It is the author's responsibility to handle spacing when mixing Chinese and English. xeCJK is not that smart to handle all the spacing issues automatically. luatexja works better in these situations, but still not fully automatically. – Leo Liu Apr 29 '18 at 3:14

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.