mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-22 01:59:02 +00:00
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:
parent
89b2c54c00
commit
c2cea31aea
95
src/Font.cpp
95
src/Font.cpp
@ -392,30 +392,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{";
|
||||
@ -430,8 +406,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;
|
||||
}
|
||||
@ -480,30 +479,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;
|
||||
@ -515,11 +490,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.
|
||||
|
Loading…
Reference in New Issue
Block a user