+ std::string const & itemcommand() const { return itemcommand_; }
+ /// The arguments of this layout
+ struct latexarg {
+ docstring labelstring;
+ docstring menustring;
+ bool mandatory;
+ bool nodelims;
+ docstring ldelim;
+ docstring rdelim;
+ docstring defaultarg;
+ docstring presetarg;
+ docstring tooltip;
+ std::string requires;
+ std::string decoration;
+ FontInfo font;
+ FontInfo labelfont;
+ bool autoinsert;
+ bool insertcotext;
+ ArgPassThru passthru;
+ docstring pass_thru_chars;
+ bool is_toc_caption;
+ std::string newlinecmd;
+ };
+ ///
+ typedef std::map<std::string, latexarg> LaTeXArgMap;
+ ///
+ LaTeXArgMap const & latexargs() const { return latexargs_; }
+ ///
+ LaTeXArgMap const & postcommandargs() const { return postcommandargs_; }
+ ///
+ LaTeXArgMap const & listpreamble() const { return listpreamble_; }
+ ///
+ LaTeXArgMap const & itemargs() const { return itemargs_; }
+ /// Returns true is the layout has arguments. If false, then an
+ /// InsetArgument in this layout stands for the parent InsetText.
+ bool hasArgs() const;
+ /// 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;
+ ///
+ int requiredArgs() const;
+ ///
+ docstring const & labelstring(bool in_appendix) const