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 11:51:42 +00:00
|
|
|
#include <string>
|
2008-11-16 00:01:41 +00:00
|
|
|
|
2008-11-16 11:51:42 +00:00
|
|
|
#include "support/types.h"
|
|
|
|
#include <boost/shared_ptr.hpp>
|
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;
|
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 {
|
|
|
|
LATEX,
|
2004-05-13 11:21:58 +00:00
|
|
|
PDFLATEX,
|
2009-04-06 06:58:30 +00:00
|
|
|
XETEX,
|
2004-05-13 11:21:58 +00:00
|
|
|
XML
|
2004-04-08 15:03:33 +00:00
|
|
|
};
|
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
|
|
|
|
2003-05-22 21:10:22 +00:00
|
|
|
/** The latex that we export depends occasionally on what is to
|
|
|
|
compile the file.
|
|
|
|
*/
|
2004-04-08 15:03:33 +00:00
|
|
|
FLAVOR flavor;
|
2003-05-22 22:44:30 +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
|
|
|
|
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;
|
|
|
|
|
2009-05-07 10:57:52 +00:00
|
|
|
/** 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;
|
|
|
|
|
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
|
|
|
*/
|
2004-10-07 15:21:03 +00:00
|
|
|
mutable std::string document_language;
|
2004-08-05 09:18:54 +00:00
|
|
|
|
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
|
|
|
|
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
|
|
|
|
*/
|
|
|
|
mutable std::string bibtex_command;
|
|
|
|
|
|
|
|
/** Customized index_command
|
|
|
|
*/
|
|
|
|
mutable std::string index_command;
|
|
|
|
|
2004-08-16 00:32:04 +00:00
|
|
|
/** Line length to use with plaintext 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.
|
|
|
|
*/
|
2008-11-16 11:51:42 +00:00
|
|
|
boost::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;
|
|
|
|
|
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.
|
|
|
|
*/
|
|
|
|
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
|
|
|
|
*/
|
2006-10-21 00:16:43 +00:00
|
|
|
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
|
|
|
|
*/
|
2006-10-21 00:16:43 +00:00
|
|
|
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
|
|
|
|
2008-09-18 14:51:16 +00:00
|
|
|
/// is this the last paragraph in the current buffer/inset?
|
|
|
|
bool isLastPar;
|
|
|
|
|
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;
|
2007-10-20 17:05:28 +00:00
|
|
|
/// Should we output verbatim or escape LaTeX's special chars?
|
|
|
|
bool verbatim;
|
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
|