mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-22 10:00:33 +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;
|
count += 6;
|
||||||
env = true; //We have opened a new environment
|
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
|
// \noun{} is a LyX special macro
|
||||||
if (f.noun() == FONT_ON) {
|
if (f.noun() == FONT_ON) {
|
||||||
os << "\\noun{";
|
os << "\\noun{";
|
||||||
@ -430,8 +406,31 @@ int Font::latexWriteStartChanges(odocstream & os, BufferParams const & bparams,
|
|||||||
}
|
}
|
||||||
os << '\\'
|
os << '\\'
|
||||||
<< LaTeXSizeNames[f.size()]
|
<< 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;
|
return count;
|
||||||
}
|
}
|
||||||
@ -480,30 +479,6 @@ int Font::latexWriteEndChanges(otexstream & os, BufferParams const & bparams,
|
|||||||
++count;
|
++count;
|
||||||
env = true; // Size change need not bother about closing env.
|
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) {
|
if (f.noun() == FONT_ON) {
|
||||||
os << '}';
|
os << '}';
|
||||||
++count;
|
++count;
|
||||||
@ -515,11 +490,29 @@ int Font::latexWriteEndChanges(otexstream & os, BufferParams const & bparams,
|
|||||||
os << '}';
|
os << '}';
|
||||||
++count;
|
++count;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
if (f.underbar() == FONT_ON) {
|
||||||
os << '}';
|
os << '}';
|
||||||
++count;
|
++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
|
// the numbers are written Left-to-Right. ArabTeX package
|
||||||
// reorders the number automatically but the packages used
|
// reorders the number automatically but the packages used
|
||||||
// for Hebrew and Farsi (Arabi) do not.
|
// for Hebrew and Farsi (Arabi) do not.
|
||||||
|
Loading…
Reference in New Issue
Block a user