Simplify preamble code when using listings

Following an idea from Guillame.
This commit is contained in:
Enrico Forestieri 2017-06-08 04:24:29 +02:00
parent 6a4a88e98a
commit 3cc3ff39a0
4 changed files with 68 additions and 25 deletions

View File

@ -274,21 +274,42 @@ InsetLayout TOC:Listings
# We need the [[List of Listings]] context, since "Listings" is also # We need the [[List of Listings]] context, since "Listings" is also
# the name of the inset and translated differently. # the name of the inset and translated differently.
# "Listings[[List of Listings]]" is the name of the "List of listings" # "Listings[[List of Listings]]" is the name of the "List of listings"
# ("Listings" is the predefined english name) in listings.sty and # ("Listings" is the predefined english name) in listings.sty, so it
# minted.sty, so it must be used here as well. # must be used here as well.
BabelPreamble BabelPreamble
\ifx\minted\undefined \addto\captions$$lang{\renewcommand{\lstlistlistingname}{_(Listings[[List of Listings]])}}
\addto\captions$$lang{\renewcommand{\lstlistlistingname}{_(Listings[[List of Listings]])}}\else
\addto\captions$$lang{\renewcommand{\listoflistingscaption}{_(Listings[[List of Listings]])}}\fi
EndBabelPreamble EndBabelPreamble
# Either commands do not need to be defined in LangPreamble, since # The command does not need to be defined in LangPreamble, since
# listings.sty or minted.sty do that already. However they need to be # listings.sty does that already. However it needs to be redefined
# redefined in order to be used for non-english single-language # in order to be used for non-english single-language documents.
# documents.
LangPreamble LangPreamble
\ifx\minted\undefined \renewcommand{\lstlistlistingname}{_(Listings[[List of Listings]])}
\renewcommand{\lstlistlistingname}{_(Listings[[List of Listings]])}\else EndLangPreamble
\renewcommand{\listoflistingscaption}{_(Listings[[List of Listings]])}\fi 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 EndLangPreamble
FixedWidthPreambleEncoding true FixedWidthPreambleEncoding true
HTMLTag h2 HTMLTag h2
@ -303,18 +324,13 @@ End
InsetLayout Include:Listings InsetLayout Include:Listings
BabelPreamble BabelPreamble
\ifx\minted\undefined \addto\captions$$lang{\renewcommand{\lstlistingname}{_(Listing)}}
\addto\captions$$lang{\renewcommand{\lstlistingname}{_(Listing)}}\else
\addto\captions$$lang{\renewcommand{\listingscaption}{_(Listing)}}\fi
EndBabelPreamble EndBabelPreamble
# Either commands do not need to be defined in LangPreamble, since # The command does not need to be defined in LangPreamble, since
# listings.sty or minted.sty do that already. However they need to be # listings.sty does that already. However it needs to be redefined
# redefined in order to be used for non-english single-language # in order to be used for non-english single-language documents.
# documents.
LangPreamble LangPreamble
\ifx\minted\undefined \renewcommand{\lstlistingname}{_(Listing)}
\renewcommand{\lstlistingname}{_(Listing)}\else
\renewcommand{\listingscaption}{_(Listing)}\fi
EndLangPreamble EndLangPreamble
FixedWidthPreambleEncoding true FixedWidthPreambleEncoding true
End End
@ -356,6 +372,20 @@ InsetLayout Listings
EndHTMLStyle EndHTMLStyle
End 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 InsetLayout Branch
Decoration classic Decoration classic
LabelFont LabelFont

View File

@ -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 void InsetListings::write(ostream & os) const
{ {
os << "listings" << "\n"; os << "listings" << "\n";

View File

@ -48,7 +48,7 @@ private:
/// lstinline is inlined, normal listing is displayed /// lstinline is inlined, normal listing is displayed
DisplayType display() const; DisplayType display() const;
/// ///
docstring layoutName() const { return from_ascii("Listings"); } docstring layoutName() const;
/// ///
void write(std::ostream & os) const; void write(std::ostream & os) const;
/// ///

View File

@ -96,8 +96,12 @@ void InsetTOC::doDispatch(Cursor & cur, FuncRequest & cmd) {
docstring InsetTOC::layoutName() const docstring InsetTOC::layoutName() const
{ {
if (getCmdName() == "lstlistoflistings") if (getCmdName() == "lstlistoflistings") {
if (buffer().params().use_minted)
return from_ascii("TOC:MintedListings");
else
return from_ascii("TOC:Listings"); return from_ascii("TOC:Listings");
}
return from_ascii("TOC"); return from_ascii("TOC");
} }