Work around French babel's incompatibility with prettyref

In classic (pdf)latex, where the colon is activated, detokenize
the argument of \prettyref.

Fix proposed by egreg at
https://tex.stackexchange.com/a/527912/19291
This commit is contained in:
Juergen Spitzmueller 2023-08-11 17:35:18 +02:00
parent 6671f9bee1
commit 858b076ab7
2 changed files with 10 additions and 0 deletions

View File

@ -498,6 +498,7 @@ Language canadien
BabelName acadian
PolyglossiaName french
PolyglossiaOpts "variant=canadian"
ActiveChars ;!?:
XindyName french
QuoteStyle french
Encoding iso8859-15
@ -705,6 +706,7 @@ Language french
GuiName "French"
HasGuiSupport true
BabelName french
ActiveChars ;!?:
PolyglossiaName french
XindyName french
QuoteStyle french

View File

@ -1284,6 +1284,14 @@ string const LaTeXFeatures::getPackages() const
// The rest of these packages are somewhat more complicated
// than those above.
// Babel languages with activated colon (such as French) break
// with prettyref. Work around that.
if (!runparams_.isFullUnicode() && useBabel()
&& mustProvide("prettyref") && contains(getActiveChars(), ':')) {
packages << "% Make prettyref compatible with babel active colon\n"
<< "\\def\\prettyref#1{\\expandafter\\@prettyref\\detokenize{#1:}}\n";
}
if (mustProvide("changebar")) {
packages << "\\usepackage";
if (runparams_.flavor == Flavor::LaTeX