make sure language commands are the outermost ones when typesetting a paragraph (bug 1404)

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@9020 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Jean-Marc Lasgouttes 2004-09-28 13:29:19 +00:00
parent 0ebf1d4a50
commit 21f14a3a3e
2 changed files with 54 additions and 47 deletions

View File

@ -1,3 +1,9 @@
2004-09-27 Jean-Marc Lasgouttes <lasgouttes@lyx.org>
* output_latex.C (TeXOnePar): make sure font setting is the first
thing that gets output (and the last at the end). Should fix bug
1404.
2004-09-26 Lars Gullik Bjonnes <larsbj@gullik.net>
* pch.h: use proper signal include

View File

@ -223,38 +223,12 @@ TeXOnePar(Buffer const & buf,
bool further_blank_line = false;
LyXLayout_ptr style;
// well we have to check if we are in an inset with unlimited
// length (all in one row) if that is true then we don't allow
// any special options in the paragraph and also we don't allow
// any environment other then "Standard" to be valid!
if (!pit->forceDefaultParagraphs()) {
// In an an inset with unlimited length (all in one row),
// force layout to default
if (!pit->forceDefaultParagraphs())
style = pit->layout();
if (pit->params().startOfAppendix()) {
os << "\\appendix\n";
texrow.newline();
}
if (!pit->params().spacing().isDefault()
&& (pit == paragraphs.begin()
|| !boost::prior(pit)->hasSameLayout(*pit)))
{
os << pit->params().spacing().writeEnvirBegin() << '\n';
texrow.newline();
}
if (style->isCommand()) {
os << '\n';
texrow.newline();
}
if (further_blank_line) {
os << '\n';
texrow.newline();
}
} else {
else
style = bparams.getLyXTextClass().defaultLayout();
}
Language const * language = pit->getParLanguage(bparams);
Language const * doc_language = bparams.language;
@ -298,6 +272,33 @@ TeXOnePar(Buffer const & buf,
texrow.newline();
}
// In an an inset with unlimited length (all in one row),
// don't allow any special options in the paragraph
if (!pit->forceDefaultParagraphs()) {
if (pit->params().startOfAppendix()) {
os << "\\appendix\n";
texrow.newline();
}
if (!pit->params().spacing().isDefault()
&& (pit == paragraphs.begin()
|| !boost::prior(pit)->hasSameLayout(*pit)))
{
os << pit->params().spacing().writeEnvirBegin() << '\n';
texrow.newline();
}
if (style->isCommand()) {
os << '\n';
texrow.newline();
}
if (further_blank_line) {
os << '\n';
texrow.newline();
}
}
switch (style->latextype) {
case LATEX_COMMAND:
os << '\\' << style->latexname();
@ -387,6 +388,23 @@ paragraphs);
}
}
if (!pit->forceDefaultParagraphs()) {
further_blank_line = false;
if (further_blank_line) {
os << '\n';
texrow.newline();
}
if (!pit->params().spacing().isDefault()
&& (boost::next(pit) == paragraphs.end()
|| !boost::next(pit)->hasSameLayout(*pit)))
{
os << pit->params().spacing().writeEnvirEnd() << '\n';
texrow.newline();
}
}
if (boost::next(pit) == const_cast<ParagraphList&>(paragraphs).end()
&& language->babel() != doc_language->babel()) {
// Since \selectlanguage write the language to the aux file,
@ -406,23 +424,6 @@ paragraphs);
texrow.newline();
}
if (!pit->forceDefaultParagraphs()) {
further_blank_line = false;
if (further_blank_line) {
os << '\n';
texrow.newline();
}
if (!pit->params().spacing().isDefault()
&& (boost::next(pit) == paragraphs.end()
|| !boost::next(pit)->hasSameLayout(*pit)))
{
os << pit->params().spacing().writeEnvirEnd() << '\n';
texrow.newline();
}
}
// we don't need it for the last paragraph!!!
// Note from JMarc: we will re-add a \n explicitely in
// TeXEnvironment, because it is needed in this case