void readSpacing(Lexer &);
///
void readArgument(Lexer &);
+ /// Write a layout definition in utf8 encoding
+ void write(std::ostream &) const;
///
docstring const & name() const { return name_; }
///
///
std::string const & latexname() const { return latexname_; }
///
- void setLatexName(std::string const & n) { latexname_ = n; }
+ std::string const & itemcommand() const { return itemcommand_; }
/// The arguments of this layout
struct latexarg {
docstring labelstring;
bool mandatory;
docstring ldelim;
docstring rdelim;
+ docstring defaultarg;
docstring presetarg;
docstring tooltip;
std::string requires;
std::string decoration;
FontInfo font;
FontInfo labelfont;
+ bool autoinsert;
};
///
typedef std::map<std::string, latexarg> LaTeXArgMap;
///
LaTeXArgMap const & latexargs() const { return latexargs_; }
///
+ LaTeXArgMap const & postcommandargs() const { return postcommandargs_; }
+ ///
LaTeXArgMap const & itemargs() const { return itemargs_; }
+ /// Returns latexargs() + postcommandargs() + itemargs().
+ /// But note that it returns a *copy*, not a reference, so do not do
+ /// anything like:
+ /// Layout::LaTeXArgMap::iterator it = args().begin();
+ /// Layout::LaTeXArgMap::iterator en = args().end();
+ /// Those are iterators for different containers.
+ LaTeXArgMap args() const;
///
int optArgs() const;
///
|| latextype == LATEX_ITEM_ENVIRONMENT
|| latextype == LATEX_LIST_ENVIRONMENT;
}
+ /// Is this the kind of layout in which adjacent paragraphs
+ /// are handled as one group?
+ bool isParagraphGroup() const {
+ return latextype == LATEX_ENVIRONMENT
+ || latextype == LATEX_BIB_ENVIRONMENT;
+ }
+ ///
+ bool labelIsInline() const {
+ return labeltype == LABEL_STATIC
+ || labeltype == LABEL_SENSITIVE
+ || labeltype == LABEL_ENUMERATE
+ || labeltype == LABEL_ITEMIZE;
+ }
+ bool labelIsAbove() const {
+ return labeltype == LABEL_ABOVE
+ || labeltype == LABEL_CENTERED
+ || labeltype == LABEL_BIBLIO;
+ }
///
bool operator==(Layout const &) const;
/// Is this spellchecked?
bool spellcheck;
+ /**
+ * Should this layout definition always be written to the document preamble?
+ * Possible values are:
+ * 0: Do not enforce local layout
+ * >=1: Enforce local layout with version forcelocal
+ * -1: Enforce local layout with infinite version
+ * On reading, the forced local layout is only used if its version
+ * number is greater than the version number of the same layout in the
+ * document class. Otherwise, it is ignored.
+ */
+ int forcelocal;
private:
+ /// Reads a layout definition from file
+ /// \return true on success.
+ bool readIgnoreForcelocal(Lexer &, TextClass const &);
/// generates the default CSS for this layout
void makeDefaultCSS() const;
///
docstring labelstring_appendix_;
/// LaTeX parameter for environment
std::string latexparam_;
+ /// Item command in lists
+ std::string itemcommand_;
/// Left delimiter of the content
docstring leftdelim_;
/// Right delimiter of the content
///
LaTeXArgMap latexargs_;
///
+ LaTeXArgMap postcommandargs_;
+ ///
LaTeXArgMap itemargs_;
};