#include <boost/shared_ptr.hpp>
+namespace lyx {
+
+
+class Encoding;
class ExportData;
-class Language;
+class LyXFont;
class OutputParams {
public:
- //
enum FLAVOR {
LATEX,
PDFLATEX,
XML
};
- OutputParams();
+ OutputParams(Encoding const *);
~OutputParams();
/** The latex that we export depends occasionally on what is to
/** 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.
+ 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).
+ inset is typeset is part of a title (before a \\maketitle).
Footnotes in such environments have moving arguments.
*/
bool intitle;
- /** the language at the point where the inset is
+ /** the font at the point where the inset is
*/
- Language const * local_language;
+ 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.
*/
/** Line length to use with plaintext export.
*/
- lyx::size_type linelen;
+ size_type linelen;
/** The depth of the current paragraph, set for plaintext
* export and used by InsetTabular
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