From: Enrico Forestieri Date: Thu, 8 Jun 2017 02:24:29 +0000 (+0200) Subject: Simplify preamble code when using listings X-Git-Tag: 2.3.0beta1~302 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=3cc3ff39a044a484faaaefbecf2a2937f7f102ef;p=features.git Simplify preamble code when using listings Following an idea from Guillame. --- diff --git a/lib/layouts/stdinsets.inc b/lib/layouts/stdinsets.inc index 1ef2c524b7..6ee56de25b 100644 --- a/lib/layouts/stdinsets.inc +++ b/lib/layouts/stdinsets.inc @@ -274,21 +274,42 @@ InsetLayout TOC:Listings # We need the [[List of Listings]] context, since "Listings" is also # the name of the inset and translated differently. # "Listings[[List of Listings]]" is the name of the "List of listings" - # ("Listings" is the predefined english name) in listings.sty and - # minted.sty, so it must be used here as well. + # ("Listings" is the predefined english name) in listings.sty, so it + # must be used here as well. BabelPreamble - \ifx\minted\undefined - \addto\captions$$lang{\renewcommand{\lstlistlistingname}{_(Listings[[List of Listings]])}}\else - \addto\captions$$lang{\renewcommand{\listoflistingscaption}{_(Listings[[List of Listings]])}}\fi + \addto\captions$$lang{\renewcommand{\lstlistlistingname}{_(Listings[[List of Listings]])}} EndBabelPreamble - # Either commands do not need to be defined in LangPreamble, since - # listings.sty or minted.sty do that already. However they need to be - # redefined in order to be used for non-english single-language - # documents. + # The command does not need to be defined in LangPreamble, since + # listings.sty does that already. However it needs to be redefined + # in order to be used for non-english single-language documents. LangPreamble - \ifx\minted\undefined - \renewcommand{\lstlistlistingname}{_(Listings[[List of Listings]])}\else - \renewcommand{\listoflistingscaption}{_(Listings[[List of Listings]])}\fi + \renewcommand{\lstlistlistingname}{_(Listings[[List of Listings]])} + EndLangPreamble + FixedWidthPreambleEncoding true + HTMLTag h2 + HTMLStyle + div.lyxtoc-flat { + margin: 0em 0em 0em 1em; + font-size: large; + font-weight: normal; + } + EndHTMLStyle +End + +InsetLayout TOC:MintedListings + # We need the [[List of Listings]] context, since "Listings" is also + # the name of the inset and translated differently. + # "Listings[[List of Listings]]" is the name of the "List of listings" + # ("Listings" is the predefined english name) in minted.sty so it + # must be used here as well. + BabelPreamble + \addto\captions$$lang{\renewcommand{\listoflistingscaption}{_(Listings[[List of Listings]])}} + EndBabelPreamble + # The command does not need to be defined in LangPreamble, since + # minted.sty does that already. However it needs to be redefined + # in order to be used for non-english single-language documents. + LangPreamble + \renewcommand{\listoflistingscaption}{_(Listings[[List of Listings]])} EndLangPreamble FixedWidthPreambleEncoding true HTMLTag h2 @@ -303,18 +324,13 @@ End InsetLayout Include:Listings BabelPreamble - \ifx\minted\undefined - \addto\captions$$lang{\renewcommand{\lstlistingname}{_(Listing)}}\else - \addto\captions$$lang{\renewcommand{\listingscaption}{_(Listing)}}\fi + \addto\captions$$lang{\renewcommand{\lstlistingname}{_(Listing)}} EndBabelPreamble - # Either commands do not need to be defined in LangPreamble, since - # listings.sty or minted.sty do that already. However they need to be - # redefined in order to be used for non-english single-language - # documents. + # The command does not need to be defined in LangPreamble, since + # listings.sty does that already. However it needs to be redefined + # in order to be used for non-english single-language documents. LangPreamble - \ifx\minted\undefined - \renewcommand{\lstlistingname}{_(Listing)}\else - \renewcommand{\listingscaption}{_(Listing)}\fi + \renewcommand{\lstlistingname}{_(Listing)} EndLangPreamble FixedWidthPreambleEncoding true End @@ -356,6 +372,20 @@ InsetLayout Listings EndHTMLStyle End +InsetLayout MintedListings + CopyStyle Listings + BabelPreamble + \addto\captions$$lang{\renewcommand{\listingscaption}{_(Listing)}} + EndBabelPreamble + # The command does not need to be defined in LangPreamble, since + # minted.sty does that already. However it needs to be redefined + # in order to be used for non-english single-language documents. + LangPreamble + \renewcommand{\listingscaption}{_(Listing)} + EndLangPreamble + FixedWidthPreambleEncoding true +End + InsetLayout Branch Decoration classic LabelFont diff --git a/src/insets/InsetListings.cpp b/src/insets/InsetListings.cpp index 033b72ea2c..7be13bcfbd 100644 --- a/src/insets/InsetListings.cpp +++ b/src/insets/InsetListings.cpp @@ -72,6 +72,15 @@ Inset::DisplayType InsetListings::display() const } +docstring InsetListings::layoutName() const +{ + if (buffer().params().use_minted) + return from_ascii("MintedListings"); + else + return from_ascii("Listings"); +} + + void InsetListings::write(ostream & os) const { os << "listings" << "\n"; diff --git a/src/insets/InsetListings.h b/src/insets/InsetListings.h index 902fa0437e..aa46765c59 100644 --- a/src/insets/InsetListings.h +++ b/src/insets/InsetListings.h @@ -48,7 +48,7 @@ private: /// lstinline is inlined, normal listing is displayed DisplayType display() const; /// - docstring layoutName() const { return from_ascii("Listings"); } + docstring layoutName() const; /// void write(std::ostream & os) const; /// diff --git a/src/insets/InsetTOC.cpp b/src/insets/InsetTOC.cpp index dabfd211c3..d617b08166 100644 --- a/src/insets/InsetTOC.cpp +++ b/src/insets/InsetTOC.cpp @@ -96,8 +96,12 @@ void InsetTOC::doDispatch(Cursor & cur, FuncRequest & cmd) { docstring InsetTOC::layoutName() const { - if (getCmdName() == "lstlistoflistings") - return from_ascii("TOC:Listings"); + if (getCmdName() == "lstlistoflistings") { + if (buffer().params().use_minted) + return from_ascii("TOC:MintedListings"); + else + return from_ascii("TOC:Listings"); + } return from_ascii("TOC"); }