Properly nest ulem commands within other font changes

This reverts the wrong fix to #8424 which caused #8733 and fixes both problems properly
This commit is contained in:
Juergen Spitzmueller 2013-07-11 11:37:49 +02:00
parent 2dfe540371
commit db8abfec04
2 changed files with 47 additions and 51 deletions

View File

@ -393,30 +393,6 @@ int Font::latexWriteStartChanges(odocstream & os, BufferParams const & bparams,
count += 6;
env = true; //We have opened a new environment
}
if (f.underbar() == FONT_ON) {
os << "\\uline{";
count += 10;
runparams.inulemcmd = true;
env = true; //We have opened a new environment
}
if (f.strikeout() == FONT_ON) {
os << "\\sout{";
count += 9;
runparams.inulemcmd = true;
env = true; //We have opened a new environment
}
if (f.uuline() == FONT_ON) {
os << "\\uuline{";
count += 11;
runparams.inulemcmd = true;
env = true; //We have opened a new environment
}
if (f.uwave() == FONT_ON) {
os << "\\uwave{";
count += 10;
runparams.inulemcmd = true;
env = true; //We have opened a new environment
}
// \noun{} is a LyX special macro
if (f.noun() == FONT_ON) {
os << "\\noun{";
@ -431,8 +407,31 @@ int Font::latexWriteStartChanges(odocstream & os, BufferParams const & bparams,
}
os << '\\'
<< LaTeXSizeNames[f.size()]
<< '{';
count += strlen(LaTeXSizeNames[f.size()]) + 2;
<< "{}";
count += strlen(LaTeXSizeNames[f.size()]) + 3;
}
// The ulem commands need to be on the deepest nesting level
// because ulem puts every nested group or macro in a box,
// which prevents linebreaks (#8424, #8733)
if (f.underbar() == FONT_ON) {
os << "\\uline{";
count += 10;
runparams.inulemcmd = true;
}
if (f.strikeout() == FONT_ON) {
os << "\\sout{";
count += 9;
runparams.inulemcmd = true;
}
if (f.uuline() == FONT_ON) {
os << "\\uuline{";
count += 11;
runparams.inulemcmd = true;
}
if (f.uwave() == FONT_ON) {
os << "\\uwave{";
count += 10;
runparams.inulemcmd = true;
}
return count;
}
@ -481,30 +480,6 @@ int Font::latexWriteEndChanges(otexstream & os, BufferParams const & bparams,
++count;
env = true; // Size change need not bother about closing env.
}
if (f.underbar() == FONT_ON) {
os << '}';
++count;
runparams.inulemcmd = false;
env = true; // Size change need not bother about closing env.
}
if (f.strikeout() == FONT_ON) {
os << '}';
++count;
runparams.inulemcmd = false;
env = true; // Size change need not bother about closing env.
}
if (f.uuline() == FONT_ON) {
os << '}';
++count;
runparams.inulemcmd = false;
env = true; // Size change need not bother about closing env.
}
if (f.uwave() == FONT_ON) {
os << '}';
++count;
runparams.inulemcmd = false;
env = true; // Size change need not bother about closing env.
}
if (f.noun() == FONT_ON) {
os << '}';
++count;
@ -516,11 +491,29 @@ int Font::latexWriteEndChanges(otexstream & os, BufferParams const & bparams,
os << '}';
++count;
}
}
if (f.underbar() == FONT_ON) {
os << '}';
++count;
runparams.inulemcmd = false;
}
if (f.strikeout() == FONT_ON) {
os << '}';
++count;
runparams.inulemcmd = false;
}
if (f.uuline() == FONT_ON) {
os << '}';
++count;
runparams.inulemcmd = false;
}
if (f.uwave() == FONT_ON) {
os << '}';
++count;
runparams.inulemcmd = false;
}
// When the current language is Hebrew, Arabic, or Farsi
// If the current language is Hebrew, Arabic, or Farsi
// the numbers are written Left-to-Right. ArabTeX package
// reorders the number automatically but the packages used
// for Hebrew and Farsi (Arabi) do not.

View File

@ -52,6 +52,9 @@ What's new
* DOCUMENT INPUT/OUTPUT
- Fix output of ulem commands (underline etc.) which was broken as of
LyX 2.0.6 (bug 8733).
- Fix problem with unbalanced braces in XeTeX output (bug 8765).
- Added h5 and h6 as tags for Paragraph and Subparagraph.