6

I'm writing my phd thesis, which is in Chinese. It's required to sort the all Chinese references before English ones in the Section of reference.

However, it seems that there is not any existing sorting options that can support this.

I tried to use \usepackage[backend = biber, style=alphabetic, sorting=nty]{biblatex}. All Chinese references were listed behind English ones.

Is there any way that can sort all the Chinese references before all the English ones?

  • Welcome to TeX.SX! Please help us to help you and add a minimal working example (MWE) that illustrates your problem. It will be much easier for us to reproduce your situation and find out what the issue is when we see compilable code, starting with \documentclass{...} and ending with \end{document}. – user31729 May 22 '14 at 4:50
  • You should specify a a sortkey for each of the Chinese references so they are placed before the English ones. You may have to sort them manually, but this would only have to happen once. – Werner May 22 '14 at 4:53
  • It could be interesting to see whether a custom sorting scheme with the language field before sortname would do the trick. (You'd need the language field present in the entries of course, but that is the same amount of work as adding presort.) – equaeghe Oct 18 '17 at 14:26
5

A simple solution would be to use the presort field. Unlike sortkey, presort would be able to sort into broad categories, leaving the sorting within the categories to biblatex, instead of having to sort every entry individually (as with sortorder).

biblatex.def defines the nyt sorting style as:

\DeclareSortingScheme{nyt}{
  \sort{
    \field{presort}
  }
  \sort[final]{
    \field{sortkey}
  }
  \sort{
    \field{sortname}
    \field{author}
    \field{editor}
    \field{translator}
    \field{sorttitle}
    \field{title}
  }
  ......

So, by adding a presort = 1 for all Chinese entries in your .bib file and a presort = 2 for all English entries, they will be sorted by language first, then proceed to be sorted by the regular nyt/name,year,title scheme after that as usual.

1

A very simple solution might be the following: - edit your *.bbl file - mark and cut all english entries - paste them after the chinese entries - save this file as your new *.bbl - and run xelarex (or ist lua?) again.

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.