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}
7
  • All round parentheses ever produced by biblatex or only some?
    – moewe
    Commented Apr 27, 2018 at 10:26
  • No, biblatex produces normal ascii brackets. Commented Apr 27, 2018 at 10:33
  • With bibtexthere was a command \bibpunct with which one could change the punctuation. No such thing seems to exist for biblatex. Commented Apr 27, 2018 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
    Commented Apr 27, 2018 at 10:36
  • Yes, I guess "everywhere" would be the expected occurance of Chinese brackets. Commented Apr 27, 2018 at 10:42

1 Answer 1

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

8
  • 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. Commented Apr 27, 2018 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. Commented Apr 27, 2018 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. Commented Apr 27, 2018 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
    Commented Apr 27, 2018 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
    Commented Apr 29, 2018 at 3:14

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .