mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-22 18:08:10 +00:00
use stringstream, remove some old footnote handling
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@1990 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
76ca534828
commit
8ac09fc110
@ -1762,10 +1762,10 @@ bool BufferView::Pimpl::Dispatch(kb_action action, string const & argument)
|
||||
owner_->getLyXFunc()->setMessage(tmpinset->EditMessage());
|
||||
int y = 0;
|
||||
if (is_rtl) {
|
||||
LyXFont font =
|
||||
LyXFont const font =
|
||||
TEXT(bv_)->GetFont(buffer_,
|
||||
TEXT(bv_)->cursor.par(),
|
||||
TEXT(bv_)->cursor.pos());
|
||||
TEXT(bv_)->cursor.par(),
|
||||
TEXT(bv_)->cursor.pos());
|
||||
y = tmpinset->descent(bv_,font);
|
||||
}
|
||||
tmpinset->Edit(bv_, 0, y, 0);
|
||||
@ -2109,13 +2109,16 @@ bool BufferView::Pimpl::Dispatch(kb_action action, string const & argument)
|
||||
|
||||
case LFUN_PROTECTEDSPACE:
|
||||
{
|
||||
LyXLayout const & style =
|
||||
textclasslist.Style(buffer_->params.textclass,
|
||||
TEXT(bv_)->cursor.par()->GetLayout());
|
||||
LyXLayout const & style = textclasslist
|
||||
.Style(buffer_->params.textclass,
|
||||
TEXT(bv_)->cursor.par()->GetLayout());
|
||||
|
||||
if (style.free_spacing) {
|
||||
TEXT(bv_)->InsertChar(bv_, ' ');
|
||||
update(TEXT(bv_), BufferView::SELECT|BufferView::FITCUR|BufferView::CHANGE);
|
||||
update(TEXT(bv_),
|
||||
BufferView::SELECT
|
||||
| BufferView::FITCUR
|
||||
| BufferView::CHANGE);
|
||||
} else {
|
||||
bv_->protectedBlank(TEXT(bv_));
|
||||
}
|
||||
@ -2126,12 +2129,14 @@ bool BufferView::Pimpl::Dispatch(kb_action action, string const & argument)
|
||||
case LFUN_SETMARK:
|
||||
if (TEXT(bv_)->mark_set) {
|
||||
beforeChange(TEXT(bv_));
|
||||
update(TEXT(bv_), BufferView::SELECT|BufferView::FITCUR);
|
||||
update(TEXT(bv_),
|
||||
BufferView::SELECT|BufferView::FITCUR);
|
||||
owner_->getLyXFunc()->setMessage(N_("Mark removed"));
|
||||
} else {
|
||||
beforeChange(TEXT(bv_));
|
||||
TEXT(bv_)->mark_set = 1;
|
||||
update(TEXT(bv_), BufferView::SELECT|BufferView::FITCUR);
|
||||
update(TEXT(bv_),
|
||||
BufferView::SELECT|BufferView::FITCUR);
|
||||
owner_->getLyXFunc()->setMessage(N_("Mark set"));
|
||||
}
|
||||
TEXT(bv_)->sel_cursor = TEXT(bv_)->cursor;
|
||||
@ -2143,7 +2148,9 @@ bool BufferView::Pimpl::Dispatch(kb_action action, string const & argument)
|
||||
TEXT(bv_)->sel_cursor =
|
||||
TEXT(bv_)->cursor;
|
||||
update(TEXT(bv_),
|
||||
BufferView::SELECT|BufferView::FITCUR|BufferView::CHANGE);
|
||||
BufferView::SELECT
|
||||
| BufferView::FITCUR
|
||||
| BufferView::CHANGE);
|
||||
// It is possible to make it a lot faster still
|
||||
// just comment out the line below...
|
||||
showCursor();
|
||||
|
@ -1,5 +1,15 @@
|
||||
2001-05-08 Lars Gullik Bjønnes <larsbj@birdstep.com>
|
||||
|
||||
* paragraph.C (writeFile): remove footflag arg
|
||||
|
||||
* buffer.C (makeLaTeXFile): use stringstream
|
||||
(latexParagraphs): remove footnot gurba
|
||||
|
||||
* LaTeXFeatures.C (getPackages): use stringstream
|
||||
(getMacros): likewise
|
||||
(getTClassPreamble): likewise
|
||||
(getFloatDefinitions): new method
|
||||
|
||||
* paragraph.C (writeFile): reindent
|
||||
(Erase): reindent
|
||||
|
||||
|
@ -127,23 +127,24 @@ void LaTeXFeatures::require(string const & name)
|
||||
}
|
||||
|
||||
|
||||
string const LaTeXFeatures::getPackages()
|
||||
string const LaTeXFeatures::getPackages() const
|
||||
{
|
||||
string packages;
|
||||
ostringstream packages;
|
||||
LyXTextClass const & tclass =
|
||||
textclasslist.TextClass(params.textclass);
|
||||
|
||||
// array-package
|
||||
if (array)
|
||||
packages += "\\usepackage{array}\n";
|
||||
packages << "\\usepackage{array}\n";
|
||||
|
||||
// color.sty
|
||||
if (color) {
|
||||
if (params.graphicsDriver == "default")
|
||||
packages += "\\usepackage{color}\n";
|
||||
packages << "\\usepackage{color}\n";
|
||||
else
|
||||
packages += "\\usepackage["
|
||||
+ params.graphicsDriver + "]{color}\n";
|
||||
packages << "\\usepackage["
|
||||
<< params.graphicsDriver
|
||||
<< "]{color}\n";
|
||||
}
|
||||
|
||||
// makeidx.sty
|
||||
@ -151,47 +152,49 @@ string const LaTeXFeatures::getPackages()
|
||||
if (! tclass.provides(LyXTextClass::makeidx)
|
||||
&& params.language->babel() != "french") // french provides
|
||||
// \index !
|
||||
packages += "\\usepackage{makeidx}\n";
|
||||
packages += "\\makeindex\n";
|
||||
packages << "\\usepackage{makeidx}\n";
|
||||
packages << "\\makeindex\n";
|
||||
}
|
||||
|
||||
// graphicx.sty
|
||||
if (graphicx && params.graphicsDriver != "none") {
|
||||
if (params.graphicsDriver == "default")
|
||||
packages += "\\usepackage{graphicx}\n";
|
||||
packages << "\\usepackage{graphicx}\n";
|
||||
else
|
||||
packages += "\\usepackage["
|
||||
+ params.graphicsDriver + "]{graphicx}\n";
|
||||
packages << "\\usepackage["
|
||||
<< params.graphicsDriver
|
||||
<< "]{graphicx}\n";
|
||||
}
|
||||
|
||||
// INSET_GRAPHICS: remove this when InsetFig is thrown.
|
||||
// graphics.sty
|
||||
if (graphics && params.graphicsDriver != "none") {
|
||||
if (params.graphicsDriver == "default")
|
||||
packages += "\\usepackage{graphics}\n";
|
||||
packages << "\\usepackage{graphics}\n";
|
||||
else
|
||||
packages += "\\usepackage["
|
||||
+ params.graphicsDriver + "]{graphics}\n";
|
||||
packages << "\\usepackage["
|
||||
<< params.graphicsDriver
|
||||
<< "]{graphics}\n";
|
||||
}
|
||||
|
||||
// verbatim.sty
|
||||
if (verbatim)
|
||||
packages += "\\usepackage{verbatim}\n";
|
||||
packages << "\\usepackage{verbatim}\n";
|
||||
|
||||
if (algorithm) {
|
||||
packages += "\\usepackage{algorithm}\n";
|
||||
packages << "\\usepackage{algorithm}\n";
|
||||
}
|
||||
|
||||
// lyxchess.sty
|
||||
if (chess) {
|
||||
packages += "\\usepackage{lyxchess}\n";
|
||||
packages << "\\usepackage{lyxchess}\n";
|
||||
}
|
||||
|
||||
// setspace.sty
|
||||
if ((params.spacing.getSpace() != Spacing::Single
|
||||
&& !params.spacing.isDefault())
|
||||
|| setspace) {
|
||||
packages += "\\usepackage{setspace}\n";
|
||||
packages << "\\usepackage{setspace}\n";
|
||||
}
|
||||
switch (params.spacing.getSpace()) {
|
||||
case Spacing::Default:
|
||||
@ -200,59 +203,57 @@ string const LaTeXFeatures::getPackages()
|
||||
//packages += "\\singlespacing\n";
|
||||
break;
|
||||
case Spacing::Onehalf:
|
||||
packages += "\\onehalfspacing\n";
|
||||
packages << "\\onehalfspacing\n";
|
||||
break;
|
||||
case Spacing::Double:
|
||||
packages += "\\doublespacing\n";
|
||||
packages << "\\doublespacing\n";
|
||||
break;
|
||||
case Spacing::Other:
|
||||
std::ostringstream value;
|
||||
value << params.spacing.getValue(); // setw?
|
||||
packages += string("\\setstretch{")
|
||||
+ value.str().c_str() + "}\n";
|
||||
packages << "\\setstretch{"
|
||||
<< params.spacing.getValue() << "}\n";
|
||||
break;
|
||||
}
|
||||
|
||||
//longtable.sty
|
||||
if (longtable)
|
||||
packages += "\\usepackage{longtable}\n";
|
||||
packages << "\\usepackage{longtable}\n";
|
||||
|
||||
//rotating.sty
|
||||
if (rotating)
|
||||
packages += "\\usepackage{rotating}\n";
|
||||
packages << "\\usepackage{rotating}\n";
|
||||
|
||||
// amssymb.sty
|
||||
if (amssymb || params.use_amsmath)
|
||||
packages += "\\usepackage{amssymb}\n";
|
||||
packages << "\\usepackage{amssymb}\n";
|
||||
|
||||
// latexsym.sty
|
||||
if (latexsym)
|
||||
packages += "\\usepackage{latexsym}\n";
|
||||
packages << "\\usepackage{latexsym}\n";
|
||||
|
||||
// pifont.sty
|
||||
if (pifont)
|
||||
packages += "\\usepackage{pifont}\n";
|
||||
packages << "\\usepackage{pifont}\n";
|
||||
|
||||
// subfigure.sty
|
||||
if (subfigure)
|
||||
packages += "\\usepackage{subfigure}\n";
|
||||
packages << "\\usepackage{subfigure}\n";
|
||||
|
||||
// floatflt.sty
|
||||
if (floatflt)
|
||||
packages += "\\usepackage{floatflt}\n";
|
||||
packages << "\\usepackage{floatflt}\n";
|
||||
|
||||
// url.sty
|
||||
if (url && ! tclass.provides(LyXTextClass::url))
|
||||
packages += "\\IfFileExists{url.sty}{\\usepackage{url}}\n"
|
||||
packages << "\\IfFileExists{url.sty}{\\usepackage{url}}\n"
|
||||
" {\\newcommand{\\url}{\\texttt}}\n";
|
||||
|
||||
// varioref.sty
|
||||
if (varioref)
|
||||
packages += "\\usepackage{varioref}\n";
|
||||
packages << "\\usepackage{varioref}\n";
|
||||
|
||||
// prettyref.sty
|
||||
if (prettyref)
|
||||
packages += "\\usepackage{prettyref}\n";
|
||||
packages << "\\usepackage{prettyref}\n";
|
||||
|
||||
// float.sty
|
||||
// We only need float.sty if we use non builtin floats. This includes
|
||||
@ -269,63 +270,66 @@ string const LaTeXFeatures::getPackages()
|
||||
}
|
||||
}
|
||||
if (use_float)
|
||||
packages += "\\usepackage{float}\n";
|
||||
packages << "\\usepackage{float}\n";
|
||||
}
|
||||
|
||||
packages += externalPreambles;
|
||||
packages << externalPreambles;
|
||||
|
||||
return packages;
|
||||
return packages.str().c_str();
|
||||
}
|
||||
|
||||
|
||||
string const LaTeXFeatures::getMacros()
|
||||
string const LaTeXFeatures::getMacros() const
|
||||
{
|
||||
string macros;
|
||||
ostringstream macros;
|
||||
|
||||
// always include this
|
||||
if (true || lyx)
|
||||
macros += lyx_def + '\n';
|
||||
macros << lyx_def << '\n';
|
||||
|
||||
if (lyxline)
|
||||
macros += lyxline_def + '\n';
|
||||
macros << lyxline_def << '\n';
|
||||
|
||||
if (noun) {
|
||||
macros += noun_def + '\n';
|
||||
macros << noun_def << '\n';
|
||||
}
|
||||
|
||||
if (lyxarrow) {
|
||||
macros += lyxarrow_def + '\n';
|
||||
macros << lyxarrow_def << '\n';
|
||||
}
|
||||
|
||||
// quotes.
|
||||
if (quotesinglbase)
|
||||
macros += quotesinglbase_def + '\n';
|
||||
macros << quotesinglbase_def << '\n';
|
||||
if (quotedblbase)
|
||||
macros += quotedblbase_def + '\n';
|
||||
macros << quotedblbase_def << '\n';
|
||||
if (guilsinglleft)
|
||||
macros += guilsinglleft_def + '\n';
|
||||
macros << guilsinglleft_def << '\n';
|
||||
if (guilsinglright)
|
||||
macros += guilsinglright_def + '\n';
|
||||
macros << guilsinglright_def << '\n';
|
||||
if (guillemotleft)
|
||||
macros += guillemotleft_def + '\n';
|
||||
macros << guillemotleft_def << '\n';
|
||||
if (guillemotright)
|
||||
macros += guillemotright_def + '\n';
|
||||
macros << guillemotright_def << '\n';
|
||||
|
||||
// Math mode
|
||||
if (boldsymbol && !amsstyle)
|
||||
macros += boldsymbol_def + '\n';
|
||||
macros << boldsymbol_def << '\n';
|
||||
if (binom && !amsstyle)
|
||||
macros += binom_def + '\n';
|
||||
macros << binom_def << '\n';
|
||||
|
||||
// other
|
||||
if (NeedLyXMinipageIndent)
|
||||
macros += minipageindent_def;
|
||||
macros << minipageindent_def;
|
||||
if (LyXParagraphIndent)
|
||||
macros += paragraphindent_def;
|
||||
macros << paragraphindent_def;
|
||||
if (NeedLyXFootnoteCode)
|
||||
macros += floatingfootnote_def;
|
||||
macros << floatingfootnote_def;
|
||||
|
||||
// floats
|
||||
getFloatDefinitions(macros);
|
||||
|
||||
#if 0
|
||||
// Here we will output the code to create the needed float styles.
|
||||
// We will try to do this as minimal as possible.
|
||||
// \floatstyle{ruled}
|
||||
@ -369,52 +373,55 @@ string const LaTeXFeatures::getMacros()
|
||||
}
|
||||
}
|
||||
macros += floats.str().c_str();
|
||||
|
||||
#endif
|
||||
|
||||
for (LanguageList::const_iterator cit = UsedLanguages.begin();
|
||||
cit != UsedLanguages.end(); ++cit)
|
||||
if (!(*cit)->latex_options().empty())
|
||||
macros += (*cit)->latex_options() + '\n';
|
||||
macros << (*cit)->latex_options() << '\n';
|
||||
if (!params.language->latex_options().empty())
|
||||
macros += params.language->latex_options() + '\n';
|
||||
macros << params.language->latex_options() << '\n';
|
||||
|
||||
return macros;
|
||||
return macros.str().c_str();
|
||||
}
|
||||
|
||||
|
||||
string const LaTeXFeatures::getTClassPreamble()
|
||||
string const LaTeXFeatures::getTClassPreamble() const
|
||||
{
|
||||
// the text class specific preamble
|
||||
LyXTextClass const & tclass =
|
||||
textclasslist.TextClass(params.textclass);
|
||||
string tcpreamble = tclass.preamble();
|
||||
ostringstream tcpreamble;
|
||||
|
||||
tcpreamble << tclass.preamble();
|
||||
|
||||
for (unsigned int i = 0; i < tclass.numLayouts(); ++i) {
|
||||
if (layout[i]) {
|
||||
tcpreamble += tclass[i].preamble();
|
||||
tcpreamble << tclass[i].preamble();
|
||||
}
|
||||
}
|
||||
|
||||
return tcpreamble;
|
||||
return tcpreamble.str().c_str();
|
||||
}
|
||||
|
||||
|
||||
string const LaTeXFeatures::getIncludedFiles(string const fname) const
|
||||
string const LaTeXFeatures::getIncludedFiles(string const & fname) const
|
||||
{
|
||||
string sgmlpreamble;
|
||||
string basename = OnlyPath(fname);
|
||||
ostringstream sgmlpreamble;
|
||||
string const basename = OnlyPath(fname);
|
||||
|
||||
FileMap::const_iterator end = IncludedFiles.end();
|
||||
for (FileMap::const_iterator fi = IncludedFiles.begin();
|
||||
fi != end; ++fi)
|
||||
sgmlpreamble += "\n<!ENTITY " + fi->first
|
||||
+ (IsSGMLFilename(fi->second) ? " SYSTEM \"" : " \"" )
|
||||
+ MakeRelPath(fi->second,basename) + "\">";
|
||||
sgmlpreamble << "\n<!ENTITY " << fi->first
|
||||
<< (IsSGMLFilename(fi->second) ? " SYSTEM \"" : " \"" )
|
||||
<< MakeRelPath(fi->second,basename) << "\">";
|
||||
|
||||
return sgmlpreamble;
|
||||
return sgmlpreamble.str().c_str();
|
||||
}
|
||||
|
||||
|
||||
void LaTeXFeatures::showStruct() {
|
||||
void LaTeXFeatures::showStruct() const{
|
||||
lyxerr << "LyX needs the following commands when LaTeXing:"
|
||||
<< "\n***** Packages:" << getPackages()
|
||||
<< "\n***** Macros:" << getMacros()
|
||||
@ -427,3 +434,63 @@ BufferParams const & LaTeXFeatures::bufferParams() const
|
||||
{
|
||||
return params;
|
||||
}
|
||||
|
||||
|
||||
void LaTeXFeatures::getFloatDefinitions(ostream & os) const
|
||||
{
|
||||
// Here we will output the code to create the needed float styles.
|
||||
// We will try to do this as minimal as possible.
|
||||
// \floatstyle{ruled}
|
||||
// \newfloat{algorithm}{htbp}{loa}
|
||||
// \floatname{algorithm}{Algorithm}
|
||||
UsedFloats::const_iterator cit = usedFloats.begin();
|
||||
UsedFloats::const_iterator end = usedFloats.end();
|
||||
// ostringstream floats;
|
||||
for (; cit != end; ++cit) {
|
||||
Floating const & fl = floatList.getType((*cit));
|
||||
|
||||
// For builtin floats we do nothing.
|
||||
if (fl.builtin()) continue;
|
||||
|
||||
// We have to special case "table" and "figure"
|
||||
if (fl.type() == "tabular" || fl.type() == "figure") {
|
||||
// Output code to modify "table" or "figure"
|
||||
// but only if builtin == false
|
||||
// and that have to be true at this point in the
|
||||
// function.
|
||||
string const type = fl.type();
|
||||
string const placement = fl.placement();
|
||||
string const style = fl.style();
|
||||
if (!style.empty()) {
|
||||
os << "\\floatstyle{" << style << "}\n"
|
||||
<< "\\restylefloat{" << type << "}\n";
|
||||
}
|
||||
if (!placement.empty()) {
|
||||
os << "\\floatplacement{" << type << "}{"
|
||||
<< placement << "}\n";
|
||||
}
|
||||
} else {
|
||||
// The other non builtin floats.
|
||||
|
||||
string const type = fl.type();
|
||||
string const placement = fl.placement();
|
||||
string const ext = fl.ext();
|
||||
string const within = fl.within();
|
||||
string const style = fl.style();
|
||||
string const name = fl.name();
|
||||
os << "\\floatstyle{" << style << "}\n"
|
||||
<< "\\newfloat{" << type << "}{" << placement
|
||||
<< "}{" << ext << "}";
|
||||
if (!within.empty())
|
||||
os << "[" << within << "]";
|
||||
os << "\n"
|
||||
<< "\\floatname{" << type << "}{"
|
||||
<< name << "}\n";
|
||||
|
||||
// What missing here is to code to minimalize the code
|
||||
// outputted so that the same flotastyle will not be
|
||||
// used several times. when the same style is still in
|
||||
// effect. (Lgb)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -36,16 +36,18 @@ struct LaTeXFeatures {
|
||||
///
|
||||
LaTeXFeatures(BufferParams const &, LyXTextClass::size_type n) ;
|
||||
/// The packaes needed by the document
|
||||
string const getPackages();
|
||||
string const getPackages() const;
|
||||
/// The macros definitions needed by the document
|
||||
string const getMacros();
|
||||
string const getMacros() const;
|
||||
/// The definitions needed by the document's textclass
|
||||
string const getTClassPreamble();
|
||||
string const getTClassPreamble() const;
|
||||
///
|
||||
string const getIncludedFiles(string const fname) const;
|
||||
string const getIncludedFiles(string const & fname) const;
|
||||
///
|
||||
void getFloatDefinitions(ostream & os) const;
|
||||
|
||||
///
|
||||
void showStruct();
|
||||
void showStruct() const;
|
||||
|
||||
/// Provide a string name-space to the requirements
|
||||
void require(string const & name);
|
||||
|
70
src/buffer.C
70
src/buffer.C
@ -1464,12 +1464,11 @@ bool Buffer::writeFile(string const & fname, bool flag) const
|
||||
// now write out the buffer paramters.
|
||||
params.writeFile(ofs);
|
||||
|
||||
char footnoteflag = 0;
|
||||
char depth = 0;
|
||||
|
||||
// this will write out all the paragraphs
|
||||
// using recursive descent.
|
||||
paragraph->writeFile(this, ofs, params, footnoteflag, depth);
|
||||
paragraph->writeFile(this, ofs, params, depth);
|
||||
|
||||
// Write marker that shows file is complete
|
||||
ofs << "\n\\the_end" << endl;
|
||||
@ -1774,13 +1773,13 @@ void Buffer::makeLaTeXFile(string const & fname,
|
||||
|
||||
ofs << "\\documentclass";
|
||||
|
||||
string options; // the document class options.
|
||||
ostringstream options; // the document class options.
|
||||
|
||||
if (tokenPos(tclass.opt_fontsize(),
|
||||
'|', params.fontsize) >= 0) {
|
||||
// only write if existing in list (and not default)
|
||||
options += params.fontsize;
|
||||
options += "pt,";
|
||||
options << params.fontsize;
|
||||
options << "pt,";
|
||||
}
|
||||
|
||||
|
||||
@ -1788,22 +1787,22 @@ void Buffer::makeLaTeXFile(string const & fname,
|
||||
(params.paperpackage == BufferParams::PACKAGE_NONE)) {
|
||||
switch (params.papersize) {
|
||||
case BufferParams::PAPER_A4PAPER:
|
||||
options += "a4paper,";
|
||||
options << "a4paper,";
|
||||
break;
|
||||
case BufferParams::PAPER_USLETTER:
|
||||
options += "letterpaper,";
|
||||
options << "letterpaper,";
|
||||
break;
|
||||
case BufferParams::PAPER_A5PAPER:
|
||||
options += "a5paper,";
|
||||
options << "a5paper,";
|
||||
break;
|
||||
case BufferParams::PAPER_B5PAPER:
|
||||
options += "b5paper,";
|
||||
options << "b5paper,";
|
||||
break;
|
||||
case BufferParams::PAPER_EXECUTIVEPAPER:
|
||||
options += "executivepaper,";
|
||||
options << "executivepaper,";
|
||||
break;
|
||||
case BufferParams::PAPER_LEGALPAPER:
|
||||
options += "legalpaper,";
|
||||
options << "legalpaper,";
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -1812,26 +1811,25 @@ void Buffer::makeLaTeXFile(string const & fname,
|
||||
if (params.sides != tclass.sides()) {
|
||||
switch (params.sides) {
|
||||
case LyXTextClass::OneSide:
|
||||
options += "oneside,";
|
||||
options << "oneside,";
|
||||
break;
|
||||
case LyXTextClass::TwoSides:
|
||||
options += "twoside,";
|
||||
options << "twoside,";
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// if needed
|
||||
if (params.columns != tclass.columns()) {
|
||||
if (params.columns == 2)
|
||||
options += "twocolumn,";
|
||||
options << "twocolumn,";
|
||||
else
|
||||
options += "onecolumn,";
|
||||
options << "onecolumn,";
|
||||
}
|
||||
|
||||
if (!params.use_geometry
|
||||
&& params.orientation == BufferParams::ORIENTATION_LANDSCAPE)
|
||||
options += "landscape,";
|
||||
options << "landscape,";
|
||||
|
||||
// language should be a parameter to \documentclass
|
||||
use_babel = false;
|
||||
@ -1851,17 +1849,18 @@ void Buffer::makeLaTeXFile(string const & fname,
|
||||
language_options += (*cit)->babel() + ',';
|
||||
language_options += params.language->babel();
|
||||
if (lyxrc.language_global_options)
|
||||
options += language_options + ',';
|
||||
options << language_options << ',';
|
||||
}
|
||||
|
||||
// the user-defined options
|
||||
if (!params.options.empty()) {
|
||||
options += params.options + ',';
|
||||
options << params.options << ',';
|
||||
}
|
||||
|
||||
if (!options.empty()){
|
||||
options = strip(options, ',');
|
||||
ofs << '[' << options << ']';
|
||||
|
||||
string strOptions(options.str().c_str());
|
||||
if (!strOptions.empty()){
|
||||
strOptions = strip(strOptions, ',');
|
||||
ofs << '[' << strOptions << ']';
|
||||
}
|
||||
|
||||
ofs << '{'
|
||||
@ -2219,9 +2218,6 @@ void Buffer::latexParagraphs(ostream & ofs, LyXParagraph * par,
|
||||
{
|
||||
bool was_title = false;
|
||||
bool already_title = false;
|
||||
std::ostringstream ftnote;
|
||||
TexRow ft_texrow;
|
||||
int ftcount = 0;
|
||||
|
||||
// if only_body
|
||||
while (par != endpar) {
|
||||
@ -2242,32 +2238,12 @@ void Buffer::latexParagraphs(ostream & ofs, LyXParagraph * par,
|
||||
already_title = true;
|
||||
was_title = false;
|
||||
}
|
||||
// We are at depth 0 so we can just use
|
||||
// ordinary \footnote{} generation
|
||||
// flag this with ftcount
|
||||
ftcount = -1;
|
||||
|
||||
if (layout.isEnvironment()) {
|
||||
par = par->TeXEnvironment(this, params, ofs, texrow);
|
||||
} else {
|
||||
par = par->TeXOnePar(this, params, ofs, texrow, false);
|
||||
}
|
||||
|
||||
// Write out what we've generated...
|
||||
if (ftcount >= 1) {
|
||||
if (ftcount > 1) {
|
||||
ofs << "\\addtocounter{footnote}{-"
|
||||
<< ftcount - 1
|
||||
<< '}';
|
||||
}
|
||||
ofs << ftnote.str();
|
||||
texrow += ft_texrow;
|
||||
|
||||
// The extra .c_str() is needed when we use
|
||||
// lyxstring instead of the STL string class.
|
||||
ftnote.str(string().c_str());
|
||||
ft_texrow.reset();
|
||||
ftcount = 0;
|
||||
}
|
||||
}
|
||||
// It might be that we only have a title in this document
|
||||
if (was_title && !already_title) {
|
||||
|
@ -165,7 +165,7 @@ void InsetText::Write(Buffer const * buf, ostream & os) const
|
||||
|
||||
void InsetText::WriteParagraphData(Buffer const * buf, ostream & os) const
|
||||
{
|
||||
par->writeFile(buf, os, buf->params, 0, 0);
|
||||
par->writeFile(buf, os, buf->params, 0);
|
||||
}
|
||||
|
||||
|
||||
@ -947,7 +947,7 @@ InsetText::LocalDispatch(BufferView * bv,
|
||||
break;
|
||||
case LFUN_PASTESELECTION:
|
||||
{
|
||||
string clip(bv->getClipboard());
|
||||
string const clip(bv->getClipboard());
|
||||
|
||||
if (clip.empty())
|
||||
break;
|
||||
@ -1118,9 +1118,8 @@ int InsetText::Ascii(Buffer const * buf, ostream & os, int linelen) const
|
||||
LyXParagraph * p = par;
|
||||
unsigned int lines = 0;
|
||||
|
||||
string tmp;
|
||||
while (p) {
|
||||
tmp = buf->asciiParagraph(p, linelen);
|
||||
string const tmp = buf->asciiParagraph(p, linelen);
|
||||
lines += countChar(tmp, '\n');
|
||||
os << tmp;
|
||||
p = p->next();
|
||||
@ -1133,11 +1132,11 @@ int InsetText::DocBook(Buffer const * buf, ostream & os) const
|
||||
{
|
||||
LyXParagraph * p = par;
|
||||
unsigned int lines = 0;
|
||||
int desc=0;
|
||||
int desc = 0;
|
||||
|
||||
string tmp;
|
||||
while (p) {
|
||||
buf->SimpleDocBookOnePar(os,tmp,p,desc,0);
|
||||
buf->SimpleDocBookOnePar(os, tmp, p, desc, 0);
|
||||
p = p->next();
|
||||
}
|
||||
|
||||
@ -1148,7 +1147,7 @@ int InsetText::DocBook(Buffer const * buf, ostream & os) const
|
||||
void InsetText::Validate(LaTeXFeatures & features) const
|
||||
{
|
||||
LyXParagraph * p = par;
|
||||
while(p) {
|
||||
while (p) {
|
||||
p->validate(features);
|
||||
p = p->next();
|
||||
}
|
||||
@ -1243,6 +1242,7 @@ InsetText::moveRight(BufferView * bv, bool activate_inset, bool selecting)
|
||||
return moveRightIntern(bv, false, activate_inset, selecting);
|
||||
}
|
||||
|
||||
|
||||
UpdatableInset::RESULT
|
||||
InsetText::moveLeft(BufferView * bv, bool activate_inset, bool selecting)
|
||||
{
|
||||
@ -1558,6 +1558,7 @@ LyXParagraph * InsetText::cpar(BufferView * bv) const
|
||||
return TEXT(bv)->cursor.par();
|
||||
}
|
||||
|
||||
|
||||
bool InsetText::cboundary(BufferView * bv) const
|
||||
{
|
||||
return TEXT(bv)->cursor.boundary();
|
||||
@ -1691,6 +1692,7 @@ void InsetText::removeNewlines()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
bool InsetText::nodraw() const
|
||||
{
|
||||
if (the_locking_inset)
|
||||
@ -1698,6 +1700,7 @@ bool InsetText::nodraw() const
|
||||
return UpdatableInset::nodraw();
|
||||
}
|
||||
|
||||
|
||||
int InsetText::scroll(bool recursive) const
|
||||
{
|
||||
int sx = UpdatableInset::scroll(false);
|
||||
@ -1708,6 +1711,7 @@ int InsetText::scroll(bool recursive) const
|
||||
return sx;
|
||||
}
|
||||
|
||||
|
||||
bool InsetText::doClearArea() const
|
||||
{
|
||||
return !locked || (need_update & (FULL|INIT));
|
||||
|
@ -110,7 +110,7 @@ public:
|
||||
|
||||
///
|
||||
void writeFile(Buffer const *, std::ostream &, BufferParams const &,
|
||||
char, char) const;
|
||||
char) const;
|
||||
///
|
||||
void validate(LaTeXFeatures &) const;
|
||||
|
||||
|
@ -178,7 +178,7 @@ LyXParagraph::~LyXParagraph()
|
||||
|
||||
void LyXParagraph::writeFile(Buffer const * buf, ostream & os,
|
||||
BufferParams const & bparams,
|
||||
char footflag, char dth) const
|
||||
char dth) const
|
||||
{
|
||||
// The beginning or end of a deeper (i.e. nested) area?
|
||||
if (dth != params.depth()) {
|
||||
@ -327,7 +327,7 @@ void LyXParagraph::writeFile(Buffer const * buf, ostream & os,
|
||||
|
||||
// now write the next paragraph
|
||||
if (next_)
|
||||
next_->writeFile(buf, os, bparams, footflag, dth);
|
||||
next_->writeFile(buf, os, bparams, dth);
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user