X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FInsetBox.cpp;h=c96a7c9e7d11375d5a2fac0ec9537743a63fe0c1;hb=15ae3eb85c5494b4343936108cb3b5b7c53bafe4;hp=cdd3f377418acc2c94d3a0467a26c326334e9915;hpb=ecef54500d4d77baf4fa47eac2253679875ac08c;p=lyx.git diff --git a/src/insets/InsetBox.cpp b/src/insets/InsetBox.cpp index cdd3f37741..c96a7c9e7d 100644 --- a/src/insets/InsetBox.cpp +++ b/src/insets/InsetBox.cpp @@ -78,14 +78,14 @@ BoxTranslatorLoc initBoxtranslatorLoc() BoxTranslator const & boxtranslator() { - static BoxTranslator translator = initBoxtranslator(); + static BoxTranslator const translator = initBoxtranslator(); return translator; } BoxTranslatorLoc const & boxtranslator_loc() { - static BoxTranslatorLoc translator = initBoxtranslatorLoc(); + static BoxTranslatorLoc const translator = initBoxtranslatorLoc(); return translator; } @@ -162,7 +162,7 @@ void InsetBox::setButtonLabel() bool InsetBox::hasFixedWidth() const { - return params_.inner_box || params_.special != "width"; + return !params_.width.empty(); } @@ -273,6 +273,7 @@ void InsetBox::latex(otexstream & os, OutputParams const & runparams) const string width_string = params_.width.asLatexString(); bool stdwidth = false; + // FIXME: do not test explicitely values of width_string if (params_.inner_box && (width_string.find("1.0\\columnwidth") != string::npos || width_string.find("1.0\\textwidth") != string::npos)) { @@ -316,20 +317,24 @@ void InsetBox::latex(otexstream & os, OutputParams const & runparams) const os << "\\begin{framed}%\n"; break; case Boxed: - os << "\\framebox"; - if (!params_.inner_box) { - // Special widths, see usrguide §3.5 - // FIXME UNICODE - if (params_.special != "none") { - os << "[" << params_.width.value() - << '\\' << from_utf8(params_.special) - << ']'; + if (!width_string.empty()) { + if (!params_.inner_box) { + os << "\\framebox"; + // Special widths, see usrguide sec. 3.5 + // FIXME UNICODE + if (params_.special != "none") { + os << "[" << params_.width.value() + << '\\' << from_utf8(params_.special) + << ']'; + } else + os << '[' << from_ascii(width_string) + << ']'; + if (params_.hor_pos != 'c') + os << "[" << params_.hor_pos << "]"; } else - os << '[' << from_ascii(width_string) - << ']'; - if (params_.hor_pos != 'c') - os << "[" << params_.hor_pos << "]"; - } + os << "\\fbox"; + } else + os << "\\fbox"; os << "{"; break; case ovalbox: @@ -354,18 +359,21 @@ void InsetBox::latex(otexstream & os, OutputParams const & runparams) const if (params_.use_parbox) os << "\\parbox"; else if (params_.use_makebox) { - os << "\\makebox"; - // FIXME UNICODE - // output the width and horizontal position - if (params_.special != "none") { - os << "[" << params_.width.value() - << '\\' << from_utf8(params_.special) - << ']'; + if (!width_string.empty()) { + os << "\\makebox"; + // FIXME UNICODE + // output the width and horizontal position + if (params_.special != "none") { + os << "[" << params_.width.value() + << '\\' << from_utf8(params_.special) + << ']'; + } else + os << '[' << from_ascii(width_string) + << ']'; + if (params_.hor_pos != 'c') + os << "[" << params_.hor_pos << "]"; } else - os << '[' << from_ascii(width_string) - << ']'; - if (params_.hor_pos != 'c') - os << "[" << params_.hor_pos << "]"; + os << "\\mbox"; os << "{"; } else