Am Mittwoch, 17. Mai 2006 09:57 schrieb John McCabe-Dansted:
> When writting my thesis I found that I needed komascript to format a
> Thesis correctly, but that LyX would only allow me to enter Theorems
> in a AMS class. My solution to this was to have a Book(koma-script)
> main document that included Book(AMS) LyX documents which contained
> the theorems, lemmas etc.
>
> However with 1.4.1 LyX now generates a prompt
> "LyX: Different textclasses
> Included file `afile.lyx'
> has textclass `amsbook'
> while parent file has textclass `scrbook'."
> for each included file. As I have a dozen included files, just
> clicking OK can take a while. Does anyone know of a way to suppress
> these dialogs or otherwise allow theorems to be entered via the LyX
> GUI into a komascript document?
As always in such a case it's best to write a new layout file.
Obviously, this layout file should be derived from the KOMA book layout
file. For my thesis I've created a layout file for KOMA book with
ntheorem and paralist package. I've attached the corresponding files.
You have to put them into ~/.lyx/layouts (at least on Linux/Unix). Then
you have to run Edit->Reconfigure... After restarting the new text
class (called "book (Doktorarbeit koma)") should be available. If it
works then switch the class of all files to this class. Make sure you
make a backup of your thesis before you try this!
Regards,
Ingo
# Author: Ingo Kloecker <[EMAIL PROTECTED]>
# This defines the theorem styles environments provided by ntheorem.sty.
# Most of this stuff was adapted from the layout files for AMS document
# classes.
# This version has Theorems and other results numbered in one sequence, and all
# numbered environments (figures as well) containing the section number.
# (Theorem (1.1), Corollary (1.2) Theorem (1.3), etc.
# This is the english version.
# Due to a bug (?) in LyX the following has to be copied to the Preamble block
# of the layout file which includes this file. Changing it here doesn't have
# any effect.
Preamble
\usepackage{amsmath}
\usepackage[standard,amsmath,thmmarks]{ntheorem}
\theoremstyle{plain}
\newtheorem{thm}{Theorem}[chapter]
EndPreamble
# The environments defined are :
# - Proof
# - Theorem
# - Theorem*
# - Lemma
# - Lemma*
# - Proposition
# - Proposition*
# - Corollary
# - Corollary*
# - Definition
# - Definition*
# - Remark
# - Remark*
# - Example
# - Example*
# Proof style declaration
Style Proof
Margin First_Dynamic
LatexType Environment
LatexName proof
NextNoIndent 1
LabelSep xx
ParIndent MMM
ParSkip 0.4
ItemSep 0.2
TopSep 0.7
BottomSep 0.7
ParSep 0.3
Align Block
AlignPossible Block, Left
LabelType Static
LabelString "Proof."
EndLabelType Box
# standard font definition
Font
Shape Up
Size Normal
EndFont
# label font definition
LabelFont
Shape Italic
EndFont
# We don't want the preamble from Theorem
Preamble
EndPreamble
End
# Theorem-numbered style declaration
Style Theorem
Margin First_Dynamic
LatexType Environment
LatexName thm
NextNoIndent 1
LabelSep xx
ParIndent MMM
ParSkip 0.4
ItemSep 0.2
TopSep 0.7
BottomSep 0.7
ParSep 0.3
Align Block
AlignPossible Block, Left
LabelType Static
LabelString "Theorem #."
# standard font definition
Font
Shape Italic
Size Normal
EndFont
# label font definition
LabelFont
Shape Up
Series Bold
EndFont
End
# Theorem-unnumbered style declaration
Style Theorem*
CopyStyle Theorem
LatexName thmNN*
LabelString "Theorem."
Preamble
\theoremstyle{plain}
\newtheorem*{thmNN*}{Theorem} %% unnumbered; needed for LyX
EndPreamble
End
# Lemma-numbered style declaration
Style Lemma
CopyStyle Theorem
LatexName lem
LabelString "Lemma #."
Preamble
\theoremstyle{plain}
\newtheorem{lem}[thm]{Lemma} %%Delete [thm] to re-start numbering
EndPreamble
End
# Lemma-unnumbered style declaration
Style Lemma*
CopyStyle Theorem
LatexName lemNN*
LabelString "Lemma."
Preamble
\theoremstyle{plain}
\newtheorem*{lemNN*}{Lemma} %% unnumbered; needed for LyX
EndPreamble
End
# Proposition-numbered style declaration
Style Proposition
CopyStyle Theorem
LatexName prop
LabelString "Proposition #."
Preamble
\theoremstyle{plain}
\newtheorem{prop}[thm]{Proposition} %%Delete [thm] to re-start numbering
EndPreamble
End
# Proposition-unnumbered style declaration
Style Proposition*
CopyStyle Theorem
LatexName propNN*
LabelString "Proposition."
Preamble
\theoremstyle{plain}
\newtheorem*{propNN*}{Proposition} %% unnumbered; needed for LyX
EndPreamble
End
# Corollary-numbered style declaration
Style Corollary
CopyStyle Theorem
LatexName cor
LabelString "Corollary #."
Preamble
\theoremstyle{plain}
\newtheorem{cor}[thm]{Corollary} %%Delete [thm] to re-start numbering
EndPreamble
End
# Corollary-unnumbered style declaration
Style Corollary*
CopyStyle Theorem
LatexName corNN*
LabelString "Corollary."
Preamble
\theoremstyle{plain}
\newtheorem*{corNN*}{Corollary} %% unnumbered; needed for LyX
EndPreamble
End
# Definition-numbered style declaration
Style Definition
CopyStyle Theorem
LatexName defn
LabelString "Definition #."
# standard font definition
Font
Shape Up
EndFont
# label font definition
LabelFont
Shape Up
Series Bold
EndFont
Preamble
\theoremstyle{definition}
\newtheorem{defn}[thm]{Definition}
EndPreamble
End
# Definition-unnumbered style declaration
Style Definition*
CopyStyle Definition
LatexName defnNN*
LabelString "Definition."
Preamble
\theoremstyle{definition}
\newtheorem*{defnNN*}{Definition} %% unnumbered; needed for LyX
EndPreamble
End
# Remark-numbered style declaration
Style Remark
CopyStyle Definition
LatexName rem
LabelString "Remark #."
# standard font definition
Font
Shape Up
Size Normal
EndFont
# label font definition
LabelFont
Series Medium
Shape Italic
EndFont
Preamble
\theoremstyle{definition}
\newtheorem{rem}[thm]{Remark}
EndPreamble
End
# Remark-unnumbered style declaration
Style Remark*
CopyStyle Remark
LatexName remNN*
LabelString "Remark."
Preamble
\theoremstyle{definition}
\newtheorem*{remNN*}{Remark} %% unnumbered; needed for LyX
EndPreamble
End
# Example-numbered style declaration
Style Example
CopyStyle Definition
LatexName exa
LabelString "Example #."
Preamble
\theoremstyle{definition}
\newtheorem{exa}[thm]{Example}
EndPreamble
End
# Example-unnumbered style declaration
Style Example*
CopyStyle Definition
LatexName exaNN*
LabelString "Example."
Preamble
\theoremstyle{definition}
\newtheorem*{exaNN*}{Example} %% unnumbered; needed for LyX
EndPreamble
End
#% Do not delete the line below; configure depends on this
# \DeclareLaTeXClass[scrbook,ntheorem.sty,paralist.sty]{book (Doktorarbeit
koma)}
# KOMA book textclass definition file for my Doktorarbeit
# Derived from scrbook.layout and scrclass.inc
# Author : Ingo Klöcker <[EMAIL PROTECTED]>
# General textclass parameters
Sides 2
PageStyle Headings
SecNumDepth 2
TocDepth 2
DefaultStyle Standard
# Standard style definition
Style Standard
LatexName dummy
ParIndent MM
ParSkip 0.4
AlignPossible Block, Left, Right, Center
End
# First the theorem environment definitions
Input ntheorem-en.inc
# Next my list definitions
Input iklists-en.inc
Input stdcounters.inc
Input stdfloats.inc
# Modify Description
Style Description
LabelFont
Family Sans
EndFont
End
# Labeling style definition
Style Labeling
Margin Manual
LatexType List_Environment
LatexName labeling
NextNoindent 1
LabelSep xxx
ParSkip 0.4
TopSep 0.7
BottomSep 0.7
ParSep 0.5
Align Block
AlignPossible Block, Left
LabelType Manual
LabelString 00.00.0000
End
Input stdsections.inc
# Modify Part
Style Part
Font
Family Sans
EndFont
End
# Modify Chapter
Style Chapter
LabelString ""
Font
Family Sans
Size Largest
EndFont
End
# Modify Section
Style Section
Font
Family Sans
EndFont
End
# Modify Subsection
Style Subsection
Font
Family Sans
EndFont
End
# Modify Subsubsection
Style Subsubsection
Font
Family Sans
EndFont
End
# Modify Paragraph
Style Paragraph
Font
Family Sans
EndFont
End
# Modify Subparagraph
Style Subparagraph
LeftMargin ""
Font
Family Sans
EndFont
End
Input stdstarsections.inc
# Addpart Style Definition
Style Addpart
CopyStyle Part*
LatexName addpart
End
# Addchap Style Definition
Style Addchap
CopyStyle Chapter*
LatexName addchap
End
# Addsec Style Definition
Style Addsec
CopyStyle Section*
LatexName addsec
End
# Addchap* Style Definition
Style Addchap*
CopyStyle Chapter*
LatexName addchap*
End
# Addsec* Style Definition
Style Addsec*
CopyStyle Section*
LatexName addsec*
End
# Minisec style definition
Style Minisec
LatexType Command
LatexName minisec
NeedProtect 1
NextNoIndent 1
LabelSep xxx
ParSkip 0.4
TopSep 0.4
ParSep 0.4
AlignPossible Block, Left
Font
Family Sans
Series Bold
EndFont
End
Input stdtitle.inc
# Modify Title
Style Title
Font
Family Sans
Series Bold
EndFont
End
# Modify Author
Style Author
Font
Size Larger
EndFont
End
# Modify Date
Style Date
Font
Size Larger
EndFont
End
# Subject style definition
Style Subject
CopyStyle Author
LatexName subject
End
# Publishers style definition
Style Publishers
CopyStyle Author
LatexName publishers
End
# Dedication style definition
Style Dedication
CopyStyle Author
LatexName dedication
End
# Titlehead style definition
Style Titlehead
CopyStyle Author
LatexName titlehead
Align Left
AlignPossible Left
Font
Size Normal
EndFont
End
# Uppertitleback style definition
Style Uppertitleback
CopyStyle Titlehead
LatexName uppertitleback
End
# Lowertitleback style definition
Style Lowertitleback
CopyStyle Titlehead
LatexName lowertitleback
End
# Extratitle style definition
Style Extratitle
CopyStyle Titlehead
LatexName extratitle
End
Input stdstruct.inc
# Modify Abstract
Style Abstract
LabelFont
Family Sans
EndFont
End
# Modify Bibliography
Style Bibliography
LabelFont
Family Sans
EndFont
End
Input stdlayouts.inc
# Captionabove style definition
Style Captionabove
CopyStyle Caption
LatexName captionabove
End
# Captionbelow style definition
Style Captionbelow
CopyStyle Caption
LatexName captionbelow
End
# Dictum style definition
Style Dictum
Margin Right_Address_Box
LatexType Command
LatexName dictum
ParSkip 0.4
BottomSep 1.5
ParSep 1.5
Align Left
AlignPossible Left
OptionalArgs 1
Font
Size Normal
EndFont
End
Input lyxmacros.inc
Input scrmacros.inc
#----- end of scrclass.inc ----------------------------------------------------
NoStyle Abstract # there are no abstract in a book.
# Modify bibliography
Style Bibliography
TopSep 4
LabelString Bibliography
LabelFont
Series Bold
Size Largest
EndFont
End
#----- end of scrbook.layout --------------------------------------------------
# The first 4 lines should be defined in ntheorem-en.inc, but the
# Preamble section there is ignored.
Preamble
\usepackage{amsmath}
\usepackage[standard,amsmath,thmmarks]{ntheorem}
\theoremstyle{plain}
\newtheorem{thm}{Theorem}[chapter]
\usepackage{paralist}
%\usepackage{enumerate}
%\renewcommand{\thechapter}{\Roman{chapter}:\hspace{-0.5em}}
%\renewcommand{\thesection}{\alph{section})\hspace{-0.5em}}
%\renewcommand{\thesubsection}{\arabic{subsection})\hspace{-0.5em}}
[EMAIL PROTECTED]
% {\Large\upshape\bfseries Kapitel }}
[EMAIL PROTECTED]
% {\large\upshape\bfseries}}
[EMAIL PROTECTED]
% {\upshape\bfseries}}
\numberwithin{equation}{chapter} %% Comment out for sequentially-numbered
\numberwithin{figure}{chapter} %% Comment out for sequentially-numbered
EndPreamble
# Definitions for list environments
#
# This file defines the standard list environments and additionally some
# compact enumeration environments with defined counter layouts as provided
# by paralist.sty.
# Derived from stdlists.inc.
# Author: Ingo Kloecker <[EMAIL PROTECTED]>
# This is the English version.
# Itemize style definition
Style Itemize
Margin Static
LatexType Item_Environment
LatexName itemize
NextNoIndent 1
LeftMargin MMN
LabelSep xx
ItemSep 0.2
TopSep 0.7
BottomSep 0.7
ParSep 0.3
Align Block
AlignPossible Block, Left
LabelType Static
LabelString *
End
# Enumerate style definition
Style Enumerate
Margin Static
LatexType Item_Environment
LatexName enumerate
NextNoIndent 1
LeftMargin MMN
LabelSep xx
ParSkip 0.0
ItemSep 0.2
TopSep 0.7
BottomSep 0.7
ParSep 0.3
Align Block
AlignPossible Block, Left
LabelType Counter_EnumI
End
# Enumerate style definitions
Style Enumeration_(a_b_c)
CopyStyle Enumerate
LatexName compactenum
LatexParam "[a)]"
LabelType Counter_EnumI
ItemSep 0.0
TopSep 0.0
BottomSep 0.0
End
Style Enumeration_(i_ii_iii)
CopyStyle Enumerate
LatexName compactenum
LatexParam "[(i)]"
LabelType Counter_EnumI
ItemSep 0.0
TopSep 0.0
BottomSep 0.0
End
Style Enumeration_(1_2_3)
CopyStyle Enumerate
LatexName enumerate
LatexParam "[\upshape (1)]"
LabelType Counter_EnumI
ItemSep 0.0
TopSep 0.0
BottomSep 0.0
End
# The original Enumerate is not deleted to make the conversion
# easier.
# Description style definition
Style Description
Margin First_Dynamic
LatexType Item_environment
LatexName description
NextNoIndent 1
LeftMargin MM
LabelSep xxx
ParSkip 0.4
ItemSep 0.2
TopSep 0.7
BottomSep 0.7
ParSep 0.3
Align Block
AlignPossible Block, Left
LabelType Manual
LabelString MM
# label font definition
LabelFont
Series Bold
EndFont
End
# List style definition
Style List
Margin Manual
LatexType List_Environment
LatexName lyxlist
NextNoindent 1
LabelSep xxx
ParSkip 0.4
TopSep 0.7
BottomSep 0.7
ParSep 0.5
Align Block
AlignPossible Block, Left
LabelType Manual
LabelString 00.00.0000
#define the environment lyxlist
Preamble
\newenvironment{lyxlist}[1]
{\begin{list}{}
{\settowidth{\labelwidth}{#1}
\setlength{\leftmargin}{\labelwidth}
\addtolength{\leftmargin}{\labelsep}
\renewcommand{\makelabel}[1]{##1\hfil}}}
{\end{list}}
EndPreamble
End