commit 3cc3ff39a044a484faaaefbecf2a2937f7f102ef
Author: Enrico Forestieri <[email protected]>
Date: Thu Jun 8 04:24:29 2017 +0200
Simplify preamble code when using listings
Following an idea from Guillame.
---
lib/layouts/stdinsets.inc | 74 +++++++++++++++++++++++++++++------------
src/insets/InsetListings.cpp | 9 +++++
src/insets/InsetListings.h | 2 +-
src/insets/InsetTOC.cpp | 8 +++-
4 files changed, 68 insertions(+), 25 deletions(-)
diff --git a/lib/layouts/stdinsets.inc b/lib/layouts/stdinsets.inc
index 1ef2c52..6ee56de 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 033b72e..7be13bc 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 902fa04..aa46765 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 dabfd21..d617b08 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");
}