lyx_mirror/lib/layouts/theorems-ams-extended.module

435 lines
11 KiB
Plaintext
Raw Normal View History

#\DeclareLyXModule{AMS Theorems (Extended)}
#\DeclareCategory{Maths}
#DescriptionBegin
#Defines some additional theorem environments for use with the
#AMS theorems packages. Includes Criterion, Algorithm, Axiom,
#Condition, Note, Notation, Summary, Conclusion,
#Fact, Assumption, Case, and Question, in both numbered and non-numbered
#forms.
#DescriptionEnd
This commit changes the way individual LyXModule's are represented, both internally and in the .lyx files. The earlier version represented them by their `descriptive name', e.g., "Endnote" or "Theorems (AMS)", these being the same names used in the UI. This was a mistake, as becomes readily apparent when one starts to think about translating these strings. The modules ought to be represented by their filename, without the extension, just as TextClass's are. The changes that accomplish this part are in ModuleList.{h,cpp}, configure.py, and the *.module files themselves. This is a format change, and the lyx2lyx is in those files. By itself, that change would not be major, except for the fact that we do not want the module to be represented in the UI by its filename---e.g., theorems-std---but rather by a descriptive name, such as "Theorems". But that change turns out to be wholly non-trivial. The mechanism for choosing modules was the same as---indeed, was borrowed from---that in GuiCitation: You get a list of modules, and choosing them involves moving strings from one QListView to another. The models underlying these views are just QStringListModels, which means that, when you want to know what modules have been selected, you see what strings are in the "selected" QListView. But these are just the descriptive names, and we can't look up a module by its descriptive name if it's been translated. That, indeed, was the whole point of the change to the new representation. So, we need a more complicated model underlying the QListView, one that will pair an identifying string---the filename minus the extension, in this case---with each item. This turns out not to be terribly difficult, though it took rather a while for me to understand why it's not difficult. There are two parts: (i) GuiSelectionManger gets re-written to use any QAbstractListModel, not just a QStringListModel. This actually seems to improve the code, independently. (ii) We then subclass QAbstractListModel to get the associated ID string, using the Qt::UserRole slot associated with each item to store its ID. This would be almost completely trivial if QAbstractListItem::itemData() included the QVariant associated with this role, but it doesn't, so there are some additional hoops through which to jump. The new model, a GuiIdListModel, is defined in the files by that name. The changes in GuiSelectionManger.{h,cpp} make it more abstract; the changes in GuiDocument.{h,cpp} adapt it to the new framework. I've also updated the module documenation to accord with this change. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22501 a592a061-630c-0410-9148-cb99ea01b6c8
2008-01-12 04:28:12 +00:00
#Requires: theorems-ams
# Original Author : David L. Johnson <dlj0@lehigh.edu>
# Probably broken by Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>
# modified and modularized by Emmanuel GUREGHIAN <gureghia@boston.bertin.fr>
# Tinkered with Sep. '07 by Paul Rubin <rubin@msu.edu>
2020-12-05 22:09:17 +00:00
# Modularized Jan 08 by Richard Kimberly Heck <rikiheck@lyx.org>
2023-07-25 11:44:29 +00:00
Format 102
Requires amsmath
# The environments defined (regular and starred) are :
# - Criterion
# - Algorithm
# - Axiom
# - Condition
# - Note
# - Notation
# - Summary
# - Conclusion
# - Fact
# - Assumption
# - Question
Style Criterion
CopyStyle Theorem
DependsOn Theorem
LatexName criterion
LabelString "Criterion \thetheorem."
Preamble
\theoremstyle{plain}
\newtheorem{criterion}[thm]{\protect\criterionname}
EndPreamble
LangPreamble
\providecommand{\criterionname}{_(Criterion)}
EndLangPreamble
BabelPreamble
\addto\captions$$lang{\renewcommand{\criterionname}{_(Criterion)}}
EndBabelPreamble
DocBookTag para
DocBookAttr role='criterion'
DocBookItemTag ""
End
Style Criterion*
CopyStyle Theorem*
LatexName criterion*
LabelString "Criterion."
Preamble
\theoremstyle{plain}
\newtheorem*{criterion*}{\protect\criterionname}
EndPreamble
LangPreamble
\providecommand{\criterionname}{_(Criterion)}
EndLangPreamble
BabelPreamble
\addto\captions$$lang{\renewcommand{\criterionname}{_(Criterion)}}
EndBabelPreamble
DocBookTag para
DocBookAttr role='criterion'
DocBookItemTag ""
End
Style Algorithm
CopyStyle Theorem
DependsOn Theorem
LatexName lyxalgorithm
LabelString "Algorithm \thetheorem."
Preamble
\theoremstyle{plain}
\newtheorem{lyxalgorithm}[thm]{\protect\algorithmname}
EndPreamble
LangPreamble
\providecommand{\algorithmname}{_(Algorithm)}
EndLangPreamble
BabelPreamble
\addto\captions$$lang{\renewcommand{\algorithmname}{_(Algorithm)}}
EndBabelPreamble
DocBookTag para
DocBookAttr role='algorithm'
DocBookItemTag ""
End
Style Algorithm*
CopyStyle Theorem*
LatexName lyxalgorithm*
LabelString "Algorithm."
Preamble
\theoremstyle{plain}
\newtheorem*{lyxalgorithm*}{\protect\algorithmname}
EndPreamble
LangPreamble
\providecommand{\algorithmname}{_(Algorithm)}
EndLangPreamble
BabelPreamble
\addto\captions$$lang{\renewcommand{\algorithmname}{_(Algorithm)}}
EndBabelPreamble
DocBookTag para
DocBookAttr role='algorithm'
DocBookItemTag ""
End
Style Axiom
CopyStyle Theorem
DependsOn Theorem
LatexName ax
LabelString "Axiom \thetheorem."
Preamble
\theoremstyle{plain}
\newtheorem{ax}[thm]{\protect\axiomname}
EndPreamble
LangPreamble
\providecommand{\axiomname}{_(Axiom)}
EndLangPreamble
BabelPreamble
\addto\captions$$lang{\renewcommand{\axiomname}{_(Axiom)}}
EndBabelPreamble
DocBookTag para
DocBookAttr role='axiom'
DocBookItemTag ""
End
Style Axiom*
CopyStyle Theorem*
LatexName ax*
LabelString "Axiom."
Preamble
\theoremstyle{plain}
\newtheorem*{ax*}{\protect\axiomname}
EndPreamble
LangPreamble
\providecommand{\axiomname}{_(Axiom)}
EndLangPreamble
BabelPreamble
\addto\captions$$lang{\renewcommand{\axiomname}{_(Axiom)}}
EndBabelPreamble
DocBookTag para
DocBookAttr role='axiom'
DocBookItemTag ""
End
Style Condition
CopyStyle Definition
LatexName condition
LabelString "Condition \thetheorem."
Preamble
\theoremstyle{definition}
\newtheorem{condition}[thm]{\protect\conditionname}
EndPreamble
LangPreamble
\providecommand{\conditionname}{_(Condition)}
EndLangPreamble
BabelPreamble
\addto\captions$$lang{\renewcommand{\conditionname}{_(Condition)}}
EndBabelPreamble
DocBookTag para
DocBookAttr role='condition'
DocBookItemTag ""
End
Style Condition*
CopyStyle Definition*
LatexName condition*
LabelString "Condition."
Preamble
\theoremstyle{definition}
\newtheorem*{condition*}{\protect\conditionname}
EndPreamble
LangPreamble
\providecommand{\conditionname}{_(Condition)}
EndLangPreamble
BabelPreamble
\addto\captions$$lang{\renewcommand{\conditionname}{_(Condition)}}
EndBabelPreamble
DocBookTag para
DocBookAttr role='condition'
DocBookItemTag ""
End
Style Note
CopyStyle Remark
LatexName note
LabelString "Note \thetheorem."
Preamble
\theoremstyle{remark}
\newtheorem{note}[thm]{\protect\notename}
EndPreamble
LangPreamble
\providecommand{\notename}{_(Note)}
EndLangPreamble
BabelPreamble
\addto\captions$$lang{\renewcommand{\notename}{_(Note)}}
EndBabelPreamble
DocBookTag note
DocBookItemTag para
End
Style Note*
CopyStyle Remark*
LatexName note*
LabelString "Note."
Preamble
\theoremstyle{remark}
\newtheorem*{note*}{\protect\notename}
EndPreamble
LangPreamble
\providecommand{\notename}{_(Note)}
EndLangPreamble
BabelPreamble
\addto\captions$$lang{\renewcommand{\notename}{_(Note)}}
EndBabelPreamble
DocBookTag note
DocBookItemTag para
End
Style Notation
CopyStyle Remark
LatexName notation
LabelString "Notation \thetheorem."
Preamble
\theoremstyle{remark}
\newtheorem{notation}[thm]{\protect\notationname}
EndPreamble
LangPreamble
\providecommand{\notationname}{_(Notation)}
EndLangPreamble
BabelPreamble
\addto\captions$$lang{\renewcommand{\notationname}{_(Notation)}}
EndBabelPreamble
DocBookTag para
DocBookAttr role='notation'
DocBookItemTag ""
End
Style Notation*
CopyStyle Remark*
LatexName notation*
LabelString "Notation."
Preamble
\theoremstyle{remark}
\newtheorem*{notation*}{\protect\notationname}
EndPreamble
LangPreamble
\providecommand{\notationname}{_(Notation)}
EndLangPreamble
BabelPreamble
\addto\captions$$lang{\renewcommand{\notationname}{_(Notation)}}
EndBabelPreamble
DocBookTag para
DocBookAttr role='notation'
DocBookItemTag ""
End
Style Summary
CopyStyle Remark
LatexName summary
LabelString "Summary \thetheorem."
Preamble
\theoremstyle{remark}
\newtheorem{summary}[thm]{\protect\summaryname}
EndPreamble
LangPreamble
\providecommand{\summaryname}{_(Summary)}
EndLangPreamble
BabelPreamble
\addto\captions$$lang{\renewcommand{\summaryname}{_(Summary)}}
EndBabelPreamble
DocBookTag para
DocBookAttr role='summary'
DocBookItemTag ""
End
Style Summary*
CopyStyle Remark*
LatexName summary*
LabelString "Summary."
Preamble
\theoremstyle{remark}
\newtheorem*{summary*}{\protect\summaryname}
EndPreamble
LangPreamble
\providecommand{\summaryname}{_(Summary)}
EndLangPreamble
BabelPreamble
\addto\captions$$lang{\renewcommand{\summaryname}{_(Summary)}}
EndBabelPreamble
DocBookTag para
DocBookAttr role='summary'
DocBookItemTag ""
End
Style Conclusion
CopyStyle Remark
LatexName conclusion
LabelString "Conclusion \thetheorem."
Preamble
\theoremstyle{remark}
\newtheorem{conclusion}[thm]{\protect\conclusionname}
EndPreamble
LangPreamble
\providecommand{\conclusionname}{_(Conclusion)}
EndLangPreamble
BabelPreamble
\addto\captions$$lang{\renewcommand{\conclusionname}{_(Conclusion)}}
EndBabelPreamble
DocBookTag para
DocBookAttr role='conclusion'
DocBookItemTag ""
End
Style Conclusion*
CopyStyle Remark*
LatexName conclusion*
LabelString "Conclusion."
Preamble
\theoremstyle{remark}
\newtheorem*{conclusion*}{\protect\conclusionname}
EndPreamble
LangPreamble
\providecommand{\conclusionname}{_(Conclusion)}
EndLangPreamble
BabelPreamble
\addto\captions$$lang{\renewcommand{\conclusionname}{_(Conclusion)}}
EndBabelPreamble
DocBookTag para
DocBookAttr role='conclusion'
DocBookItemTag ""
End
Style Assumption
CopyStyle Theorem
DependsOn Theorem
LatexName assumption
LabelString "Assumption \thetheorem."
Preamble
\theoremstyle{plain}
\newtheorem{assumption}[thm]{\protect\assumptionname}
EndPreamble
LangPreamble
\providecommand{\assumptionname}{_(Assumption)}
EndLangPreamble
BabelPreamble
\addto\captions$$lang{\renewcommand{\assumptionname}{_(Assumption)}}
EndBabelPreamble
DocBookTag para
DocBookAttr role='assumption'
DocBookItemTag ""
End
Style Assumption*
CopyStyle Theorem*
LatexName assumption*
LabelString "Assumption."
Preamble
\theoremstyle{plain}
\newtheorem*{assumption*}{\protect\assumptionname}
EndPreamble
LangPreamble
\providecommand{\assumptionname}{_(Assumption)}
EndLangPreamble
BabelPreamble
\addto\captions$$lang{\renewcommand{\assumptionname}{_(Assumption)}}
EndBabelPreamble
DocBookTag para
DocBookAttr role='assumption'
DocBookItemTag ""
End
Style Question
CopyStyle Theorem
DependsOn Theorem
LatexName question
LabelString "Question \thetheorem."
Preamble
\theoremstyle{plain}
\newtheorem{question}[thm]{\protect\questionname}
EndPreamble
LangPreamble
\providecommand{\questionname}{_(Question)}
EndLangPreamble
BabelPreamble
\addto\captions$$lang{\renewcommand{\questionname}{_(Question)}}
EndBabelPreamble
DocBookTag para
DocBookAttr role='question'
DocBookItemTag ""
End
Style Question*
CopyStyle Theorem*
LatexName question*
LabelString "Question."
Preamble
\theoremstyle{plain}
\newtheorem*{question*}{\protect\questionname}
EndPreamble
LangPreamble
\providecommand{\questionname}{_(Question)}
EndLangPreamble
BabelPreamble
\addto\captions$$lang{\renewcommand{\questionname}{_(Question)}}
EndBabelPreamble
DocBookTag para
DocBookAttr role='question'
DocBookItemTag ""
End
Input theorems-refprefix.inc