Hello Bennett,
Bennett Helm wrote:
> Here are some layout files for the memoir documentclass. I've split
Many thanks for doing this. I have improved my layout too and it has been
added to CVS (both the developer version and LyX 1.3.3) this week. I'm trying
to merge your changes with mine, but there are some slight differences in
approach we have to discuss first.
> them into two layout files -- one for books and one for articles (with
> a third file for all the common code). The article layout file does a
> couple weird things to make it more compatible with the standard
> article documentclasses. The first is to redefine the sectioning
> commands (so that, for example, \section gets interpreted as
> \chapter). The reason for this is so that it is possible to switch
> between the article document class and the memoir documentclass (with
> the "article" class option) without having to change manually anything
> in the document. The second is to redefine the \chapter command so as
> to remove the erroneous "Chapter x" that precedes section titles in
> headers when babel is loaded.
I am not shure if we should rename the environments that way. After all,
chapter is still chapter, it only behaves "sort of" like section in article
does. Also, the article option does not change to oneside by itself. So
# Global parameters
Sides 1
is not correct (also Columns 2; memoir has single column mode by default).
IMHO we should only provide one layout file and explain (in Extended.lyx) that
memoir can emulate something that is closer to article than the default
(btw., if you redefine the envoronments like you die, i.e. section (lyx) ->
chapter (memoir), then switching classes within LyX will be much more
difficult).
> I've tried to include as many commands and environments as I could from
> the memoir class, though I wasn't able to figure out how to do many of
> them since they take more arguments or options than I could accommodate
> within the LyX layout file. In some cases, as with the \epigraph
> command, I've made the quotation be the body of the Epigraph paragraph,
> with the author to be inserted as a "Short Title" (under the "Insert"
> menu), since the "Short Title" actually gets passed as an optional
> argument to the command.
There is a trick to let Lyx pass two optional arguments (or two parameters,
for that matter), which I have mentioned in the memoir doc section (which I
have added to Extended):
Inside an OptArg Inset (i.e. Short Title), Just insert ][ in ERT. This will
close the first argument an open a second one (in memoir, this can be used to
pass the two arguments two chapter
\chapter[toc][headings]{title}
With epigraph, you can similarly just add a pair of curly brackets in ERT (as
"smart motto }{ source"). Than you don't have to redefine the environment
(it's still a hack after all, but maybe the LyX framework will change
eventually)..
> In other cases, as with the \hangpara command, I've done the same trick
> (where the "Short Title" specifies the number of lines to be "hung" by
> the paragraph), though I've had to stipulate that the width of the
> "hanging" be 2em. This use of LyX's "Short Title" is certainly
> counterintuitive, but it gets the job done.
It don't think it's a good idea to hardcode some value (why 2em?). I really
think hangpara is one of the environments which cannot be supported by LyX in
a sensible way currently and the user is stuck with ERT (of course you could
use the trick mentioned above, but I don't think taht is more elegant than
ERT). There are similar cases in KOMA two (the "addmargin" environment).
I have added legend to the layout.
I am not shure about sidebar, as Peter Wilson classifies it as experimental
and considers to remove it again if it proves too buggy. I think we should
wait until this feature has been declared "stable".
I am reluctant on framed and shaded either. They are both more container
insets than environments (they can include other environments as quote and
verse themselves), so a collapsable inset would be more appropriate.
Furthermore, Martin Vermeer is currently working on a native frames'n'boxes
support for LyX. Maybe this thing should be considered there. Furthermore,
for shaed you are loading the color package, but you have to make shure that
this is not loaded before. This could be done by something like
Preamble
[EMAIL PROTECTED]
\usepackage{color}}{}
\definecolor{shadecolor}{gray}{0.8}
EndPreamble
But again, why hardcoding a color here?
> Perhaps there ought to be a way in the definition of layout files to
> make handling extra arguments/options easier or to make it possible to
> specify more than 2 arguments within LyX. (Or perhaps I'm just not
> seeing how this could be done.)
I don't know how two arguments could be supported in a sane way (but I didn't
think too hard about it), two opt arguments are certainly possible, if
someone adds the code. Until then, we have two use some hackery.
> Of course, comments or suggestions for improvement would be welcome.
Please take these points only as suggestions. My experience on Memoir is
limited and I am just trying to understand what the class actually aims. I
have attached the most recent version of my layout (plus your legend
environment). I'm looking forward for comments, I have also attached the
section from Extended.lyx where I try to explain the usage in short. I think
this all can be improved a lot, and I am grateful for any help.
Regards,
J�rgen.
> Bennett Helm
#% Do not delete the line below; configure depends on this
# \DeclareLaTeXClass{memoir}
# Memoir textclass definition file
# Author: J�rgen Spitzm�ller <[EMAIL PROTECTED]>
# Improvements by: Bennett Helm <[EMAIL PROTECTED]>
# feel free to contribute missing features!
Input stdclass.inc
Sides 2
PageStyle Headings
ClassOptions
FontSize 9|10|11|12|14|17
PageStyle empty|plain|headings|myheadings|ruled|Ruled|companion
Other oldfontcommands
End
Style Legend
LatexType Command
LatexName legend
NeedProtect 1
NextNoIndent 1
ParSkip 0.4
Align Center
AlignPossible Center
End
Style Bibliography
TopSep 4
LabelString Bibliography
LabelFont
Series Bold
Size Huge
EndFont
End
Style Chapterprecis
Margin Static
LatexType Command
LatexName chapterprecis
NeedProtect 1
NextNoIndent 1
LeftMargin MM
LabelSep xxx
ParSkip 0.4
TopSep 0.4
BottomSep 0
ParSep 0.4
Align Block
AlignPossible Block
Font
Shape Italic
Size Normal
EndFont
End
Style Epigraph
Margin Right_Address_Box
LatexType Command
LatexName epigraph
ParSkip 0.4
BottomSep 1.5
ParSep 1.5
Align Left
AlignPossible Left
End
Style Poemtitle
LatexType Command
LatexName poemtitle
NeedProtect 1
NextNoIndent 1
LabelSep xxx
ParSkip 0.4
TopSep 0.4
ParSep 0.4
Align center
AlignPossible center
OptionalArgs 1
Font
Series Bold
EndFont
End
Style Poemtitle*
CopyStyle Poemtitle
LatexName poemtitle*
OptionalArgs 0
End
#LyX 1.3 created this file. For more info see http://www.lyx.org/
\lyxformat 221
\textclass article
\language english
\inputencoding auto
\fontscheme default
\graphics default
\paperfontsize default
\spacing single
\papersize Default
\paperpackage a4
\use_geometry 0
\use_amsmath 0
\use_natbib 0
\use_numerical_citations 0
\paperorientation portrait
\secnumdepth 3
\tocdepth 3
\paragraph_separation indent
\defskip medskip
\quotes_language german
\quotes_times 2
\papercolumns 1
\papersides 1
\paperpagestyle default
\layout Section
Memoir
\layout Standard
By
\noun on
J�rgen Spitzm�ller
\layout Subsection
Overview
\layout Standard
Memoir is a very powerful and constantly evolving class.
It has been designed with regard to fictional and non-fictional literature.
Its aim is to let the user have maximum control over the typesetting of
his document.
Memoir is based on the standard book class, but it can also emulate the
article class (see below).
\layout Standard
Peter Wilson, the developer of Memoir, is known as the author of lots of
useful packages in the LaTeX world.
Most of them have been merged with Memoir.
Therefore, it is much easier to layout the table of contents, appendices,
chapter designs and such.
LyX, though, does not support all of these goodies natively.
Some of them might be added to forthcoming releases
\begin_inset Foot
collapsed true
\layout Standard
You are invited to send suggestions to
\begin_inset LatexCommand [EMAIL PROTECTED]
\end_inset
.
\end_inset
, lots will probably never, due to the limitations of LyX's framework.
Of course you can still use all features with the help of some native LaTeX
commands (ERT
\begin_inset Foot
collapsed true
\layout Standard
Cf.
\begin_inset ERT
status Collapsed
\layout Standard
\backslash
\end_inset
section\SpecialChar ~
\begin_inset LatexCommand \ref{sec:Inserting-LaTeX-Code}
\end_inset
for details.
\end_inset
).
In this section, we can only list those features which are natively supported
by LyX.
For detailed descriptions (and for the rest of features) we are recommending
to have a look at the detailed manual of the Memoir class
\begin_inset Foot
collapsed true
\layout Standard
Cf.
\begin_inset ERT
status Collapsed
\layout Standard
\backslash
\end_inset
\begin_inset LatexCommand \url{CTAN:/macros/latex/memoir/memman.pdf}
\end_inset
.
\end_inset
, which is not only a user guide for the class, but also both a comprehensive
description on good typesetting and a superb example for good typesetting
itself.
\layout Subsection
Basic features and restrictions
\layout Standard
Memoir supports basically all features of the standard book classes.
There are, however, some differences, as follows:
\layout Description
Font\SpecialChar ~
sizes: Memoir has a broader range of font sizes: 9, 10, 11, 12, 14,
17
\layout Description
Page\SpecialChar ~
style: The fancy page style is not supported, due to a command clash
between Memoir and the fancyhdr package (they are both defining a command
with the same name, which confuses LaTeX).
Instead, Memoir comes with a bunch of own page styles (see
\family sans
Layout\SpecialChar \menuseparator
Document\SpecialChar \menuseparator
Page\SpecialChar ~
Style
\family default
).
If you want to use these for the chapter pages, you have to use the command
\family typewriter
\backslash
chapterstyle
\family default
in the main text or in preamble (e.
\begin_inset ERT
status Collapsed
\layout Standard
\backslash
,
\end_inset
g.
\begin_inset ERT
status Collapsed
\layout Standard
\backslash
\end_inset
\family typewriter
\backslash
chapterstyle{companion}
\family default
).
\layout Description
Sectioning: Sectionings (chapter, section, subsection etc.) are coming with
an optional argument in the standard classes.
With this, you can specify an alternative version of the title for the
table of contents and the headers (for instance, if the title is too long).
In LyX, you can do this via
\family sans
Insert\SpecialChar \menuseparator
Short\SpecialChar ~
Title
\family default
at the beginning of a chapter/section.
Memoir features a second optional argument and thus separates the table
of contents from the header.
You can define three variants of a title with this: one for the main text,
one for the table of contents, and one for the headers.
Unfortunately, LyX does not support two optional arguments yet.
But you can fool it.
Just insert a pair of brackets in ERT-Mode (
\family sans
C-l
\family default
) between the first and the second argument.
That is, type
\emph on
<short title for the toc>
\emph default
\family typewriter
][
\family default
\emph on
<short title for the headers>
\emph default
in the Short Title inset (where
\family typewriter
][
\family default
is in TeX-Mode).
\layout Description
TOC/LOT/LOF: In the standard classes (and in many other classes), the table
of contents, the list of figures and the list of table start a new page
automatically.
Memoir does not follow this route.
You have to insert a page break yourself, if you want to have one.
\layout Description
Titlepage: For some unknown reason, Memoir uses pagination on the title
page (in the standard classes, title pages are
\begin_inset Quotes eld
\end_inset
empty
\begin_inset Quotes erd
\end_inset
, i.
\begin_inset ERT
status Collapsed
\layout Standard
\backslash
,
\end_inset
e.
\begin_inset ERT
status Collapsed
\layout Standard
\backslash
\end_inset
without pagina).
If you want an empty title page, type
\family typewriter
\backslash
aliaspagestyle{title}{empty}
\family default
in the preamble.
\layout Description
Article: With the class option
\emph on
article
\emph default
(to be inserted in
\family sans
Layout\SpecialChar \menuseparator
Document\SpecialChar \menuseparator
Extra\SpecialChar ~
Options
\family default
), you can emulate article style.
That is, counters (footnotes, figures, tables etc.) will not be reset on
new chapters, chapters don't start a new page (but are---in contrary to
\begin_inset Quotes eld
\end_inset
real
\begin_inset Quotes erd
\end_inset
article classes---still allowed), parts, though, use their own page, as
in book.
\layout Description
Oldfontcommands: By default, Memoir does not allow the use of the deprecated
font commands, which have been used in the old LaTeX version 2.09 (e.
\begin_inset ERT
status Collapsed
\layout Standard
\backslash
,
\end_inset
g.
\begin_inset ERT
status Collapsed
\layout Standard
\backslash
\end_inset
\family typewriter
\backslash
rm
\family default
,
\family typewriter
\backslash
it
\family default
).
It produces an error and stops LaTeX whenever such a command appears.
The class option
\emph on
oldfontcommands
\emph default
reallows the commands and spits out warnings instead (which does at least
not stop LaTeX).
Since a lot of packages and particularly BibTeX style files are still using
those commands, we have decided to use this option by default.
\layout Subsection
Extra features
\layout Standard
We will only describe the features supported by LyX (which is not much currently
).
Please consult the Memoir manual
\begin_inset Foot
collapsed true
\layout Standard
Cf.
\begin_inset ERT
status Collapsed
\layout Standard
\backslash
\end_inset
\begin_inset LatexCommand \url{CTAN:/macros/latex/memoir/memman.pdf}
\end_inset
.
\end_inset
for details.
\layout Description
Abstract: You may wonder why an abstract is an extra feature.
Well, it is in book class.
Usually books don't have abstracts.
Memoir, however, has.
You can use it whereever and how often you like.
\layout Description
Chapterprecis: You may know this from belletristic: The contents of a chapter
is shortly described below the title and also in the table of contents
(e.
\begin_inset ERT
status Collapsed
\layout Standard
\backslash
,
\end_inset
g.
\begin_inset ERT
status Collapsed
\layout Standard
\backslash
\end_inset
\emph on
Our hero arrives in Troia; he loses some friends; he finds others
\emph default
).
Chapterprecis does exactly this.
It is therefore only sensible below a chapter.
\layout Description
Epigraph: An epigraph is a smart slogan or motto at the beginning of a chapter.
The epigraph environment provides an elegant way of typesetting such a
motto.
The motto itself (text) and its author (source) are divided by a short
line.
Unfortunately, we have to fool LyX a bit here again, since the environment
needs two arguments (text and source).
In this case, we have to use curly brackets (in TeX mode) between the two
arguments:
\emph on
<smart slogan>
\emph default
\family typewriter
}{
\family default
\emph on
<author of the slogan>.
\layout Description
Poemtitle: Memoir has lots of possibilities to typeset poetry (up to very
complex figurative poems).
Lyx can only support a few of them.
One is poemtitle, which is a centered title for poems, which will also
be added to the table of contents (verse is the standard environment for
poems.
Memoir has some enhanced versions of verse, but you need to use ERT, because
they have to be nested inside regular verse environments, which is not
possible with LyX).
\layout Description
Poemtitle*: Same as poemtitle, but it adds no entry to the table of contents.
\the_end