Handle space issue with refstyle more downstream

It is not necessarily, and infers with some usages, to generally escape
spaces in labels and references
This commit is contained in:
Juergen Spitzmueller 2024-09-08 19:07:44 +02:00
parent bfd855747a
commit 0beb790a6a
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

@ -1237,7 +1237,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