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_; }
///
std::string const & itemcommand() const { return itemcommand_; }
- ///
- void setLatexName(std::string const & n) { latexname_ = n; }
/// The arguments of this layout
struct latexarg {
docstring labelstring;
FontInfo font;
FontInfo labelfont;
bool autoinsert;
+ bool insertcotext;
+ ArgPassThru passthru;
+ docstring pass_thru_chars;
+ bool is_toc_caption;
};
///
typedef std::map<std::string, latexarg> LaTeXArgMap;
///
- LaTeXArgMap args() const;
- ///
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;
///
}
/// 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 isParagraphGroup() const { return par_group_; }
///
bool labelIsInline() const {
return labeltype == LABEL_STATIC
|| labeltype == LABEL_CENTERED
|| labeltype == LABEL_BIBLIO;
}
+ ///
+ bool addToToc() const { return add_to_toc_; }
+ ///
+ std::string tocType() const { return toc_type_; }
+ ///
+ bool isTocCaption() const { return is_toc_caption_; }
///
bool operator==(Layout const &) const;
///
bool nextnoindent;
///
+ ToggleIndentation toggle_indent;
+ ///
bool free_spacing;
///
bool pass_thru;
+ /// Individual chars to be passed verbatim
+ docstring pass_thru_chars;
///
bool parbreak_is_newline;
/// show this in toc
bool inpreamble;
/// Which counter to step
docstring counter;
+ /// Resume counter?
+ bool resumecounter;
+ /// Step master counter?
+ bool stepmastercounter;
/// Prefix to use when creating labels
docstring refprefix;
/// Depth of XML command
/// 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;
///
mutable std::string defaultcssclass_;
/// This is the `category' for this layout. The following are
/// recommended basic categories: FrontMatter, BackMatter, MainText,
- /// Section, Starred, List, Theorem.
+ /// Sectioning, Starred, List, Reasoning.
docstring category_;
/// Macro definitions needed for this layout
docstring preamble_;
docstring langpreamble_;
/// Language and babel dependent macro definitions needed for this layout
docstring babelpreamble_;
+ /// Are adjacent paragraphs handled as one group?
+ bool par_group_;
/// Packages needed for this layout
std::set<std::string> requires_;
///
LaTeXArgMap postcommandargs_;
///
LaTeXArgMap itemargs_;
+ ///
+ bool add_to_toc_;
+ ///
+ std::string toc_type_;
+ ///
+ bool is_toc_caption_;
};
+
} // namespace lyx
#endif