#include "Spacing.h"
#include "TexRow.h"
#include "VSpace.h"
+#include "PDFOptions.h"
#include "frontends/alert.h"
#include "insets/InsetListingsParams.h"
#include "support/convert.h"
#include "support/filetools.h"
#include "support/Translator.h"
+#include "support/lstrings.h"
#include <boost/array.hpp>
using lyx::support::bformat;
using lyx::support::rtrim;
using lyx::support::tokenPos;
+using lyx::support::prefixIs;
static char const * const string_paragraph_separation[] = {
* and for detached paragraphs in "indented" documents.
*/
VSpace defskip;
+ PDFOptions pdfoptions;
};
}
+PDFOptions & BufferParams::pdfoptions()
+{
+ return pimpl_->pdfoptions;
+}
+
+
+PDFOptions const & BufferParams::pdfoptions() const
+{
+ return pimpl_->pdfoptions;
+}
+
+
VSpace const & BufferParams::getDefSkip() const
{
return pimpl_->defskip;
spacing().set(spacetranslator().find(nspacing), tmp_val);
} else if (token == "\\float_placement") {
lex >> float_placement;
+
+ } else if (prefixIs(token, "\\pdf_") || token == "\\use_hyperref") {
+ string toktmp = pdfoptions().readToken(lex, token);
+ if (!toktmp.empty()) {
+ lyxerr << "PDFOptions::readToken(): Unknown token: " <<
+ toktmp << endl;
+ return toktmp;
+ }
} else {
lyxerr << "BufferParams::readToken(): Unknown token: " <<
token << endl;
os << "\\paperfontsize " << fontsize << '\n';
spacing().writeFile(os);
+ pdfoptions().writeFile(os);
os << "\\papersize " << string_papersize[papersize]
<< "\n\\use_geometry " << convert<string>(use_geometry)
// The optional packages;
docstring lyxpreamble(from_ascii(features.getPackages()));
+ // PDF support. Hyperref manual: "Make sure it comes last of your loaded
+ // packages, to give it a fighting chance of not being over-written,
+ // since its job is to redefine many LATEX commands."
+ // Has to be put into lyxpreamble (preserving line-counting for error
+ // parsing).
+ odocstringstream oss;
+ pdfoptions().writeLaTeX(oss);
+ lyxpreamble += oss.str();
+
// this might be useful...
lyxpreamble += "\n\\makeatletter\n";
}
-TextClass_ptr BufferParams::getTextClass_ptr() const {
+TextClassPtr BufferParams::getTextClassPtr() const {
return textClass_;
}
-void BufferParams::setTextClass(TextClass_ptr tc) {
+void BufferParams::setTextClass(TextClassPtr tc) {
textClass_ = tc;
}