Handle space issue with refstyle more downstream

It is not necessarily, and infers with some usages, to generally escape
spaces in labels and references

(cherry picked from commit 0beb790a6a)
This commit is contained in:
Juergen Spitzmueller 2024-09-08 19:07:44 +02:00 committed by Richard Kimberly Heck
parent 16281b4cf1
commit fb5782b62a
2 changed files with 7 additions and 2 deletions

View File

@ -288,7 +288,12 @@ void InsetRef::latex(otexstream & os, OutputParams const & rp) const
os << fcmd; os << fcmd;
if (use_refstyle && use_plural) if (use_refstyle && use_plural)
os << "[s]"; os << "[s]";
os << '{' << label << '}'; if (contains(label, ' '))
// refstyle bug: labels with blanks need to be grouped
// otherwise the blanks will be gobbled
os << "{{" << label << "}}";
else
os << '{' << label << '}';
} }
else if (cmd == "labelonly") { else if (cmd == "labelonly") {
docstring const & ref = getParam("reference"); docstring const & ref = getParam("reference");

View File

@ -1242,7 +1242,7 @@ docstring const escape(docstring const & lab)
for (char_type const c : lab) { for (char_type const c : lab) {
if (c >= 128 || c == '=' || c == '%' || c == '#' || c == '$' if (c >= 128 || c == '=' || c == '%' || c == '#' || c == '$'
|| c == '}' || c == '{' || c == ']' || c == '[' || c == '&' || c == '}' || c == '{' || c == ']' || c == '[' || c == '&'
|| c == '\\' || c == ' ') // refstyle doesn't support spaces || c == '\\')
{ {
// Although char_type is a 32 bit type we know that // Although char_type is a 32 bit type we know that
// UCS4 occupies only 21 bits, so we don't need to // UCS4 occupies only 21 bits, so we don't need to