Export Inset Cite (docbook)

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@9100 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
José Matox 2004-10-21 22:39:20 +00:00
parent f65b01c798
commit c6bf338207
3 changed files with 38 additions and 13 deletions

View File

@ -1,3 +1,8 @@
2004-10-17 Andreas Vox <vox@isp.uni-luebeck.de>
* insetcite.[hC] (docbook, latex, cleanupWhitespace): implementing
DocBook output for this inset ( <citation>content</citation> )
2004-10-05 Andreas Vox <vox@isp.uni-luebeck.de> 2004-10-05 Andreas Vox <vox@isp.uni-luebeck.de>
* insetgraphics.C (docbook) : using mediaobject for XML; * insetgraphics.C (docbook) : using mediaobject for XML;

View File

@ -324,6 +324,35 @@ int InsetCitation::plaintext(Buffer const & buffer, ostream & os, OutputParams c
} }
namespace {
string const cleanupWhitespace(string const & citelist)
{
string::const_iterator it = citelist.begin();
string::const_iterator end = citelist.end();
// Paranoia check: make sure that there is no whitespace in here
// -- at least not behind commas or at the beginning
string result;
char last = ',';
for (; it != end; ++it) {
if (*it != ' ')
last = *it;
if (*it != ' ' || last != ',')
result += *it;
}
return result;
}
// end anon namyspace
}
int InsetCitation::docbook(Buffer const &, ostream & os, OutputParams const &) const
{
os << "<citation>" << cleanupWhitespace(getContents()) << "</citation>";
return 0;
}
// Have to overwrite the default InsetCommand method in order to check that // Have to overwrite the default InsetCommand method in order to check that
// the \cite command is valid. Eg, the user has natbib enabled, inputs some // the \cite command is valid. Eg, the user has natbib enabled, inputs some
// citations and then changes his mind, turning natbib support off. The output // citations and then changes his mind, turning natbib support off. The output
@ -344,19 +373,7 @@ int InsetCitation::latex(Buffer const & buffer, ostream & os,
else if (!after.empty()) else if (!after.empty())
os << '[' << after << ']'; os << '[' << after << ']';
string::const_iterator it = getContents().begin(); os << '{' << cleanupWhitespace(getContents()) << '}';
string::const_iterator end = getContents().end();
// Paranoia check: make sure that there is no whitespace in here
string content;
char last = ',';
for (; it != end; ++it) {
if (*it != ' ')
last = *it;
if (*it != ' ' || last != ',')
content += *it;
}
os << '{' << content << '}';
return 0; return 0;
} }

View File

@ -40,6 +40,9 @@ public:
int latex(Buffer const &, std::ostream &, int latex(Buffer const &, std::ostream &,
OutputParams const &) const; OutputParams const &) const;
/// ///
int docbook(Buffer const &, std::ostream &,
OutputParams const &) const;
///
void validate(LaTeXFeatures &) const; void validate(LaTeXFeatures &) const;
private: private: