#include "LaTeXFeatures.h"
#include "LyXAction.h"
#include "Lexer.h"
-#include "LyXText.h"
+#include "Text.h"
#include "LyXRC.h"
#include "LyXVC.h"
#include "Messages.h"
namespace {
-int const LYX_FORMAT = 265;
+int const LYX_FORMAT = 268;
} // namespace anon
*/
bool file_fully_loaded;
- /// our LyXText that should be wrapped in an InsetText
+ /// our Text that should be wrapped in an InsetText
InsetText inset;
///
}
-LyXText & Buffer::text() const
+Text & Buffer::text() const
{
- return const_cast<LyXText &>(pimpl_->inset.text_);
+ return const_cast<Text &>(pimpl_->inset.text_);
}
-InsetBase & Buffer::inset() const
+Inset & Buffer::inset() const
{
return const_cast<InsetText &>(pimpl_->inset);
}
BOOST_ASSERT(paragraphs().empty());
readHeader(lex);
- if (!params().getLyXTextClass().load(filePath())) {
- string theclass = params().getLyXTextClass().name();
+ if (!params().getTextClass().load(filePath())) {
+ string theclass = params().getTextClass().name();
Alert::error(_("Can't load document class"), bformat(
_("Using the default document class, because the "
"class %1$s could not be loaded."), from_utf8(theclass)));
// needed to insert the selection
void Buffer::insertStringAsLines(ParagraphList & pars,
pit_type & pit, pos_type & pos,
- LyXFont const & fn, docstring const & str, bool autobreakrows)
+ Font const & fn, docstring const & str, bool autobreakrows)
{
- LyXFont font = fn;
+ Font font = fn;
// insert the string, don't insert doublespace
bool space_inserted = true;
} // output_preamble
LYXERR(Debug::INFO) << "preamble finished, now the body." << endl;
- if (!lyxrc.language_auto_begin) {
+ if (!lyxrc.language_auto_begin &&
+ !params().language->babel().empty()) {
// FIXME UNICODE
os << from_utf8(subst(lyxrc.language_command_begin,
"$$lang",
texrow().newline();
}
+ Encoding const & encoding = params().encoding();
+ if (encoding.package() == Encoding::CJK) {
+ // Open a CJK environment, since in contrast to the encodings
+ // handled by inputenc the document encoding is not set in
+ // the preamble if it is handled by CJK.sty.
+ os << "\\begin{CJK}{" << from_ascii(encoding.latexName())
+ << "}{}\n";
+ texrow().newline();
+ }
+
// if we are doing a real file with body, even if this is the
// child of some other buffer, let's cut the link here.
// This happens for example if only a child document is printed.
os << endl;
texrow().newline();
- if (!lyxrc.language_auto_end) {
+ if (encoding.package() == Encoding::CJK) {
+ // Close the open CJK environment.
+ // latexParagraphs will have opened one even if the last text
+ // was not CJK.
+ os << "\\end{CJK}\n";
+ texrow().newline();
+ }
+
+ if (!lyxrc.language_auto_end &&
+ !params().language->babel().empty()) {
os << from_utf8(subst(lyxrc.language_command_end,
"$$lang",
params().language->babel()))
bool Buffer::isLatex() const
{
- return params().getLyXTextClass().outputType() == LATEX;
+ return params().getTextClass().outputType() == LATEX;
}
bool Buffer::isLiterate() const
{
- return params().getLyXTextClass().outputType() == LITERATE;
+ return params().getTextClass().outputType() == LITERATE;
}
bool Buffer::isDocBook() const
{
- return params().getLyXTextClass().outputType() == DOCBOOK;
+ return params().getTextClass().outputType() == DOCBOOK;
}
texrow().reset();
- LyXTextClass const & tclass = params().getLyXTextClass();
+ TextClass const & tclass = params().getTextClass();
string const top_element = tclass.latexname();
if (!only_body) {
<< " file was created by LyX " << lyx_version
<< "\n See http://www.lyx.org/ for more information -->\n";
- params().getLyXTextClass().counters().reset();
+ params().getTextClass().counters().reset();
sgml::openTag(os, top);
os << '\n';
void Buffer::validate(LaTeXFeatures & features) const
{
- LyXTextClass const & tclass = params().getLyXTextClass();
+ TextClass const & tclass = params().getTextClass();
if (features.isAvailable("dvipost") && params().outputChanges)
features.require("dvipost");
}
for (InsetIterator it = inset_iterator_begin(inset()); it; ++it) {
- if (it->lyxCode() == InsetBase::BIBTEX_CODE) {
+ if (it->lyxCode() == Inset::BIBTEX_CODE) {
InsetBibtex const & inset =
static_cast<InsetBibtex const &>(*it);
inset.fillWithBibKeys(*this, keys);
- } else if (it->lyxCode() == InsetBase::INCLUDE_CODE) {
+ } else if (it->lyxCode() == Inset::INCLUDE_CODE) {
InsetInclude const & inset =
static_cast<InsetInclude const &>(*it);
inset.fillWithBibKeys(*this, keys);
- } else if (it->lyxCode() == InsetBase::BIBITEM_CODE) {
+ } else if (it->lyxCode() == Inset::BIBITEM_CODE) {
InsetBibitem const & inset =
static_cast<InsetBibitem const &>(*it);
// FIXME UNICODE
bibfilesCache_.clear();
for (InsetIterator it = inset_iterator_begin(inset()); it; ++it) {
- if (it->lyxCode() == InsetBase::BIBTEX_CODE) {
+ if (it->lyxCode() == Inset::BIBTEX_CODE) {
InsetBibtex const & inset =
static_cast<InsetBibtex const &>(*it);
vector<FileName> const bibfiles = inset.getFiles(*this);
bibfilesCache_.insert(bibfilesCache_.end(),
bibfiles.begin(),
bibfiles.end());
- } else if (it->lyxCode() == InsetBase::INCLUDE_CODE) {
+ } else if (it->lyxCode() == Inset::INCLUDE_CODE) {
InsetInclude & inset =
static_cast<InsetInclude &>(*it);
inset.updateBibfilesCache(*this);
docstring const Buffer::B_(string const & l10n) const
{
- Language const * lang = pimpl_->params.language;
- if (lang)
- return getMessages(lang->code()).get(l10n);
-
- return _(l10n);
+ return params().B_(l10n);
}
InsetList::const_iterator end = insets.end();
for ( ; it != end; ++it) {
//lyxerr << "found inset code " << it->inset->lyxCode() << std::endl;
- if (it->inset->lyxCode() == InsetBase::MATHMACRO_CODE) {
+ if (it->inset->lyxCode() == Inset::MATHMACRO_CODE) {
MathMacroTemplate const & mac
= static_cast<MathMacroTemplate const &>(*it->inset);
insertMacro(mac.name(), mac.asMacroData());
void Buffer::changeRefsIfUnique(docstring const & from, docstring const & to,
- InsetBase::Code code)
+ Inset::Code code)
{
//FIXME: This does not work for child documents yet.
- BOOST_ASSERT(code == InsetBase::CITE_CODE || code == InsetBase::REF_CODE);
+ BOOST_ASSERT(code == Inset::CITE_CODE || code == Inset::REF_CODE);
// Check if the label 'from' appears more than once
vector<docstring> labels;
- if (code == InsetBase::CITE_CODE) {
+ if (code == Inset::CITE_CODE) {
vector<pair<string, docstring> > keys;
fillWithBibKeys(keys);
vector<pair<string, docstring> >::const_iterator bit = keys.begin();