mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-24 18:43:37 +00:00
4f1d5e72ef
* src/insets/insetcaption.C (InsetCaption::latex): Copy back encoding to runparams_in * src/insets/insetfoot.C (InsetFoot::latex): ditto * src/insets/insetnote.C (InsetNote::latex): ditto * src/exporter.C (Exporter::Export): Create runparams with document encoding * src/converter.C (bool Converters::convert): ditto * src/buffer.C (Buffer::writeLaTeXSource): Copy back encoding to runparams_in (Buffer::runChktex): Create runparams with document encoding (Buffer::changeRefsIfUnique): ditto * src/outputparams.[Ch] (encoding): New member * src/lyxfont.C (LyXFont::latexWriteStartChanges): Don't switch the encoding anymore. This is now done in Paragraph::simpleTeXOnePar. (LyXFont::latexWriteEndChanges): Ditto * src/output_latex.C (TeXOnePar): Ditto * src/paragraph.C (Paragraph::simpleTeXOnePar): Switch the encoding between font changes if needed. * All other files: Adjust to the changes above git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17470 a592a061-630c-0410-9148-cb99ea01b6c8
144 lines
3.5 KiB
C++
144 lines
3.5 KiB
C++
// -*- C++ -*-
|
|
/**
|
|
* \file outputparams.h
|
|
* This file is part of LyX, the document processor.
|
|
* Licence details can be found in the file COPYING.
|
|
*
|
|
* \author Angus Leeming
|
|
*
|
|
* Full author contact details are available in file CREDITS.
|
|
*/
|
|
|
|
#ifndef OUTPUTPARAMS_H
|
|
#define OUTPUTPARAMS_H
|
|
|
|
#include <string>
|
|
|
|
#include "support/types.h"
|
|
#include <boost/shared_ptr.hpp>
|
|
|
|
|
|
namespace lyx {
|
|
|
|
|
|
class Encoding;
|
|
class ExportData;
|
|
class LyXFont;
|
|
|
|
|
|
class OutputParams {
|
|
public:
|
|
enum FLAVOR {
|
|
LATEX,
|
|
PDFLATEX,
|
|
XML
|
|
};
|
|
|
|
OutputParams(Encoding const *);
|
|
~OutputParams();
|
|
|
|
/** The latex that we export depends occasionally on what is to
|
|
compile the file.
|
|
*/
|
|
FLAVOR flavor;
|
|
|
|
/** Are we to write a 'nice' LaTeX file or not.
|
|
This esentially seems to mean whether InsetInclude, InsetGraphics
|
|
and InsetExternal should add the absolute path to any external
|
|
files or not.
|
|
*/
|
|
bool nice;
|
|
|
|
/** moving_arg == true means that the environment in which the inset
|
|
is typeset is a moving argument. The inset should take care about
|
|
fragile commands by preceding the latex with \\protect.
|
|
*/
|
|
bool moving_arg;
|
|
|
|
/** intitle == true means that the environment in which the
|
|
inset is typeset is part of a title (before a \\maketitle).
|
|
Footnotes in such environments have moving arguments.
|
|
*/
|
|
bool intitle;
|
|
|
|
/** the font at the point where the inset is
|
|
*/
|
|
LyXFont const * local_font;
|
|
|
|
/** Document language babel name
|
|
*/
|
|
mutable std::string document_language;
|
|
|
|
/** Current stream encoding. Only used for LaTeX.
|
|
This must be set to the document encoding (via the constructor)
|
|
before output starts. Afterwards it must be kept up to date for
|
|
each single character (\see Paragraph::simpleTeXOnePar).
|
|
This does also mean that you need to set it back if you use a
|
|
copy (e.g. in insets): \code
|
|
int InsetFoo::latex(..., OutputParams const & runparams_in) const
|
|
{
|
|
OutputParams runparams(runparams_in);
|
|
runparams.inComment = true;
|
|
...
|
|
InsetBla::latex(..., runparams);
|
|
...
|
|
runparams_in.encoding = runparams.encoding;
|
|
}
|
|
\endcode
|
|
*/
|
|
mutable Encoding const * encoding;
|
|
|
|
/** free_spacing == true means that the inset is in a free-spacing
|
|
paragraph.
|
|
*/
|
|
bool free_spacing;
|
|
|
|
/** This var is set by the return value from BufferParams::writeLaTeX
|
|
*/
|
|
bool use_babel;
|
|
|
|
/** Line length to use with plaintext export.
|
|
*/
|
|
size_type linelen;
|
|
|
|
/** The depth of the current paragraph, set for plaintext
|
|
* export and used by InsetTabular
|
|
*/
|
|
int depth;
|
|
|
|
/** Export data filled in by the latex(), docbook() etc methods.
|
|
This is a hack: Make it possible to add stuff to constant
|
|
OutputParams instances.
|
|
*/
|
|
boost::shared_ptr<ExportData> exportdata;
|
|
|
|
/** Whether we are inside a comment inset. Insets that are including
|
|
* external files like InsetGraphics, InsetInclude and InsetExternal
|
|
* may only write the usual output and must not attempt to do
|
|
* something with the included files (e.g. copying, converting)
|
|
* if this flag is true, since they may not exist.
|
|
*/
|
|
bool inComment;
|
|
|
|
/** allow output of only part of the top-level paragraphs
|
|
* par_begin: beginning paragraph
|
|
*/
|
|
pit_type par_begin;
|
|
|
|
/** allow output of only part of the top-level paragraphs
|
|
* par_end: par_end-1 is the ending paragraph
|
|
* if par_begin=par_end, output all paragraphs
|
|
*/
|
|
pit_type par_end;
|
|
|
|
/** whether or not do actual file copying and image conversion
|
|
* This mode will be used to preview the source code
|
|
*/
|
|
bool dryrun;
|
|
};
|
|
|
|
|
|
} // namespace lyx
|
|
|
|
#endif // NOT OUTPUTPARAMS_H
|