#include "support/types.h"
#include <boost/shared_ptr.hpp>
+#include "Changes.h"
namespace lyx {
class Encoding;
class ExportData;
class Font;
+class Language;
class OutputParams {
enum FLAVOR {
LATEX,
PDFLATEX,
- XML
+ XETEX,
+ XML,
+ HTML,
+ TEXT
+ };
+
+ enum TableCell {
+ NO,
+ PLAIN,
+ ALIGNED
+ };
+
+ enum Float {
+ NONFLOAT,
+ MAINFLOAT,
+ SUBFLOAT
};
OutputParams(Encoding const *);
*/
bool intitle;
+ /** inulemcmd == true means that the environment in which the
+ inset is typeset is part of a ulem command (\uline, \uuline,
+ \uwave, or \sout). Insets that output latex commands relying
+ on local assignments (such as \cite) should enclose such
+ commands in \mbox{} in order to avoid breakage.
+ */
+ mutable bool inulemcmd;
+
/** the font at the point where the inset is
*/
Font const * local_font;
*/
mutable std::string document_language;
+ /** The master language. Non-null only for child documents.
+ */
+ mutable Language const * master_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).
+ each single character (\sa Paragraph::latex).
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);
+ OutputParams runparams(runparams_in);
runparams.inComment = true;
...
InsetBla::latex(..., runparams);
*/
bool use_babel;
- /** Line length to use with plaintext export.
+ /** Are we generating multiple indices?
+ */
+ bool use_indices;
+
+ /** Are we using japanese (pLaTeX)?
+ */
+ bool use_japanese;
+
+ /** Customized bibtex_command
+ */
+ mutable std::string bibtex_command;
+
+ /** Customized index_command
+ */
+ mutable std::string index_command;
+
+ /** Line length to use with plaintext or LaTeX export.
*/
size_type linelen;
*/
bool inComment;
- /** allow output of only part of the top-level paragraphs
+ /** Whether we are in a table cell.
+ * For newline, it matters whether its content is aligned or not.
+ */
+ TableCell inTableCell;
+
+ /** Whether we are inside a float or subfloat.
+ * Needed for subfloat detection on the command line.
+ */
+ Float inFloat;
+
+ /** Whether we are inside an index inset.
+ * ERT needs to know this, due to the active chars.
+ */
+ bool inIndexEntry;
+
+ /** Whether we are inside an inset that is logically deleted.
+ * A value > 0 indicates a deleted inset.
+ */
+ int inDeletedInset;
+
+ /** The change information of the outermost logically deleted inset.
+ * changeOfDeletedInset shall only be evaluated if inDeletedInset > 0.
+ */
+ Change changeOfDeletedInset;
+
+ /** 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
+ /** 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
+ /// is this the last paragraph in the current buffer/inset?
+ bool isLastPar;
+
+ /** whether or not do actual file copying and image conversion
* This mode will be used to preview the source code
*/
bool dryrun;
+ /// Should we output verbatim or escape LaTeX's special chars?
+ bool verbatim;
+ /// Should we output captions?
+ bool html_disable_captions;
+ /// Are we already in a paragraph?
+ bool html_in_par;
+ /// Does the present context even permit paragraphs?
+ bool html_make_pars;
};