// Noindent?
if (params().noindent())
os << "\\noindent ";
-
+
+ // Do we have a manual left indent?
+ if (!params().leftIndent().zero())
+ os << "\\leftindent " << params().leftIndent().asString() << " ";
+
// Alignment?
if (params().align() != LYX_ALIGN_LAYOUT) {
int h = 0;
}
}
+ if (!params().leftIndent().zero())
+ features.require("ParagraphLeftIndent");
+
// then the insets
LyXLayout const & lout = textclasslist[bparams.textclass][layout()];
tmp->setLabelWidthString(params().labelWidthString());
}
- if (size() > pos || !size() || flag == 2) {
+ bool isempty = (textclasslist[bparams.textclass][layout()].keepempty &&
+ !size());
+ if (!isempty && (size() > pos || !size() || flag == 2)) {
tmp->layout(layout());
tmp->params().align(params().align());
tmp->setLabelWidthString(params().labelWidthString());
}
// just an idea of me
- if (!pos) {
+ if (!isempty && !pos) {
tmp->params().lineTop(params().lineTop());
tmp->params().pagebreakTop(params().pagebreakTop());
tmp->params().spaceTop(params().spaceTop());
// Fully instantiated font
LyXFont font = getFont(bparams, i);
- LyXFont const & last_font = running_font;
+ LyXFont const last_font = running_font;
// Spaces at end of font change are simulated to be
// outside font change, i.e. we write "\textXX{text} "
}
// We end font definition before blanks
- if (font != running_font && open_font) {
+ if (open_font &&
+ (font != running_font ||
+ font.language() != running_font.language()))
+ {
column += running_font.latexWriteEndChanges(os,
basefont,
(i == main_body-1) ? basefont : font);
}
// Do we need to change font?
- if (font != running_font && i != main_body - 1) {
+ if ((font != running_font ||
+ font.language() != running_font.language()) &&
+ i != main_body - 1)
+ {
column += font.latexWriteStartChanges(os, basefont,
last_font);
running_font = font;
texrow.newline();
}
}
+
+ bool leftindent_open = false;
+ if (!params().leftIndent().zero()) {
+ os << "\\begin{LyXParagraphLeftIndent}{" <<
+ params().leftIndent().asLatexString() << "}\n";
+ texrow.newline();
+ leftindent_open = true;
+ }
if (style.isEnvironment()) {
if (style.latextype == LATEX_LIST_ENVIRONMENT) {
}
} while (par
&& par->layout() == layout()
- && par->params().depth() == params().depth());
+ && par->params().depth() == params().depth()
+ && par->params().leftIndent() == params().leftIndent());
if (style.isEnvironment()) {
os << "\\end{" << style.latexname() << "}\n";
texrow.newline();
}
+ if (leftindent_open) {
+ os << "\\end{LyXParagraphLeftIndent}\n";
+ texrow.newline();
+ }
+
lyxerr[Debug::LATEX] << "TeXEnvironment...done " << par << endl;
return par; // ale970302
}
bool Paragraph::isRightToLeftPar(BufferParams const & bparams) const
{
return lyxrc.rtl_support
- && getParLanguage(bparams)->RightToLeft();
+ && getParLanguage(bparams)->RightToLeft()
+ && !(inInset() && inInset()->owner() &&
+ inInset()->owner()->lyxCode() == Inset::ERT_CODE);
}