X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fparagraph_pimpl.C;h=09feac95344b09d5e7e0bc9c718948d147b6d64d;hb=2af1fccc61b68e273bd690c506df85d4a2c8e30e;hp=e0ccc92fbff29c9fcf28478edb92aa11d5dea499;hpb=822df54fc2c34f8cd8b904414264eade7c6972f8;p=lyx.git diff --git a/src/paragraph_pimpl.C b/src/paragraph_pimpl.C index e0ccc92fbf..09feac9534 100644 --- a/src/paragraph_pimpl.C +++ b/src/paragraph_pimpl.C @@ -62,6 +62,10 @@ size_t const phrases_nr = sizeof(special_phrases)/sizeof(special_phrase); bool isEncoding(BufferParams const & bparams, LyXFont const & font, string const & encoding) { + // We do ignore bparams.inputenc == "default" here because characters + // in this encoding could be treated by TeX as something different, + // e.g. if they are inside a CJK environment. See also + // http://bugzilla.lyx.org/show_bug.cgi?id=3043. return (bparams.inputenc == encoding || (bparams.inputenc == "auto" && font.language()->encoding()->latexName() == encoding)); @@ -151,7 +155,7 @@ void Paragraph::Pimpl::setChange(pos_type pos, Change const & change) } -Change const Paragraph::Pimpl::lookupChange(pos_type pos) const +Change const & Paragraph::Pimpl::lookupChange(pos_type pos) const { BOOST_ASSERT(pos >= 0 && pos <= size()); @@ -386,7 +390,7 @@ void Paragraph::Pimpl::simpleTeXBlanks(odocstream & os, TexRow & texrow, if (style.pass_thru) return; - if (column > lyxrc.ascii_linelen + if (column > lyxrc.plaintext_linelen && i && getChar(i - 1) != ' ' && (i < size() - 1) @@ -483,7 +487,8 @@ void Paragraph::Pimpl::simpleTeXSpecialChars(Buffer const & buf, os << '\n'; } else { if (open_font) { - column += running_font.latexWriteEndChanges(os, basefont, basefont); + column += running_font.latexWriteEndChanges( + os, basefont, basefont, bparams); open_font = false; } basefont = owner_->getLayoutFont(bparams, outerfont); @@ -536,10 +541,8 @@ void Paragraph::Pimpl::simpleTeXSpecialChars(Buffer const & buf, #endif // some insets cannot be inside a font change command if (open_font && inset->noFontChange()) { - column +=running_font. - latexWriteEndChanges(os, - basefont, - basefont); + column += running_font.latexWriteEndChanges( + os, basefont, basefont, bparams); open_font = false; basefont = owner_->getLayoutFont(bparams, outerfont); running_font = basefont; @@ -663,7 +666,9 @@ void Paragraph::Pimpl::simpleTeXSpecialChars(Buffer const & buf, case 0x20ac: // EURO SIGN if (isEncoding(bparams, font, "latin9") || isEncoding(bparams, font, "cp1251") - || isEncoding(bparams, font, "utf8")) { + || isEncoding(bparams, font, "utf8") + || isEncoding(bparams, font, "latin10") + || isEncoding(bparams, font, "cp858")) { os.put(c); } else { os << "\\texteuro{}"; @@ -821,7 +826,7 @@ void Paragraph::Pimpl::validate(LaTeXFeatures & features, << endl; features.require("noun"); lyxerr[Debug::LATEX] << "Noun enabled. Font: " - << fcit->font().stateText(0) + << to_utf8(fcit->font().stateText(0)) << endl; } switch (fcit->font().color()) { @@ -836,7 +841,7 @@ void Paragraph::Pimpl::validate(LaTeXFeatures & features, default: features.require("color"); lyxerr[Debug::LATEX] << "Color enabled. Font: " - << fcit->font().stateText(0) + << to_utf8(fcit->font().stateText(0)) << endl; }