8.6. Lists
and the typeblock, respectively; S and E are the spine andfore-edge margins, respectively)
then the amount M to be added to the spine margin and subtracted from the fore-edge
margin is calculated as:
M= 1/2(P
w
−B
w
)− S
For example, assume that the
\textwidth
is 5inchesand the
\spinemargin
is 1inch.
On US letterpaper (
\paperwidth
is 8.5 inches) the fore-edge margin is then 2.5 inches,
and 0.75 inches
2
must be added to the spine margin and subtracted from the fore-edge to
center the typeblock. The
adjustwidth
environment canbe used to make the (temporary)
change.
\begin{adjustwidth*}{0.75in}{-0.75in} ...
\calccentering{
length
}
If you don’t want to do the above calculations by hand,
\calccentering
will do it for
you. The length argument must be the name of apre-existing lengthcommand, including
the backslash. After calling
\calccentering
,length is the amount to be added to the
spine margin and subtracted from the foredge marginto center the typeblock. Anexample
usage is
\calccentering{\mylength}
\begin{adjustwidth*}{\mylength}{-\mylength}
text horizontally centered on the physical page
\end{adjustwidth*}
You do not necessarily have to define a new length for the purposes of
\calccentering
. Any existing length will do, such as
\unitlength
, provided it will
be otherwise unused between performing the calculation and changing the margins (and
that you can, if necessary reset it to itsoriginal value — the default value for
\unitlength
is 1pt).
8.6 L
ISTS
Standard LaTeX provides four kinds of lists. There is a general
list
environment which
youcanuse to define your ownparticular kind of list, and the
description
,
itemize
and
enumerate
lists (whichare internally defined in terms of the general
list
environment
3
).
This class provides the normal
description
list, plus a couple of others of the same
kind, but the
itemize
and
enumerate
lists are extended versions of the normal ones.
\begin{description} \item[
label
]
...
\end{description}
\begin{blockdescription} \item[
label
]
...
\end{blockdescription}
\descriptionlabel
label
\blockdescriptionlabel
label
In a
description
list an
\item
’s label is typeset by
descriptionlabel
. The default
definition is
2
On A4 paper the result would be different.
3
Thequote andquotation environments are alsodefined in terms ofthe generallist environment. You
maybe surprised where it crops up.
133
Best pdf to text converter - application control cloud:C# PDF Convert to Text SDK: Convert PDF to txt files in C#.net, ASP.NET MVC, WinForms, WPF application
C# PDF to Text (TXT) Converting Library to Convert PDF to Text
www.rasteredge.com
Best pdf to text converter - application control cloud:VB.NET PDF Convert to Text SDK: Convert PDF to txt files in vb.net, ASP.NET MVC, WinForms, WPF application
VB.NET Guide and Sample Codes to Convert PDF to Text in .NET Project
www.rasteredge.com
8. P
ARAGRAPHS AND LISTS
\newcommand*{\descriptionlabel}[1]{\hspace\labelsep
\normalfont\bfseries #1}
which gives a bold label. To have, for example, a sans label instead, do
\renewcommand*{\descriptionlabel}[1]{\hspace\labelsep
\normalfont\sffamily #1}
The only noticeable difference between a
description
list and a
blockdescription
list is that the latter is set as indented block paragraphs; invisibly, it also has its own
\blockdescriptionlabel
.
\begin{labelled}{
name
}\item[
label
]
...
\end{labelled}
\begin{flexlabelled}{
name
}{
labelwidth
}{
labelsep
}{
itemindent
}
%
{
leftmargin
}{
rightmargin
}
\item[
label
]
...
\end{flexlabelled}
.
The
labelled
environment is like the
description
environment except that you can
specify the label format via the name argument where
\name
isthe formatting macro. For
example, if you wanted the item labels set in italics, then
\newcommand*{\itlabel}[1]{\hspace\labelsep \normalfont\itshape #1}
\begin{labelled}{itlabel}
\item[First] ...
...
The
flexlabelled
environment adds additional controls to the
labelled
one. The
name argument is the same as that for
labelled
and the remainder are lengths that
correspond to the dimensions shown in Figure 8.2. If you want any of the dimensions
to retain their current values, use
*
instead of a length as the value for that particular
argument.
Source for example 8.6
This example shows how the \texttt{flexlabelled} list can be used to
change the formatting of a description-like list.
\newcommand*{\sclabel}[1]{\normalfont\scshape #1}
\begin{flexlabelled}{sclabel}{0pt}{0.5em}{0.5em}{*}{\leftmargin}
\item[First] The labels should be typeset using smallcaps and the first
paragraph should be set as block paragraph.
Further paragraphs completing an \cs{item}’s descriptive text
will be set with the normal paragraph indent.
\item[Second] The list should be indented from each margin like the
\texttt{quote} and \texttt{quotation} environments.
\end{flexlabelled}
More major changes to a description-like list will probably involve writing
the code for a new environment.
The
itemize
and
enumerate
environments below are based on theenumerate pack-
age [Car98c].
134
application control cloud:Online Convert PDF to Text file. Best free online PDF txt
Online PDF to Text Converter. Download Free Trial. Convert a PDF to Text. Just upload your file by clicking on the blue button or drag
www.rasteredge.com
application control cloud:C# PDF Convert to Images SDK: Convert PDF to png, gif images in C#
Graphics, and REImage in C#.NET Project. Best PDF converter SDK for Visual Studio .NET for converting PDF to image in C#.NET application.
www.rasteredge.com
8.6. Lists
Typeset example 8.6: Smallcap quote style description list
Thisexample showshow the
flexlabelled
list can be used to change the formatting
of a description-like list.
F
IRST
The labels should be typeset using smallcaps and the first paragraph
should be set as block paragraph.
Further paragraphs completing an
\item
’s descriptive text will be set
with the normal paragraph indent.
S
ECOND
The list should be indented from each margin like the
quote
and
quotation
environments.
More major changes to a description-like list willprobably involve writing the code for
anew environment.
\begin{itemize}[
marker
]\item
...
\end{itemize}
The normal markers for
\item
sin an
itemize
list are:
1. bullet (
\textbullet
),
2. bold en-dash (–
\bfseries\textendash
),
3. centered asterisk (
\textasteriskcentered
), and
4. centered dot (
\textperiodcentered
).
The optional marker argument can be used to specify the marker for the list items in a
particular list. If for some reason you wanted to use a pilcrow symbol as the item marker
for a particular list you could do
\begin{itemize}[\P]
\item ...
...
\begin{enumerate}[
style
]\item
...
\end{enumerate}
The normal markers for, say, the third item in an
enumerate
list are: 3., c., iii., and C. The
optional style argument can be used to specify the style used to typeset the item counter.
An occurrence of one of the special characters
A
,
a
,
I
,
i
or
1
in style specifies that the
counter will be typeset using uppercase letters (
A
), lowercase letters (
a
), uppercase Roman
numerals (
I
), lowercase Roman numerals (
i
), or arabic numerals(
1
). These charactersmay
be surrounded by any LaTeX commands or characters, but if so the special charactersmust
be put inside braces (e.g.,
{a}
)if they are to be considered as ordinary characters instead
of as special styling characters. For example, to have the counter typeset as a lowercase
Roman numeral followed by a single parenthesis
\begin{enumerate}[i)]
...
Hint. memoir does not provide high level interfaces to configure the appearance. We provide some
simple tools to adjust vertical spacing, see below.
Users seeking more control can have a look at theenumitem package by Javier Bezos. If loaded
as
135
application control cloud:Purchase RasterEdge Product License Online
Buy Now. Raster XImage.Raster for .NET. Best .NET imaging SDK Buy Now. OCR XImage.OCR for .NET. Scan text from raster images, like jpeg, tiff, scanned pdf.
www.rasteredge.com
application control cloud:C# PDF Text Highlight Library: add, delete, update PDF text
PDF Page in C#.NET Class. Best PDF document reader SDK control that can highlight PDF text in Visual C# .NET framework application.
www.rasteredge.com
8. P
ARAGRAPHS AND LISTS
\usepackage[shortlabels]{enumitem}
then our
\begin{enumerate}[i)]
\item \label{item:tst} ...
syntax will work out of the box.
One difference though: In memoir
\ref{item:tst}
will give you ‘i’, whereas, ifenumitem
is loaded the full formatting is returned from the cross reference, i.e., ‘i)’. This is fully configurable
inenumitem .
\tightlists \defaultlists
\firmlists \firmlists*
The normal LaTeX
description
,
itemize
and
enumerate
lists have an open look
about them when they are typeset as there is significant vertical space between the items
in the lists. After the declaration
\tightlists
is issued, the extra vertical spacing be-
tween the list items is deleted. The open list appearance is used after the
\defaultlists
declaration is issued. These declarations, if used, must come before the relevant list
environment(s). The class initially sets
\defaultlists
. This manual, though, uses
\tightlists
. The spacing following the
\firmlists
declaration is intermediate be-
tween
\defaultlists
and
\tightlists
. The starred version,
\firmlists*
, allows
sligthly less space around the lists when they are preceded by a blank line than does the
unstarred
\firmlists
.
\firmlist \tightlist
The command
\firmlist
or
\tightlist
can be used immediately after the start of alist
environment to reduce the verticalspace within that list. The
\tightlist
removesall the
spaceswhile the
\firmlist
produces a list that still hassome space but not as much asin
an ordinary list.
\begin{list}{
default-label
}{
code
}
items
\end{list}
LaTeX’slist environmentsare defined in termsof a general
list
environment; some other
environments, such asthe
quote
,
quotation
and
adjustwidth
are also defined in terms
of a
list
.Figure 8.2showsthe parameterscontrolling the layout of the
list
environment.
The
list
environment takes two arguments. The default-label argument is the code
that should be used when the
\item
macro is used without its optional label argu-
ment. For lists like
enumerate
this is specified but often it is left empty, such as for the
adjustwidth
environment.
The code argument is typically used for setting the particular values of the list lay-
out parameters. When defining your own types of lists it is advisable to set each of the
parameters unless you know that the default values are suitable for your purposes. These
parameterscanallbe modified with either the
\setlength
or
\addtolength
commands.
As an example, here is the specification for a description-like list that uses an italic
rather than bold font for the items, and is somewhat tighter than the normal
description
list.
136
application control cloud:C# WPF PDF Viewer SDK to convert and export PDF document to other
Best PDF Viewer control as well as a powerful .NET An advanced .NET WPF PDF converter library for converting Export PDF text content to TXT file with original
www.rasteredge.com
application control cloud:C# PDF Print Library: Print PDF documents in C#.net, ASP.NET
XDoc.HTML5 Viewer. XDoc.Windows Viewer. XDoc.Converter. C#.NET rotate PDF pages, C#.NET search text in PDF A best PDF printer control for Visual Studio .NET and
www.rasteredge.com
8.6. Lists
Following Text
Item 2
Label
Item 1, Paragraph 2
-
\listparindent
-
\leftmargin
\rightmargin
Item 1
Label
-
\itemindent
\labelsep
\labelwidth
Preceding Text
?
\topsep + \parskip [+ \partopsep]
?
\itemsep + \parsep
?
\parsep
?
\topsep + \parskip [+ \partopsep]
Figure 8.2: The layout parameters for general lists
137
application control cloud:VB.NET PDF Convert to Tiff SDK: Convert PDF to tiff images in vb.
Free VB.NET Guide to Render and Convert PDF Document to TIFF in Visual Basic Class. Best VB.NET adobe PDF to Tiff converter SDK for Visual Studio .NET.
www.rasteredge.com
application control cloud:C# PDF Text Add Library: add, delete, edit PDF text in C#.net, ASP
XDoc.HTML5 Viewer. XDoc.Windows Viewer. XDoc.Converter. View & Process. A best PDF annotation SDK control for Visual Studio .NET can help to add text to PDF
www.rasteredge.com
8. P
ARAGRAPHS AND LISTS
%%%%% An italic and tighter description environment
\newcommand{\itlabel}[1]{\hspace\labelsep\normalfont\itshape #1}
\newenvironment{itdesc}{%
\list{}{%
\setlength{\labelsep}{0.5em}
\setlength{\itemindent}{0pt}
\setlength{\leftmargin}{\parindent}
\setlength{\labelwidth}{\leftmargin}
\addtolength{\labelwidth}{-\labelsep}
\setlength{\listparindent}{\parindent}
\setlength{\parsep}{\parskip}
\setlength{\itemsep}{0.5\onelineskip}
\let\makelabel\itlabel}}{\endlist}
This gets used like any other list:
\begin{itdesc}
\item[label] ....
\end{itdesc}
Here is another kind of list called
symbols
that might be used for a list of symbols or
other similar kind of listing.
% Symbol list
\newenvironment{symbols}%
{\list{}% empty label
{\setlength{\topsep}{\baselineskip}
\setlength{\partopsep}{0pt}
\setlength{\itemsep}{0.5\baselineskip}
\setlength{\parsep}{0pt}
\setlength{\leftmargin}{2em}
\setlength{\rightmargin}{0em}
\setlength{\listparindent}{1em}
\setlength{\itemindent}{0em}
\setlength{\labelwidth}{0em}
\setlength{\labelsep}{2em}}}%
{\endlist}
\newcommand{\symb}[1]{\item[#1]\mbox{}\\\nopagebreak}
In thiscase it gets used like this
\begin{symbols}
\symb{SYMBOL 1} definition
\symb{SYMBOL 2} ...
\end{symbols}
In the code for the
symbols
list I used the command forms(i.e.,
\list
and
\endlist
)
for specifying the start and end of a list. It is a matter of taste whether you use the com-
mand or
\begin{...}
and
\end{...}
forms, but the latter does make it more obvious
that an environment is being dealt with.
Several LaTeX environments are defined in terms of a very simple list, called a
trivlist
. Such a list has little internal structure but like the
list
environment the ver-
138
application control cloud:C# PDF Text Box Edit Library: add, delete, update PDF text box in
with .NET PDF Library. A best PDF annotator for Visual Studio .NET supports to add text box to PDF file in Visual C#.NET project.
www.rasteredge.com
8.6. Lists
Typeset example 8.7: Changing space before and after lists
This example shows that the space around the
CENTER AND OTHER LIST ENVIRONMENTS
can be minimised by using the
\zerotrivseps
declaration.
The normal spacing can be restored by using the
\restoretrivseps
command.
An alternative is to use the
\centering
macro.
tical space before and after a
trivlist
(or any list based on it) is set by
\topsep
and
\partopsep
,as shown in Figure 8.2.
\zerotrivseps \savetrivseps\restoretrivseps
The
center
environment is one of several that is based on a
trivlist
,and so has space
before and after it. If you don’t want thisthe
\zerotrivseps
declarationeliminates those
spaces. You can think of it as being defined as:
\newcommand*{\zerotrivseps}{%
\setlength{\topsep}{0pt}%
\setlength{\partopsep}{0pt}}
Before doing this, though, you might consider calling
\savetrivseps
which stores the
current values of
\topsep
and
\partopsep
;it is initially defined to store the default val-
ues. The command
\restoretrivseps
setsthe current valuesof these lengths to the ones
saved by
\savetrivseps
.
Source for example 8.7
This example shows that the space around the
\begin{center}
CENTER AND OTHER LIST ENVIRONMENTS
\end{center}
can be minimised by using the \zerotrivseps
\begin{center}
\verb?\zerotrivseps? declaration.
\end{center}
The normal spacing can be restored by using the \restoretrivseps
\begin{center}
\verb?\restoretrivseps? command.
\end{center}
An alternative is to use the \verb?\centering? macro.
139
8. P
ARAGRAPHS AND LISTS
Among the environments defined in terms of a
trivlist
are:
flushleft
,
center
,
flushright
,
verbatim
,and others. The example (8.7) shows how it is possible to change
the spacing around the
center
environment, but it applies equally to the other environ-
ments.
140
Nine
Contents lists
This chapter describes how to change the appearance of the Table of Contents (ToC) and
similar listslike the List of Figures (LoF). In the standard classes the typographic design of
these isvirtually fixed as it is buried within the class definitions.
As wellasallowing these liststo appear multiple timesin adocumant, thememoirclass
gives handles to easily manipulate the design elements. The class also provides means for
you to define your own new kinds of “List of. ..”.
The functionality described is equivalent to the combination of the tocloft and
tocbibindpackages[Wil01i,Wil01h].
\tableofcontents \tableofcontents*
\listoffigures \listoffigures*
\listoftables \listoftables*
The commands
\tableofcontents
,
\listoffigures
and
\listoftables
typeset,
repectively, the Table of Contents (ToC), List of Figures (LoF) and List of Tables (LoT).
Inmemoir, unlike the standard classes, the unstarred versions add their respective titles
to the ToC. The starred versions act like the standard classes’ unstarred versions as they
don’t add their titles to the ToC.
This chapter explains the inner workings behind the ToC and friends, how to change
their appearance and the apperance of the entries, and how to create new ‘List of.. .’. If
you don’t need any of these then you can skip the remainder of the chapter.
9.1 G
ENERAL
T
O
C
METHODS
In §9.2 we will provide the class configuration interface for the various parts of the ToC.
In order to understand how these macros are used, we start by providing some back-
ground informationthisis ageneraldescription of how the standard LaTeX classesprocess
aTable of Contents (ToC). Asthe processing of List of Figures(LoF) and List of Tables (LoT)
issimilar I willjust discuss the ToC. You may wishto skipthissectiononyour first reading.
The basic process is that each sectioning command writes out information about itself
—its number, title, and page — to the
toc
file. The
\tableofcontents
command reads
this file and typesets the contents.
First of all, remember that each sectional division has an associated level as listed in
in Table 6.1 on page 78. LaTeX will not typeset an entry in the ToC unless the value of
the
tocdepth
counter is equal to or greater than the level of the entry. The value of the
tocdepth
counter can be changed by using
\setcounter
or
\settocdepth
.
Chapter lastupdated2013/05/08 (revision 457)
141
9. C
ONTENTS LISTS
\addcontentsline{
file
}{
kind
}{
text
}
LaTeX generates a
toc
file if the document contains a
\tableofcontents
com-
mand.
The sectioning commands
1
put entries into the
toc
file by calling the
\addcontentsline
command, where file is the file extension (e.g.,
toc
), kind is
the kind of entry (e.g.,
section
or
subsection
), and text is the (numbered) title
text. In the cases where there is a number, the text argument is given in the form
{\numberline{number}title text}
.
\contentsline{
kind
}{
text
}{
page
}
The
\addcontentsline
command writes an entry to the given file in the form:
\contentsline{
kind
}{
text
}{
page
}
where page is the page number.
For example, if
\section{Head text}
was typeset as ‘3.4Head text’on page 27, then
there would be the following entry in the
toc
file:
\contentsline{section}{\numberline{3.4} Head text}{27}
Extracts from
toc
,
lof
and
lot
files are shown in Figure 9.1.
For each kind that might appear in a
toc
(
lof
,
lot
)file, LaTeX provides a command:
\l@kind{
title
}{
page
}
which performs the actual typesetting of the
\contentsline
entry.
\@pnumwidth{
length
}
\@tocrmarg{
length
}
\@dotsep{
number
}
The general layout of a typeset entry is illustrated in Figure 9.2. There are three internal
LaTeX commandsthat are used inthe typesetting. The page number istypeset flushrightin
abox of width
\@pnumwidth
,and the box is at the righthand margin. If the page number
is too long to fit into the box it will stick out into the righthand margin. The title text
is indented from the righthand margin by an amount given by
\@tocrmarg
. Note that
\@tocrmarg
should be greater than
\@pnumwidth
.Some entries are typeset with a dotted
leader between the end of the title title text and the righthand margin indentation. The
distance, in math units
2
between the dots in the leader is given by the value of
\@dotsep
.
In the standard classes the same values are used for the ToC, LoF and the LoT.
The standard values for these internal commands are:
\@pnumwidth
=1.55em
\@tocrmarg
=2.55em
\@dotsep
=4.5
The values can be changed by using
\renewcommand
,in spite of the fact that the first two
appear to be lengths.
Dotted leaders are not available for Part and Chapter ToC entries.
\numberline{
number
}
1
For figures and tables it is the\caption command that populates thelof andlotfiles.
2
There are 18mu to 1em.
142
Documents you may be interested
Documents you may be interested