]> git.lyx.org Git - features.git/commitdiff
Protect underlined \ref{} commands by enclosing them in \mbox{}.
authorEnrico Forestieri <forenr@lyx.org>
Thu, 30 Aug 2012 12:09:23 +0000 (14:09 +0200)
committerEnrico Forestieri <forenr@lyx.org>
Thu, 30 Aug 2012 13:35:22 +0000 (15:35 +0200)
This is the same protection used for \cite{}. Although "ulem" commands
don't strictly need this protection with \ref{} and friends, this helps
when one wants to use another package souch as "soul".
Indeed, ulem's \uline{} doesn't hyphenate words, while soul's \ul{} does,
and thus the output is much nicer.

With this patch, replacing ulem with soul is as simple as adding
\usepackage{soul}
\renewcommand{\uline}[1]{\ul{#1}}
to the preamble, without worrying about manually enclosing in \mbox the
\ref commands. In any case, the output from ulem remains unchanged.

Another possibility offered by soul is that of typesetting as
"yellow highlighted" the underlined text. This is achieved by adding
\usepackage{color,soul}
\renewcommand{\uline}[1]{\hl{#1}}
to the preamble.

(cherry picked from commit 91afc2430d056e5cbf0065ac0d1a754a2a2ff384)

src/insets/InsetRef.cpp
status.20x

index cd00e0d023f9df83dbec16ff70a063cbe82ea83d..9f606ff0a2a94c81c0bfe32659bbafb04b22bb69 100644 (file)
@@ -142,6 +142,9 @@ void InsetRef::latex(otexstream & os, OutputParams const & rp) const
        string const cmd = getCmdName();
        docstring const data = getEscapedLabel(rp);
 
+       if (rp.inulemcmd)
+               os << "\\mbox{";
+
        if (cmd == "eqref" && buffer().params().use_refstyle) {
                os << '(' << from_ascii("\\ref{") << data << from_ascii("})");
        } 
@@ -159,6 +162,9 @@ void InsetRef::latex(otexstream & os, OutputParams const & rp) const
                p["reference"] = ref;
                os << p.getCommand(rp);
        }
+
+       if (rp.inulemcmd)
+               os << "}";
 }
 
 
index 029bfcc73964f030a223df06d7ff10dfcf86be53..7f51249be660e61bbcf9ecc8667da9c87900c926 100644 (file)
@@ -32,6 +32,9 @@ What's new
 
 - Add support for some IPA diacritics.
 
+- Enclose underlined \ref{} commands in \mbox{} to protect them when
+  using the package soul in place of (or together with) ulem.
+
 
 * TEX2LYX IMPROVEMENTS