All special characters need to be grouped separately. As such, use
The reason for the misplaced sorting is because the sorting is probably based on cSengor (stripping all the "special stuff").
Q5: I am confused about the difference between special characters and the use of braces to protect text from case changes. Also, when should
I “shield” things with braces?
The rules that govern all this are simple, but confusing. BibTeX
considers everything within a {\ .. } construct at brace level 0
(and only brace level 0), that is the top level of bracing of the
field (which is not affected by whether quotes or braces are used to
delimit the entire field), to be a “special character” and will treat
is though the entire construct is a single character. Within special
characters, control sequences (LaTeX commands) will be preserved as
is, but all other text may be case changed or otherwise processed as
needed. Furthermore, within special characters, additional levels of
braces do not increment the brace level. On the other hand, { .. }
constructs at brace level 0 (the key here is that a \ does not
immediately follow the opening brace — if so, it would make it a
special character) do increment the brace level as well as do nested
braces within them. All text and control sequences at brace level 1 or
higher is protected from case changes or other processing.
It is
perhaps easier to understand from an example. Consider:
title = "L0 {\relax S0 {S0 {S0}}} L0 {L1 {\relax L2 {L3}} L1} \LaTeX\ L0"
where Lx indicates brace level x and Sx indicates a (part of a)
special character at brace level x. Again, nothing would change here
if braces had been used to delimit the entire field instead of quotes.
The three S0’s are all considered to be part of the same special
character because they are all within a {\ .. } construct at brace
level 0. Text at S0 may be case changed, but the \relax as well as
other control sequences in S0 will not be changed. Note that the
additional nested braces within the special character do not increment
the brace level. Thus, there is no such thing as S1 or higher. The
first L1 is at brace level 1 because it is a { .. } (and not a
special character). Note that in this case, additional levels of
braces do increment the brace level counter. Furthermore, the second
{\relax .. is not treated as a special character because it occurs
at brace level 1. All characters and control sequences at L1 and
higher will be protected from case changes. Note that in this example
the control sequence \LaTeX is subject to case changes. Thus, if the
bibstyle set the title to lowercase, the resultant \latex command
would likely generate an error.
With all this in mind, we can look
at some practical examples. Consider:
title = "Secrets of {NASA}"
NASA needs to be enclosed in braces because it is an acronym that
must remain in uppercase. Likewise, we usually need to protect math
from case changes:
title = "The {$A_\beta$} Protocol"
Simple argumentless LaTeX commands are also easily protected:
title = "The {\LaTeX} Book"
However, note that in this case, \LaTeX will be treated as a special
character and so the text “LaTeX” will not be considered when sorting.
Thus, in cases where the name of the LaTeX command is identical to the
text it represents, it may be better to use an extra set of braces so
that the letters that make up the command will be taken into
consideration when sorting:
title = "The {{\LaTeX}} Book"
[...]
Another application of brace shielding is with titles in
languages (such as German) in which title capitalization must be
preserved with some words (such as nouns and names):
title = "{M}essung von {S}t{\"o}rfeldern an {A}nlagen
und {L}eitungen der {T}elekommunikation im
{F}requenzbereich 9 {kHz} bis 3 {GHz}",
Note that {\"o} is treated as a special character and the “o” is not
protected against case changes. However, the first letter of the nouns
are protected because they are at brace level 1.
Things get a bit
more complicated when a LaTeX command has an argument. The correct
approach depends on whether the argument needs to be protected from
case changes. Consider:
note = "Volume~2 is listed under Knuth \cite{TEX:book}"
If the bibstyle changes the note field to lowercase, we will get:
volume~2 is listed under knuth \cite{TEX:book}
so we will likely want to enclose first letter of Knuth’s last name in
braces. Furthermore, if we had an unusual bibstyle that rendered the
note field in uppercase, we would get:
VOLUME~2 IS LISTED UNDER KNUTH \CITE{TEX:book}
which would result in an error when the nonexistent \CITE is
executed. We might be tempted to try something like this:
note = "Volume~2 is listed under Knuth {\cite}{TEX:book}"
but this won’t work because the extra braces around the \cite
command will prevent it from seeing its argument:
VOLUME~2 IS LISTED UNDER KNUTH {\cite}{TEX:book}
Instead, we might try something like this:
note = "Volume~2 is listed under {K}nuth {\cite{TEX:book}}"
However, this is not safe either because the cite key “TEX:book” is
now considered to be part of a special character and so it may be case
changed (just like the second S0 in the example before)! Therefore,
we need to employ an additional set of braces to get the \cite
command and its argument to brace level(s) greater than zero:
note = "Volume~2 is listed under {K}nuth {{\cite{TEX:book}}}"
so as to ensure everything will work regardless of what the bibstyle
does to the note field.
It is usually a good idea to let the .bst
file convert/format the fields as it sees fit — so don’t force things
with extra braces unless you have to. Future versions of BibTeX may be
more intelligent with respect to case changing and thus may require
fewer “manual interventions” with braces. [...]
bibtexand have instead a look atbiblatex/biber. There's no reason to use outdated software when better alternatives already exist. Don't create a legacy problem for yourself if you don't have to.biberwill deal with all Unicode characters without any problems. – Simifilm Dec 31 '11 at 09:41