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
# 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

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
{
os << "listings" << "\n";

View File

@ -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;
///

View File

@ -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");
}