\papercolumns 1
\papersides 2
\paperpagestyle headings
-\tracking_changes false
+\tracking_changes true
\output_changes false
\html_math_output 0
\html_css_as_file 0
\html_be_strict true
+\author -712698321 "Jürgen Spitzmüller"
\end_header
\begin_body
\end_layout
\end_deeper
+\begin_layout Description
+
+\change_inserted -712698321 1514539256
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\change_inserted -712698321 1514534780
+AutoNests
+\end_layout
+
+\end_inset
+
+ Includes a comma-separated list of layout names that should be nested in
+ and after the current one.
+ Only makes sense for nestable layouts (such as environments).
+ Must be ended by
+\begin_inset Quotes eld
+\end_inset
+
+
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\change_inserted -712698321 1514538124
+EndAutoNests
+\end_layout
+
+\end_inset
+
+
+\begin_inset Quotes erd
+\end_inset
+
+.
+ See also
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\change_inserted -712698321 1514539161
+IsAutoNestedBy
+\change_unchanged
+
+\end_layout
+
+\end_inset
+
+.
+\end_layout
+
\begin_layout Description
\begin_inset Flex Code
status collapsed
\end_inset
global entries).
+\change_inserted -712698321 1514539171
+
+\end_layout
+
+\begin_layout Description
+
+\change_inserted -712698321 1514539282
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\change_inserted -712698321 1514539190
+IsAutoNestedBy
+\end_layout
+
+\end_inset
+
+ Includes a comma-separated list of layout names after which this one should
+ be nested.
+ Only makes sense with regard to nestable layouts (such as environments).
+ Must be ended by
+\begin_inset Quotes eld
+\end_inset
+
+
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\change_inserted -712698321 1514539279
+EndIsAutoNestedBy
+\end_layout
+
+\end_inset
+
+
+\begin_inset Quotes erd
+\end_inset
+
+.
+ See also
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\change_inserted -712698321 1514710776
+AutoNests
+\end_layout
+
+\end_inset
+
+.
+\change_unchanged
+
\end_layout
\begin_layout Description
\begin_inset Flex Code
status collapsed
+\begin_layout Plain Layout
+AutoNests
+\end_layout
+
+\end_inset
+
+ beinhaltet eine mit Kommata separierte Liste von Layoutnamen, welche in
+ und nach der aktuellen automatisch eingebettet werden sollen.
+ Dies ist nur für Layouts sinnvoll, die auch einbetten können (etwa Umgebungen).
+ Muss mit
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+EndAutoNests
+\end_layout
+
+\end_inset
+
+ beendet werden.
+ Siehe auch
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+IsAutoNestedBy
+\end_layout
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Description
+\begin_inset Flex Code
+status collapsed
+
\begin_layout Plain Layout
BabelPreamble
\end_layout
\begin_inset Flex Code
status collapsed
+\begin_layout Plain Layout
+IsAutoNestedBy
+\end_layout
+
+\end_inset
+
+ beinhaltet eine mit Kommata separierte Liste von Layoutnamen, nach welchen
+ Absätze mit dem aktuellen Layout automatisch eingebettet werden sollen.
+ Sinnvolle Layouts für diese Liste sind nur solche, die auch einbetten können
+ (etwa Umgebungen).
+ Muss mit
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+EndIsAutoNestedBy
+\end_layout
+
+\end_inset
+
+ beendet werden.
+ Siehe auch
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+AutoNests
+\end_layout
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Description
+\begin_inset Flex Code
+status collapsed
+
\begin_layout Plain Layout
IsTocCaption
\end_layout
\papercolumns 1
\papersides 2
\paperpagestyle headings
-\tracking_changes false
+\tracking_changes true
\output_changes false
\html_math_output 0
\html_css_as_file 0
\html_be_strict true
+\author -712698321 "Jürgen Spitzmüller"
\end_header
\begin_body
\end_layout
\end_deeper
+\begin_layout Description
+
+\change_inserted -712698321 1514710560
+
+\lang english
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\change_inserted -712698321 1514710560
+
+\lang english
+AutoNests
+\end_layout
+
+\end_inset
+
+ Includes a comma-separated list of layout names that should be nested in
+ and after the current one.
+ Only makes sense for nestable layouts (such as environments).
+ Must be ended by
+\begin_inset Quotes eld
+\end_inset
+
+
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\change_inserted -712698321 1514710560
+
+\lang english
+EndAutoNests
+\end_layout
+
+\end_inset
+
+
+\begin_inset Quotes erd
+\end_inset
+
+.
+ See also
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\change_inserted -712698321 1514710560
+
+\lang english
+IsAutoNestedBy
+\end_layout
+
+\end_inset
+
+.
+\change_unchanged
+
+\end_layout
+
\begin_layout Description
\begin_inset Flex Code
status collapsed
\end_inset
).
+\change_inserted -712698321 1514710606
+
+\end_layout
+
+\begin_layout Description
+
+\change_inserted -712698321 1514710606
+
+\lang english
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\change_inserted -712698321 1514710606
+
+\lang english
+IsAutoNestedBy
+\end_layout
+
+\end_inset
+
+ Includes a comma-separated list of layout names after which this one should
+ be nested.
+ Only makes sense with regard to nestable layouts (such as environments).
+ Must be ended by
+\begin_inset Quotes eld
+\end_inset
+
+
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\change_inserted -712698321 1514710606
+
+\lang english
+EndIsAutoNestedBy
+\end_layout
+
+\end_inset
+
+
+\begin_inset Quotes erd
+\end_inset
+
+.
+ See also
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\change_inserted -712698321 1514710757
+
+\lang english
+AutoNests
+\end_layout
+
+\end_inset
+
+.
+\change_unchanged
+
\end_layout
\begin_layout Description
\papercolumns 1
\papersides 2
\paperpagestyle headings
-\tracking_changes false
+\tracking_changes true
\output_changes false
\html_math_output 0
\html_css_as_file 0
\html_be_strict false
+\author -712698321 "Jürgen Spitzmüller"
\end_header
\begin_body
\end_deeper
\begin_layout Description
+\change_inserted -712698321 1514710551
+
+\lang english
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\change_inserted -712698321 1514710551
+
+\lang english
+AutoNests
+\end_layout
+
+\end_inset
+
+ Includes a comma-separated list of layout names that should be nested in
+ and after the current one.
+ Only makes sense for nestable layouts (such as environments).
+ Must be ended by
+\begin_inset Quotes eld
+\end_inset
+
+
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\change_inserted -712698321 1514710551
+
+\lang english
+EndAutoNests
+\end_layout
+
+\end_inset
+
+
+\begin_inset Quotes erd
+\end_inset
+
+.
+ See also
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\change_inserted -712698321 1514710551
+
+\lang english
+IsAutoNestedBy
+\end_layout
+
+\end_inset
+
+.
+\change_unchanged
+
+\end_layout
+
+\begin_layout Description
+
\lang english
\begin_inset Flex Code
status collapsed
\end_inset
dans les paramètres généraux).
+\change_inserted -712698321 1514710619
+
+\end_layout
+
+\begin_layout Description
+
+\change_inserted -712698321 1514710619
+
+\lang english
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\change_inserted -712698321 1514710619
+
+\lang english
+IsAutoNestedBy
+\end_layout
+
+\end_inset
+
+ Includes a comma-separated list of layout names after which this one should
+ be nested.
+ Only makes sense with regard to nestable layouts (such as environments).
+ Must be ended by
+\begin_inset Quotes eld
+\end_inset
+
+
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\change_inserted -712698321 1514710619
+
+\lang english
+EndIsAutoNestedBy
+\end_layout
+
+\end_inset
+
+
+\begin_inset Quotes erd
+\end_inset
+
+.
+ See also
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\change_inserted -712698321 1514710764
+
+\lang english
+AutoNests
+\end_layout
+
+\end_inset
+
+.
+\change_unchanged
+
\end_layout
\begin_layout Description
\html_math_output 0
\html_css_as_file 0
\html_be_strict true
+\author -712698321 "Jürgen Spitzmüller"
\end_header
\begin_body
\end_layout
\end_deeper
+\begin_layout Description
+
+\change_inserted -712698321 1514710543
+
+\lang english
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\change_inserted -712698321 1514710543
+
+\lang english
+AutoNests
+\end_layout
+
+\end_inset
+
+ Includes a comma-separated list of layout names that should be nested in
+ and after the current one.
+ Only makes sense for nestable layouts (such as environments).
+ Must be ended by
+\begin_inset Quotes eld
+\end_inset
+
+
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\change_inserted -712698321 1514710543
+
+\lang english
+EndAutoNests
+\end_layout
+
+\end_inset
+
+
+\begin_inset Quotes erd
+\end_inset
+
+.
+ See also
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\change_inserted -712698321 1514710543
+
+\lang english
+IsAutoNestedBy
+\end_layout
+
+\end_inset
+
+.
+\change_unchanged
+
+\end_layout
+
\begin_layout Description
\begin_inset Flex Code
status collapsed
\end_inset
も参照).
+\change_inserted -712698321 1514710627
+
+\end_layout
+
+\begin_layout Description
+
+\change_inserted -712698321 1514710627
+
+\lang english
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\change_inserted -712698321 1514710627
+
+\lang english
+IsAutoNestedBy
+\end_layout
+
+\end_inset
+
+ Includes a comma-separated list of layout names after which this one should
+ be nested.
+ Only makes sense with regard to nestable layouts (such as environments).
+ Must be ended by
+\begin_inset Quotes eld
+\end_inset
+
+
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\change_inserted -712698321 1514710627
+
+\lang english
+EndIsAutoNestedBy
+\end_layout
+
+\end_inset
+
+
+\begin_inset Quotes erd
+\end_inset
+
+.
+ See also
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\change_inserted -712698321 1514710769
+
+\lang english
+AutoNests
+\end_layout
+
+\end_inset
+
+.
+\change_unchanged
+
\end_layout
\begin_layout Description
# Richard Heck <rgheck@lyx.org>, Martin Vermeer <martin.vermeer@hut.fi> and probably others.
-Format 65
+Format 66
#
# GLOBAL SETTINGS
AutoInsert 1
IsTocCaption 1
EndArgument
+ AutoNests
+ Standard,Itemize,Enumerate,Description,FrameTitle,FrameSubtitle,Column,
+ Columns,ColumnsCenterAligned,ColumnsTopAligned,Pause,Overprint,OverlayArea,Only,Block,
+ ExampleBlock,AlertBlock,Bibliography,Quotation,Quote,Verse,Corollary,Definition,Definitions,
+ Example,Examples,Fact,Lemma,Proof,Theorem,LyX-Code
+ EndAutoNests
End
Style PlainFrame
Family Roman
Color latex
EndFont
+ AutoNests
+ Standard,Itemize,Enumerate,Description,Pause,Overprint,OverlayArea,Only,Block,
+ ExampleBlock,AlertBlock,Bibliography,Quotation,Quote,Verse,Corollary,Definition,Definitions,
+ Example,Examples,Fact,Lemma,Proof,Theorem,LyX-Code
+ EndAutoNests
End
Style ColumnsCenterAligned
EndFont
AutoInsert 1
EndArgument
+ AutoNests
+ Standard,Itemize,Enumerate,Description,Pause,Overprint,OverlayArea,Only,Quotation,
+ Quote,Verse,Corollary,Definition,Definitions,Example,Examples,Fact,Lemma,Proof,Theorem,LyX-Code
+ EndAutoNests
End
Style ExampleBlock
LabelString "Additional Theorem Text"
Tooltip "Additional text appended to the theorem header"
EndArgument
+ AutoNests
+ Standard,Itemize,Enumerate,Description,Pause,Overprint,OverlayArea,Only,LyX-Code
+ EndAutoNests
End
Style Definition
# This script will update a .layout file to current format
# The latest layout format is also defined in src/TextClass.cpp
-currentFormat = 65
+currentFormat = 66
# Incremented to format 4, 6 April 2007, lasgouttes
# Incremented to format 65, 16 October 2017 by spitz
# Color collapsable -> collapsible
+# Incremented to format 66, 28 December 2017 by spitz
+# New Layout tags "AutoNests ... EndAutoNests" and
+# "IsAutoNestedBy ... EndIsAutoNestedBy"
+
# Do not forget to document format change in Customization
# Manual (section "Declaring a new text class").
i += 1
continue
+ if format == 65:
+ # nothing to do.
+ i += 1
+ continue
+
if format == 64:
match = re.compile(b'(\\s*Color\\s+)(\\w+)', re.IGNORECASE).match(lines[i])
if not match:
LT_ALIGN = 1,
LT_ALIGNPOSSIBLE,
LT_ARGUMENT,
+ LT_AUTONESTS,
+ LT_AUTONESTEDBY,
LT_MARGIN,
LT_BOTTOMSEP,
LT_CATEGORY,
{ "align", LT_ALIGN },
{ "alignpossible", LT_ALIGNPOSSIBLE },
{ "argument", LT_ARGUMENT },
+ { "autonests", LT_AUTONESTS },
{ "babelpreamble", LT_BABELPREAMBLE },
{ "bottomsep", LT_BOTTOMSEP },
{ "category", LT_CATEGORY },
{ "innertag", LT_INNERTAG },
{ "inpreamble", LT_INPREAMBLE },
{ "intitle", LT_INTITLE },
+ { "isautonestedby", LT_AUTONESTEDBY },
{ "istoccaption", LT_ISTOCCAPTION },
{ "itemcommand", LT_ITEMCOMMAND },
{ "itemsep", LT_ITEMSEP },
break;
}
+ case LT_AUTONESTS: {
+ docstring const autonest =
+ subst(subst(subst(lex.getLongString(from_ascii("EndAutoNests")),
+ from_ascii("\n"), docstring()),
+ from_ascii(" "), docstring()),
+ from_ascii("\t"), docstring());
+ vector<docstring> const autonests =
+ getVectorFromString(autonest);
+ autonests_.insert(autonests.begin(), autonests.end());
+ break;
+ }
+
+ case LT_AUTONESTEDBY: {
+ docstring const autonest =
+ subst(subst(subst(lex.getLongString(from_ascii("EndIsAutoNestedBy")),
+ from_ascii("\n"), docstring()),
+ from_ascii(" "), docstring()),
+ from_ascii("\t"), docstring());
+ vector<docstring> const autonests =
+ getVectorFromString(autonest);
+ autonested_by_.insert(autonests.begin(), autonests.end());
+ break;
+ }
+
case LT_REFPREFIX: {
docstring arg;
lex >> arg;
}
os << '\n';
}
+ if (!autonests_.empty()) {
+ os << "\tAutoNests\n\t";
+ for (set<docstring>::const_iterator it = autonests_.begin();
+ it != autonests_.end(); ++it) {
+ if (it != autonests_.begin())
+ os << ',';
+ os << to_utf8(*it);
+ }
+ os << "\n\tEndAutoNests\n";
+ }
+ if (!autonested_by_.empty()) {
+ os << "\tIsAutoNestedBy\n\t";
+ for (set<docstring>::const_iterator it = autonested_by_.begin();
+ it != autonested_by_.end(); ++it) {
+ if (it != autonested_by_.begin())
+ os << ',';
+ os << to_utf8(*it);
+ }
+ os << "\n\tIsAutoNestedBy\n";
+ }
if (refprefix.empty())
os << "\tRefPrefix OFF\n";
else
///
std::set<std::string> const & requires() const { return requires_; }
///
+ std::set<docstring> const & autonests() const { return autonests_; }
+ ///
+ std::set<docstring> const & isAutonestedBy() const { return autonested_by_; }
+ ///
std::string const & latexparam() const { return latexparam_; }
///
docstring leftdelim() const { return leftdelim_; }
bool par_group_;
/// Packages needed for this layout
std::set<std::string> requires_;
+ /// Layouts that are by default nested after this one
+ std::set<docstring> autonests_;
+ /// Layouts that by auto-nest this one
+ std::set<docstring> autonested_by_;
///
LaTeXArgMap latexargs_;
///
/*!
* \var lyx::FuncCode lyx::LFUN_LAYOUT
* \li Action: Sets the layout (that is, environment) for the current paragraph.
- * \li Syntax: layout <LAYOUT>
- * \li Params: <LAYOUT>: the layout to use
+ * \li Syntax: layout <LAYOUT> [ignorenests]
+ * \li Params: <LAYOUT>: the layout to use\n
+ ignorenests: If specified, nesting advices will be ignored.
* \endvar
*/
{ LFUN_LAYOUT, "layout", Noop, Layout },
break;
case LFUN_LAYOUT: {
- docstring layout = cmd.argument();
+ bool const ignoreautonests = cmd.getArg(1) == "ignoreautonests";
+ docstring layout = ignoreautonests ? from_utf8(cmd.getArg(0)) : cmd.argument();
LYXERR(Debug::INFO, "LFUN_LAYOUT: (arg) " << to_utf8(layout));
Paragraph const & para = cur.paragraph();
}
}
- if (change_layout)
+ if (change_layout) {
setLayout(cur, layout);
+ if (cur.pit() > 0 && !ignoreautonests) {
+ set<docstring> const & autonests =
+ pars_[cur.pit() - 1].layout().autonests();
+ set<docstring> const & autonested =
+ pars_[cur.pit()].layout().isAutonestedBy();
+ if (autonests.find(layout) != autonests.end()
+ || autonested.find(old_layout) != autonested.end())
+ lyx::dispatch(FuncRequest(LFUN_DEPTH_INCREMENT));
+ }
+ }
Layout::LaTeXArgMap args = tclass[layout].args();
Layout::LaTeXArgMap::const_iterator lait = args.begin();
case LFUN_LAYOUT: {
DocumentClass const & tclass = cur.buffer()->params().documentClass();
- docstring layout = cmd.argument();
+ bool const ignoreautonests = cmd.getArg(1) == "ignoreautonests";
+ docstring layout = ignoreautonests ? from_utf8(cmd.getArg(0)) : cmd.argument();
if (layout.empty())
layout = tclass.defaultLayoutName();
enable = !owner_->forcePlainLayout() && tclass.hasLayout(layout);
// You should also run the development/tools/updatelayouts.py script,
// to update the format of all of our layout files.
//
-int const LAYOUT_FORMAT = 65; //spitz: Color collapsable -> collapsible.
+int const LAYOUT_FORMAT = 66; //spitz: New layout tag AutoNests
// Layout format for the current lyx file format. Controls which format is