2003-05-22 18:59:10 +00:00
|
|
|
// -*- C++ -*-
|
|
|
|
/**
|
2007-04-26 04:41:58 +00:00
|
|
|
* \file OutputParams.h
|
2003-05-22 18:59:10 +00:00
|
|
|
* This file is part of LyX, the document processor.
|
|
|
|
* Licence details can be found in the file COPYING.
|
|
|
|
*
|
|
|
|
* \author Angus Leeming
|
|
|
|
*
|
2003-08-23 00:17:00 +00:00
|
|
|
* Full author contact details are available in file CREDITS.
|
2003-05-22 18:59:10 +00:00
|
|
|
*/
|
|
|
|
|
2003-11-05 12:06:20 +00:00
|
|
|
#ifndef OUTPUTPARAMS_H
|
|
|
|
#define OUTPUTPARAMS_H
|
2003-05-22 18:59:10 +00:00
|
|
|
|
2008-11-16 00:01:41 +00:00
|
|
|
|
2010-04-22 11:37:32 +00:00
|
|
|
#include "support/shared_ptr.h"
|
2007-07-21 18:10:55 +00:00
|
|
|
#include "Changes.h"
|
2004-03-27 01:18:51 +00:00
|
|
|
|
2004-04-08 15:03:33 +00:00
|
|
|
|
2006-10-21 00:16:43 +00:00
|
|
|
namespace lyx {
|
|
|
|
|
|
|
|
|
2007-03-18 10:59:16 +00:00
|
|
|
class Encoding;
|
2004-06-01 13:39:33 +00:00
|
|
|
class ExportData;
|
2007-04-29 18:17:15 +00:00
|
|
|
class Font;
|
2009-10-18 21:48:13 +00:00
|
|
|
class Language;
|
2004-06-01 13:39:33 +00:00
|
|
|
|
2005-01-19 15:03:31 +00:00
|
|
|
class OutputParams {
|
|
|
|
public:
|
2004-04-08 15:03:33 +00:00
|
|
|
enum FLAVOR {
|
2011-08-10 02:23:44 +00:00
|
|
|
DVILUATEX,
|
2004-04-08 15:03:33 +00:00
|
|
|
LATEX,
|
2010-11-23 16:07:42 +00:00
|
|
|
LUATEX,
|
2004-05-13 11:21:58 +00:00
|
|
|
PDFLATEX,
|
2009-04-06 06:58:30 +00:00
|
|
|
XETEX,
|
2009-10-25 01:48:14 +00:00
|
|
|
XML,
|
2009-11-14 12:54:12 +00:00
|
|
|
HTML,
|
2012-06-05 02:01:26 +00:00
|
|
|
TEXT,
|
|
|
|
LYX
|
2004-04-08 15:03:33 +00:00
|
|
|
};
|
2013-11-12 19:52:35 +00:00
|
|
|
|
2010-03-31 18:24:52 +00:00
|
|
|
enum MathFlavor {
|
2010-03-31 18:57:20 +00:00
|
|
|
NotApplicable,
|
2010-03-31 18:24:52 +00:00
|
|
|
MathAsMathML,
|
|
|
|
MathAsHTML,
|
|
|
|
MathAsImages,
|
|
|
|
MathAsLaTeX
|
|
|
|
};
|
2003-05-22 18:59:10 +00:00
|
|
|
|
2008-09-10 16:02:32 +00:00
|
|
|
enum TableCell {
|
|
|
|
NO,
|
|
|
|
PLAIN,
|
|
|
|
ALIGNED
|
|
|
|
};
|
|
|
|
|
2009-02-07 12:27:24 +00:00
|
|
|
enum Float {
|
|
|
|
NONFLOAT,
|
|
|
|
MAINFLOAT,
|
|
|
|
SUBFLOAT
|
|
|
|
};
|
|
|
|
|
2007-03-18 10:59:16 +00:00
|
|
|
OutputParams(Encoding const *);
|
2004-06-03 13:08:50 +00:00
|
|
|
~OutputParams();
|
2003-05-22 18:59:10 +00:00
|
|
|
|
2010-03-31 16:29:59 +00:00
|
|
|
/** The file that we export depends occasionally on what is to
|
2003-05-22 21:10:22 +00:00
|
|
|
compile the file.
|
|
|
|
*/
|
2004-04-08 15:03:33 +00:00
|
|
|
FLAVOR flavor;
|
2010-03-31 18:57:20 +00:00
|
|
|
/// is it some flavor of LaTeX?
|
|
|
|
bool isLaTeX() const;
|
2010-11-23 12:23:36 +00:00
|
|
|
/// does this flavour support full unicode?
|
|
|
|
bool isFullUnicode() const;
|
2013-11-12 19:52:35 +00:00
|
|
|
|
2010-03-31 18:24:52 +00:00
|
|
|
/// Same, but for math output, which only matter is XHTML output.
|
|
|
|
MathFlavor math_flavor;
|
2013-11-12 19:52:35 +00:00
|
|
|
|
2003-05-22 21:10:22 +00:00
|
|
|
/** 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;
|
2003-05-22 22:44:30 +00:00
|
|
|
|
2012-10-03 08:41:07 +00:00
|
|
|
/** Is this a real child (i.e., compiled as a child)?
|
|
|
|
This depends on wherefrom we export the buffer. Even children
|
|
|
|
that have a master can be compiled standalone.
|
|
|
|
*/
|
|
|
|
mutable bool is_child;
|
|
|
|
|
2003-05-23 09:23:03 +00:00
|
|
|
/** moving_arg == true means that the environment in which the inset
|
|
|
|
is typeset is a moving argument. The inset should take care about
|
2005-09-09 11:04:53 +00:00
|
|
|
fragile commands by preceding the latex with \\protect.
|
2003-05-22 22:44:30 +00:00
|
|
|
*/
|
2003-05-23 09:23:03 +00:00
|
|
|
bool moving_arg;
|
2003-05-22 22:44:30 +00:00
|
|
|
|
2004-08-05 09:18:54 +00:00
|
|
|
/** intitle == true means that the environment in which the
|
2005-09-09 11:04:53 +00:00
|
|
|
inset is typeset is part of a title (before a \\maketitle).
|
2004-08-05 09:18:54 +00:00
|
|
|
Footnotes in such environments have moving arguments.
|
|
|
|
*/
|
|
|
|
bool intitle;
|
|
|
|
|
2014-03-22 11:25:25 +00:00
|
|
|
/** inulemcmd > 0 means that the environment in which the
|
2009-05-07 10:57:52 +00:00
|
|
|
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.
|
|
|
|
*/
|
2014-03-22 11:25:25 +00:00
|
|
|
mutable int inulemcmd;
|
2009-05-07 10:57:52 +00:00
|
|
|
|
2005-09-09 11:04:53 +00:00
|
|
|
/** the font at the point where the inset is
|
2004-08-05 09:18:54 +00:00
|
|
|
*/
|
2007-04-29 18:17:15 +00:00
|
|
|
Font const * local_font;
|
2004-10-07 15:21:03 +00:00
|
|
|
|
|
|
|
/** Document language babel name
|
2004-10-26 21:16:44 +00:00
|
|
|
*/
|
2014-11-18 19:51:21 +00:00
|
|
|
std::string document_language;
|
2004-08-05 09:18:54 +00:00
|
|
|
|
2009-10-18 21:48:13 +00:00
|
|
|
/** The master language. Non-null only for child documents.
|
2014-11-16 18:15:13 +00:00
|
|
|
Note that this is not the language of the top level master, but
|
|
|
|
of the direct parent for nested includes.
|
2009-10-18 21:48:13 +00:00
|
|
|
*/
|
|
|
|
mutable Language const * master_language;
|
|
|
|
|
2007-03-18 10:59:16 +00:00
|
|
|
/** 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
|
2007-10-22 13:09:16 +00:00
|
|
|
each single character (\sa Paragraph::latex).
|
2007-03-18 10:59:16 +00:00
|
|
|
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
|
|
|
|
{
|
2007-05-28 22:27:45 +00:00
|
|
|
OutputParams runparams(runparams_in);
|
2007-03-18 10:59:16 +00:00
|
|
|
runparams.inComment = true;
|
|
|
|
...
|
|
|
|
InsetBla::latex(..., runparams);
|
|
|
|
...
|
|
|
|
runparams_in.encoding = runparams.encoding;
|
|
|
|
}
|
|
|
|
\endcode
|
|
|
|
*/
|
|
|
|
mutable Encoding const * encoding;
|
|
|
|
|
2003-05-23 08:59:47 +00:00
|
|
|
/** free_spacing == true means that the inset is in a free-spacing
|
|
|
|
paragraph.
|
|
|
|
*/
|
|
|
|
bool free_spacing;
|
2003-09-09 18:27:24 +00:00
|
|
|
|
2003-05-22 22:44:30 +00:00
|
|
|
/** This var is set by the return value from BufferParams::writeLaTeX
|
2004-04-08 15:03:33 +00:00
|
|
|
*/
|
2003-05-22 22:44:30 +00:00
|
|
|
bool use_babel;
|
2003-10-31 18:45:43 +00:00
|
|
|
|
2010-11-22 12:10:16 +00:00
|
|
|
/** Do we use polyglossia (instead of babel)?
|
|
|
|
*/
|
|
|
|
bool use_polyglossia;
|
|
|
|
|
2009-04-16 07:29:01 +00:00
|
|
|
/** Are we generating multiple indices?
|
|
|
|
*/
|
|
|
|
bool use_indices;
|
|
|
|
|
2008-08-18 17:26:09 +00:00
|
|
|
/** Are we using japanese (pLaTeX)?
|
|
|
|
*/
|
|
|
|
bool use_japanese;
|
|
|
|
|
2009-05-22 07:20:00 +00:00
|
|
|
/** Customized bibtex_command
|
|
|
|
*/
|
2014-11-18 20:08:43 +00:00
|
|
|
std::string bibtex_command;
|
2009-05-22 07:20:00 +00:00
|
|
|
|
|
|
|
/** Customized index_command
|
|
|
|
*/
|
2014-11-18 20:08:43 +00:00
|
|
|
std::string index_command;
|
2009-05-22 07:20:00 +00:00
|
|
|
|
2009-09-02 23:46:04 +00:00
|
|
|
/** Line length to use with plaintext or LaTeX export.
|
2004-04-08 15:03:33 +00:00
|
|
|
*/
|
2006-10-21 00:16:43 +00:00
|
|
|
size_type linelen;
|
2004-06-01 13:39:33 +00:00
|
|
|
|
2004-08-16 00:32:04 +00:00
|
|
|
/** The depth of the current paragraph, set for plaintext
|
|
|
|
* export and used by InsetTabular
|
|
|
|
*/
|
|
|
|
int depth;
|
|
|
|
|
2004-06-01 13:39:33 +00:00
|
|
|
/** Export data filled in by the latex(), docbook() etc methods.
|
|
|
|
This is a hack: Make it possible to add stuff to constant
|
|
|
|
OutputParams instances.
|
|
|
|
*/
|
2010-04-22 11:37:32 +00:00
|
|
|
shared_ptr<ExportData> exportdata;
|
2006-01-09 21:00:24 +00:00
|
|
|
|
|
|
|
/** 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;
|
view-source feature, from Bo Peng <ben.bob@gmail.com>
* src/buffer.h buffer.C - getSourceCode()
* src/lyxfunc.C - open view-source dialog
* src/text3.C - change LFUN_MOUSE_RELEASE
* src/output_linuxdoc.C, src/output_docbook.C, src/output_latex.C
- intercept output
* src/outputparams.h, outputparams.C - add par_begin, par_end, dryrun
* src/insets/insetgraphics.C - add dryrun mode of file conversion
* lib/ui/stdmenus.ui - add view-source menu item under view
* Add view-source dialog, add
src/frontends/qt2/QViewSourceDialog.h, QViewSource.C, QViewSource.h, QViewSourceDialog.C
src/frontends/qt2/ui/QViewSourceDialogBase.ui
src/frontends/controllers/ControlViewSource.h ControlViewSource.C
modify
src/frontends/qt2/Makefile.dialogs, Makefile.am, Dialogs.C,
src/frontends/controllers/Makefile.am, po.POTFILES.in
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13610 a592a061-630c-0410-9148-cb99ea01b6c8
2006-04-09 02:48:54 +00:00
|
|
|
|
2008-09-10 16:02:32 +00:00
|
|
|
/** Whether we are in a table cell.
|
|
|
|
* For newline, it matters whether its content is aligned or not.
|
|
|
|
*/
|
|
|
|
TableCell inTableCell;
|
2008-09-09 18:42:17 +00:00
|
|
|
|
2009-02-07 12:27:24 +00:00
|
|
|
/** Whether we are inside a float or subfloat.
|
|
|
|
* Needed for subfloat detection on the command line.
|
|
|
|
*/
|
|
|
|
Float inFloat;
|
|
|
|
|
2009-09-10 12:07:42 +00:00
|
|
|
/** Whether we are inside an index inset.
|
|
|
|
* ERT needs to know this, due to the active chars.
|
|
|
|
*/
|
|
|
|
bool inIndexEntry;
|
|
|
|
|
2012-03-09 09:05:13 +00:00
|
|
|
/** Whether we are inside an IPA inset.
|
|
|
|
* Needed for proper IPA output.
|
|
|
|
*/
|
|
|
|
bool inIPA;
|
|
|
|
|
2007-07-21 18:10:55 +00:00
|
|
|
/** 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.
|
2013-11-12 19:52:35 +00:00
|
|
|
*/
|
2007-07-21 18:10:55 +00:00
|
|
|
Change changeOfDeletedInset;
|
|
|
|
|
2007-05-28 22:27:45 +00:00
|
|
|
/** allow output of only part of the top-level paragraphs
|
view-source feature, from Bo Peng <ben.bob@gmail.com>
* src/buffer.h buffer.C - getSourceCode()
* src/lyxfunc.C - open view-source dialog
* src/text3.C - change LFUN_MOUSE_RELEASE
* src/output_linuxdoc.C, src/output_docbook.C, src/output_latex.C
- intercept output
* src/outputparams.h, outputparams.C - add par_begin, par_end, dryrun
* src/insets/insetgraphics.C - add dryrun mode of file conversion
* lib/ui/stdmenus.ui - add view-source menu item under view
* Add view-source dialog, add
src/frontends/qt2/QViewSourceDialog.h, QViewSource.C, QViewSource.h, QViewSourceDialog.C
src/frontends/qt2/ui/QViewSourceDialogBase.ui
src/frontends/controllers/ControlViewSource.h ControlViewSource.C
modify
src/frontends/qt2/Makefile.dialogs, Makefile.am, Dialogs.C,
src/frontends/controllers/Makefile.am, po.POTFILES.in
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13610 a592a061-630c-0410-9148-cb99ea01b6c8
2006-04-09 02:48:54 +00:00
|
|
|
* par_begin: beginning paragraph
|
|
|
|
*/
|
2010-12-18 13:49:39 +00:00
|
|
|
mutable pit_type par_begin;
|
view-source feature, from Bo Peng <ben.bob@gmail.com>
* src/buffer.h buffer.C - getSourceCode()
* src/lyxfunc.C - open view-source dialog
* src/text3.C - change LFUN_MOUSE_RELEASE
* src/output_linuxdoc.C, src/output_docbook.C, src/output_latex.C
- intercept output
* src/outputparams.h, outputparams.C - add par_begin, par_end, dryrun
* src/insets/insetgraphics.C - add dryrun mode of file conversion
* lib/ui/stdmenus.ui - add view-source menu item under view
* Add view-source dialog, add
src/frontends/qt2/QViewSourceDialog.h, QViewSource.C, QViewSource.h, QViewSourceDialog.C
src/frontends/qt2/ui/QViewSourceDialogBase.ui
src/frontends/controllers/ControlViewSource.h ControlViewSource.C
modify
src/frontends/qt2/Makefile.dialogs, Makefile.am, Dialogs.C,
src/frontends/controllers/Makefile.am, po.POTFILES.in
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13610 a592a061-630c-0410-9148-cb99ea01b6c8
2006-04-09 02:48:54 +00:00
|
|
|
|
2007-05-28 22:27:45 +00:00
|
|
|
/** allow output of only part of the top-level paragraphs
|
view-source feature, from Bo Peng <ben.bob@gmail.com>
* src/buffer.h buffer.C - getSourceCode()
* src/lyxfunc.C - open view-source dialog
* src/text3.C - change LFUN_MOUSE_RELEASE
* src/output_linuxdoc.C, src/output_docbook.C, src/output_latex.C
- intercept output
* src/outputparams.h, outputparams.C - add par_begin, par_end, dryrun
* src/insets/insetgraphics.C - add dryrun mode of file conversion
* lib/ui/stdmenus.ui - add view-source menu item under view
* Add view-source dialog, add
src/frontends/qt2/QViewSourceDialog.h, QViewSource.C, QViewSource.h, QViewSourceDialog.C
src/frontends/qt2/ui/QViewSourceDialogBase.ui
src/frontends/controllers/ControlViewSource.h ControlViewSource.C
modify
src/frontends/qt2/Makefile.dialogs, Makefile.am, Dialogs.C,
src/frontends/controllers/Makefile.am, po.POTFILES.in
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13610 a592a061-630c-0410-9148-cb99ea01b6c8
2006-04-09 02:48:54 +00:00
|
|
|
* par_end: par_end-1 is the ending paragraph
|
|
|
|
* if par_begin=par_end, output all paragraphs
|
|
|
|
*/
|
2010-12-18 13:49:39 +00:00
|
|
|
mutable pit_type par_end;
|
view-source feature, from Bo Peng <ben.bob@gmail.com>
* src/buffer.h buffer.C - getSourceCode()
* src/lyxfunc.C - open view-source dialog
* src/text3.C - change LFUN_MOUSE_RELEASE
* src/output_linuxdoc.C, src/output_docbook.C, src/output_latex.C
- intercept output
* src/outputparams.h, outputparams.C - add par_begin, par_end, dryrun
* src/insets/insetgraphics.C - add dryrun mode of file conversion
* lib/ui/stdmenus.ui - add view-source menu item under view
* Add view-source dialog, add
src/frontends/qt2/QViewSourceDialog.h, QViewSource.C, QViewSource.h, QViewSourceDialog.C
src/frontends/qt2/ui/QViewSourceDialogBase.ui
src/frontends/controllers/ControlViewSource.h ControlViewSource.C
modify
src/frontends/qt2/Makefile.dialogs, Makefile.am, Dialogs.C,
src/frontends/controllers/Makefile.am, po.POTFILES.in
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13610 a592a061-630c-0410-9148-cb99ea01b6c8
2006-04-09 02:48:54 +00:00
|
|
|
|
2011-03-12 01:40:01 +00:00
|
|
|
/// Id of the last paragraph before an inset
|
|
|
|
mutable int lastid;
|
|
|
|
|
|
|
|
/// Last position in the last paragraph before an inset
|
|
|
|
mutable int lastpos;
|
|
|
|
|
2008-09-18 14:51:16 +00:00
|
|
|
/// is this the last paragraph in the current buffer/inset?
|
|
|
|
bool isLastPar;
|
2013-11-12 19:52:35 +00:00
|
|
|
|
2008-09-18 14:51:16 +00:00
|
|
|
|
2007-05-28 22:27:45 +00:00
|
|
|
/** whether or not do actual file copying and image conversion
|
view-source feature, from Bo Peng <ben.bob@gmail.com>
* src/buffer.h buffer.C - getSourceCode()
* src/lyxfunc.C - open view-source dialog
* src/text3.C - change LFUN_MOUSE_RELEASE
* src/output_linuxdoc.C, src/output_docbook.C, src/output_latex.C
- intercept output
* src/outputparams.h, outputparams.C - add par_begin, par_end, dryrun
* src/insets/insetgraphics.C - add dryrun mode of file conversion
* lib/ui/stdmenus.ui - add view-source menu item under view
* Add view-source dialog, add
src/frontends/qt2/QViewSourceDialog.h, QViewSource.C, QViewSource.h, QViewSourceDialog.C
src/frontends/qt2/ui/QViewSourceDialogBase.ui
src/frontends/controllers/ControlViewSource.h ControlViewSource.C
modify
src/frontends/qt2/Makefile.dialogs, Makefile.am, Dialogs.C,
src/frontends/controllers/Makefile.am, po.POTFILES.in
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13610 a592a061-630c-0410-9148-cb99ea01b6c8
2006-04-09 02:48:54 +00:00
|
|
|
* This mode will be used to preview the source code
|
|
|
|
*/
|
|
|
|
bool dryrun;
|
2013-11-12 19:52:35 +00:00
|
|
|
|
|
|
|
/// whether to display output errors or not
|
|
|
|
bool silent;
|
|
|
|
|
2007-10-20 17:05:28 +00:00
|
|
|
/// Should we output verbatim or escape LaTeX's special chars?
|
2010-08-07 22:07:49 +00:00
|
|
|
bool pass_thru;
|
2013-11-12 19:52:35 +00:00
|
|
|
|
2009-10-26 20:47:12 +00:00
|
|
|
/// Should we output captions?
|
|
|
|
bool html_disable_captions;
|
2013-11-12 19:52:35 +00:00
|
|
|
|
2009-10-26 20:47:12 +00:00
|
|
|
/// Are we already in a paragraph?
|
|
|
|
bool html_in_par;
|
2013-11-12 19:52:35 +00:00
|
|
|
|
2009-11-19 22:31:52 +00:00
|
|
|
/// Does the present context even permit paragraphs?
|
|
|
|
bool html_make_pars;
|
2013-11-12 19:52:35 +00:00
|
|
|
|
2010-01-14 22:24:43 +00:00
|
|
|
/// Are we generating this material for inclusion in a TOC-like entity?
|
|
|
|
bool for_toc;
|
2013-11-12 19:52:35 +00:00
|
|
|
|
2013-03-08 19:52:18 +00:00
|
|
|
/// Are we generating this material for inclusion in a tooltip?
|
|
|
|
bool for_tooltip;
|
|
|
|
|
2013-03-12 16:45:15 +00:00
|
|
|
/// Are we generating this material for use by advanced search?
|
|
|
|
bool for_search;
|
|
|
|
|
2010-01-10 13:25:41 +00:00
|
|
|
/// Include all children notwithstanding the use of \includeonly
|
|
|
|
bool includeall;
|
2011-09-15 01:07:49 +00:00
|
|
|
|
|
|
|
/// Explicit output folder, if any is desired
|
|
|
|
std::string export_folder;
|
2003-05-22 18:59:10 +00:00
|
|
|
};
|
|
|
|
|
2006-10-21 00:16:43 +00:00
|
|
|
|
|
|
|
} // namespace lyx
|
|
|
|
|
2004-06-03 13:08:50 +00:00
|
|
|
#endif // NOT OUTPUTPARAMS_H
|