12.1. Footnotes
Below, footnote 3 is a
\footnote
while footnote 4 is a
\verbfootnote
.
The
\verbfootnote
command should appear3 to give identical results as the normal
\footnote
,but it can include some verbatim text4 in the text argument.
\plainfootnotes
\twocolumnfootnotes
\threecolumnfootnotes
\paragraphfootnotes
Normally, each footnote starts a new paragraph. The class provides three other
styles, making four in all. Following the
\twocolumnfootnotes
declaration footnotes
will be typeset in two columns, and similarly they are typeset in three columns after
the
\threecolumnfootnotes
declaration. Footnotes are run together as a single para-
graph after the
\paragraphfootnotes
declaration. The default style is used after the
\plainfootnotes
declaration.
The style can be changed at any time but there may be odd effectsif the change ismade
in the middle of apage when there are footnotesbefore and after the declaration. You may
find it interesting to try changing styles in an article type document that uses
\maketitle
and
\thanks
,and some footnotes on the page with the title:
\title{...\thanks{...}}
\author{...\thanks{...}...}
...
\begin{document}
\paragraphfootnotes
\maketitle
\plainfootnotes
...
\footfudgefiddle
Paragraphed footnotesmay overflow the bottomof a page. TeXhasto estimate the amount
of space that the paragraph will require once all the footnotes are assembled into it. It
then chops off the main text to leave the requisite space at the bottom of the page, fol-
lowing which it assembles and typesets the paragraph. If it underestimated the size
then the footnotes will run down the page too far. If this happens then you can change
\footfudgefiddle
to make TeX be more generous in its estimation. The default is 64
and a value about 10% higher should fix most overruns.
\renewcommand*{\footfudgefiddle}{70}
You must use an integer in the redefinition as the command is going to be used in a place
where TeX expects an integer.
3
Theremay besome problems ifcolor is used.
4
The\footnote macro, like all other macros except for\verbfootnote, can not contain verbatim text in
its argument.
233
Convert pdf to text open source - application Library tool: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
Convert pdf to text open source - application Library tool: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
12. P
AGE NOTES
\newfootnoteseries{
series
}
\plainfootstyle{
series
}
\twocolumnfootstyle{
series
}
\threecolumnfootstyle{
series
}
\paragraphfootstyle{
series
}
If you need further series you can create you own. A new footnote series is created by
the
\newfootseries
macro, where series is an alphabetic identifier for the series. This
is most conveniently a single (upper case) letter, for example
P
.
Calling, say,
\newfootnoteseries{Q}
creates a set of macros equivalent to those
for the normal
\footnote
but with the series appended. These include
\footnoteQ
,
\footnotemarkQ
,
\footnotetextQ
and so on. These are used just like the normal
\footnote
and companions.
By default, a series is set to typeset using the normal style of aparagraph per note. The
series’ style can be changed by using one of the
\...footstyle
commands.
For example, to have a ‘P’ (for paragraph) series using roman numerals as markers
which, inthe main text are superscript with a closing parenthesisand at the foot are on the
baseline followed by an endash, and the text is set in italics at the normal footnote size:
\newfootnoteseries{P}
\paragraphfootstyle{P}
\renewcommand{\thefootnoteP}{\roman{footnoteP}}
\footmarkstyleP{#1--}
\renewcommand{\@makefnmarkP}{%
\hbox{\textsuperscript{\@thefnmarkP)}}}
\renewcommand{\foottextfontP}{\itshape\footnotesize}
This can then be used like:
.... this sentence\footnoteP{A ‘p’ footnote\label{fnp}}
includes footnote~\footrefP{fnp}.
The
\newfootnoteseries
macro does not create series versions of the footnote-
related length commands, such as
\footmarkwidth
and
\footmarksep
,nor does it cre-
ate versions of
\footnoterule
.
At the foot of the page footnotes are grouped according to their series; all ordinary
footnotes are typeset, then all the first series footnotes (if any), then the second series, and
so on. The ordering corresponds to the order of
\newfootnoteseries
commands.
If you can’t specify a particular footnote style using the class facilities the footmisc
package [Fai00] provides a range of styles. A variety of styles also comes with theled-
macpackage[Wil03b]whichadditionallyprovidesseveralclassesoffootnotesthatcanbe
mixed on a page.
12.1.2 Styling
The parameters controlling the vertical spacing of footnotes are illustrated in Figure 12.1.
There is a discussion in §4.2 starting on page 65 about how to style the
\thanks
com-
mand; footnotes can be similarly styled.
The
\footnote
macro (and its relations) essentially does three things:
 Typesets a marker at the point where
\footnote
is called;
 Typesets a marker at the bottom of the page on which
\footnote
is called;
234
application Library tool:C# PDF Text Extract Library: extract text content from PDF file in
using RasterEdge.XDoc.PDF; Please have a quick test by using the following C# example code for text extraction from PDF page. // Open a document.
www.rasteredge.com
application Library tool:VB.NET PDF Annotate Library: Draw, edit PDF annotation, markups in
annotate .pdf file with both text & graphics Decode source PDF document file into an in-memory As String = Program.RootPath + "\\" Annot_8.pdf" ' open a PDF
www.rasteredge.com
12.1. Footnotes
2
1
MAIN TEXT
?
\footnotesep
?
\footnotesep
?
\skip\footins
\footnoterule
Figure 12.1: Footnote layout parameters
 Following the marker at the bottom of the page, typesetsthe text of the footnote.
\@makefnmark
\@thefnmark
The
\footnote
macro calls the kernel command
\@makefnmark
to typeset the foot-
note marker at the point where
\footnote
is called (the value of the marker is kept in
the macro
\@thefnmark
which is defined by the
\footnote
or
\footnotemark
macros).
The default definition typesetsthe mark as a superscript and is effectively
\newcommand*{\@makefnmark}[1]{\hbox{\textsuperscript{#1}}}
You can change this if, for example, you wanted the marks to be in parentheses at the
baseline.
\renewcommand*{\@makefnmark}[1]{{\footnotesize (#1)}}
or, somewhat better to take account of the size of the surrounding text
\renewcommand*{\@makefnmark}[1]{\slashfracstyle{(#1)}}
\footfootmark
\footmarkstyle{
arg
}
The classmacro for typesetting the marker at the foot of the page is
\footfootmark
.The
appearance of the mark is controlled by
\footmarkstyle
.The default specification is
\footmarkstyle{\textsuperscript{#1}}
235
application Library tool:C# PDF File Merge Library: Merge, append PDF files in C#.net, ASP.
Free online C#.NET source code for combining multiple PDF pages PDF document splitting, PDF page reordering and PDF page image and text extraction.
www.rasteredge.com
application Library tool:VB.NET PDF Text Extract Library: extract text content from PDF
'Please have a quick test by using the following example code for text extraction from PDF file in VB.NET program. ' Open a document.
www.rasteredge.com
12. P
AGE NOTES
where the
#1
indicates the position of
\@thefnmark
in the style. The default results in the
mark being set as a superscript. For example, to have the marker set on the baseline and
followed by a right parenthesis, do
\footmarkstyle{#1) }
\footmarkwidth \footmarksep \footparindent
The mark is typeset in a box of width
\footmarkwidth
If this is negative, the mark is
outdented into the margin, if zero the mark is flush left, and when positive the mark is
indented. The mark is followed by the text of the footnote. Second and later lines of
the text are offset by the length
\footmarksep
from the end of the box. The first line of
aparagraph within a footnote is indented by
\footparindent
. The default values for
these lengths are:
\setlength{\footmarkwidth}{1.8em}
\setlength{\footmarksep}{-\footmarkwidth}
\setlength{\footparindent}{1em}
\foottextfont
The text in the footnote is typeset using the
\foottextfont
font. The default is
\footnotesize
.
Altogether, the class specifies
\footmarkstyle{\textsuperscript{#1}}
\setlength{\footmarkwidth}{1.8em}
\setlength{\footmarksep}{-1.8em}
\setlength{\footparindent}{1em}
\newcommand{\foottextfont}{\footnotesize}
to replicate the standard footnote layout.
You might like to try the combinations of
\footmarkwidth
and
\footmarksep
listed
in Table 12.1 to see which you might prefer. Not listed in the Table, to get the marker
flushleft and then the text set as a block paragraph you can try:
\setlength{\footmarkwidth}{1.8em}
\setlength{\footmarksep}{0em}
\footmarkstyle{#1\hfill}
As an example of a rather different scheme, in at least one discipline the footnoted text
in the main body has a marker at each end. It ispossible to define a macro to do this:
\newcommand{\wrapfootnote}[1]{\stepcounter\@mpfn%
% marks in the text
\protected@xdef\@thefnmark{\thempfn}%
\@footnotemark #1\@footnotemark%
% marks at the bottom
\protected@xdef\@thefnmark{\thempfn--\thempfn}%
\@footnotetext}
The macro is based on a posting to
CTT
by Donald Arseneau in November 2003, and is
used like this:
236
application Library tool:C# PDF Page Extract Library: copy, paste, cut PDF pages in C#.net
Online C# source code for extracting, copying and pasting PDF The portable document format, known as PDF document, is of file that allows users to open & read
www.rasteredge.com
application Library tool:VB.NET PDF Convert to HTML SDK: Convert PDF to html files in vb.
is designed to help .NET developers convert PDF to HTML are able to perform high fidelity PDF to HTML files preserve all the contents of source PDF file, like
www.rasteredge.com
12.1. Footnotes
Table 12.1: Some footnote text styles
\footmarkwidth \footmarksep
Comment
1.8em
-1.8em
Flushleft, regular indented paragraph (the
default)
1.8em
0em
Indented, block paragraph hung on the
mark
0em
0em
Flushleft, block paragraph
-1.8em
1.8em
Block paragraph, flushleft, mark in the
margin
-1sp
0em
Block paragraph, flushleft, mark in the
margin but flush against the text
Some
\wrapfootnote{disciplines}{For example, Celtic studies.}
require double marks in the text.
Some
5
disciplines
5
require double marks in the text.
\fnsymbol{
counter
}
\@fnsymbol{
num
}
Any footnotesafter this point will be set according to:
\setlength{\footmarkwidth}{-1.0em}
\setlength{\footmarksep}{-\footmarkwidth}
\footmarkstyle{#1}
The
\fnsymbol
macro typesets the representation of the counter counter like a foot-
note symbol. Internally it uses the kernel
\@fnsymbol
macro which converts a positive
integer num to a symbol. If you are not fond of the standard ordering of the footnote
symbols, this is the macro to change. Its original definition is:
\def\@fnsymbol#1{\ensuremath{%
\ifcase#1\or *\or \dagger\or \ddagger\or
\mathsection\or \mathparagraph\or \|\or **\or
\dagger\dagger \or \ddagger\ddagger \else\@ctrerr\fi}}
This, as shown by
\@fnsymbol{1},...\@fnsymbol{9}
produces the series:
∗, †, ‡, §, ¶, , ∗∗, ††, and ‡‡.
Robert Bringhurst quotes the following as the traditional ordering (at least up to ¶):
∗, †, ‡, §, , ¶, ∗∗, ††, and ‡‡.
You can obtain this sequence by redefining
\@fnsymbol
as:
5–5
Forexample, Celticstudies.
237
application Library tool:C# Create PDF from OpenOffice to convert odt, odp files to PDF in
Convert OpenOffice Text Document to PDF with An advanced .NET control to change ODT, ODS, ODP forms to fillable PDF formats in Visual C# .NET.
www.rasteredge.com
application Library tool:VB.NET PDF Convert to Word SDK: Convert PDF to Word library in vb.
addition, texts, pictures and font formatting of source PDF file are accurately retained in converted Word document file. Why do we need to convert PDF to Word
www.rasteredge.com
12. P
AGE NOTES
\renewcommand*{\@fnsymbol}[1]{\ensuremath{%
\ifcase#1\or *\or \dagger\or \ddagger\or
\mathsection\or \|\or \mathparagraph\or **\or \dagger\dagger
\or \ddagger\ddagger \else\@ctrerr\fi}}
not forgetting judicious use of
\makeatletter
and
\makeatother
if you do this in the
preamble. Other authorities or publishers may prefer other sequences and symbols.
To get the footnote reference marks set with symbols use:
\renewcommand*{\thefootnote}{\fnsymbol{footnote}}
or to use roman numerals instead of the regular arabic numbers:
\renewcommand*{\thefootnote}{\roman{footnote}}
\footnoterule
The rule separating footnotes from the main text is specified by
\footnoterule
:
\newcommand*{\footnoterule}{%
\kern-3pt%
\hrule width 0.4\columnwidth
\kern 2.6pt}
If you don’t want a rule (but you might later), then the easiest method is:
\let\oldfootnoterule\footnoterule
\renewcommand*{\footnoterule}{}
and if you later want rules you can write:
\let\footnoterule\oldfootnoterule
12.2 M
ARGINAL NOTES
Some marginalia can also be considered to be kinds of floats. The class provides the stan-
dard marginnotesvia
\marginpar
.Remember that the width of the marginnote, the sep-
aration fromthe text, and the separation fromone
\marginpar
to another is controlled by
\setmarginnotes
,see Section 2.5 on page 20.
\marginpar[
left-text
]{
text
}
\marginparmargin{
placement
}
\reversemarginpar
\normalmarginpar
Just as a reminder, the
\marginpar
macro puts text into the margin alongside the type-
block — the particular margin depends on the document style and the particular page.
The interface for specifying which margin
\marginpar
(and friends) write to, have
long been quite cluttered, so we have in 2010 adopted a more textual and natural inter-
face. For
\marginpar
the macro is named
\marginparmargin{
placement
}
with pos-
sible placements: left, right, outer, and inner. The interpretation of which is explained in
Figure 12.2. The default corresponds to
\marginparmargin{outer}
.
The original convoluted methods of specifying the margin for
\marginpar
is deprecated,
although still supported; if you need to know what they are then you can read all about
them in
memoir.dtx
.
238
application Library tool:VB.NET PDF File Split Library: Split, seperate PDF into multiple
Separate source PDF document file by defined page range in VB.NET class application. Divide PDF file into multiple files by outputting PDF file size.
www.rasteredge.com
12.3. Side notes
\Xmargin{
placement
}
for possible placements: left, right, outer, and inner
Two column document Ifthenoteisplacedinthefirstcolumn,totheleft,otherwiseto
the right, irrespectivethe document being one- or two-side and of theusers choices
One sided document Ifuserspecifiedleft,notesareplacedtotheleft,otherwisetothe
right.
Two sided document dependsonwhetherarectoorversopage:
Recto (odd) page noteisplacedontherightiftheuserspecifiedrightorouter,
otherwise thenoteis placed on the left.
Verso (even) page noteisplacedontheleftiftheuserspecifiedleftorouter,oth-
erwisethe note is placed on the right.
Figure 12.2: Interpretation of the arguments to the
\Xmargin
commands for specifying
the side in which to place side note like material.
X
here equals
marginpar
,
sidepar
,
sidebar
,or
sidefoot
.
Sometimes LaTeX gets confused near a page break and a note just after a break may
get put into the wrong margin (the wrong margin for the current page but the right one if
the note fell on the previous page). If this occurs then inserting the
\strictpagecheck
declaration before any
\marginpar
command is used will prevent this, at the cost of at
least one additional LaTeX run.
12.3 S
IDE NOTES
The vertical position of margin notes specified via
\marginpar
is flexible so that adjacent
notes are prevented from overlapping.
\sidepar[
left
]{
right
}
\sideparmargin{
placement
}
\sideparfont
\sideparform
\sideparvshift
The
\sidepar
macro is similar to
\marginpar
except that it produces side notes that
do not float — they may overlap.
The same spacing is used for both
\marginpar
and
\sidepar
, namely the lengths
\marginparsep
and
\marginparwidth
. See
\setmarginnotes
, in Section 2.5 on
page 20.
The length
\sideparvshift
can be used to make vertical adjustments to the position
of
\sidepar
notes. By default this is set to a value of 0pt which should align the top of the
note with the text line.
The command
\sideparfont
is used to specify the font used for the
\sidepar
,de-
fault is
\normalfont\normalsize
.
While
\sideparfont
holds the font settings for the sidepar, the local adjustment is
kept in
\sideparform
,the default is
\newcommand*{\sideparform}{%
\ifmemtortm\raggedright\else\raggedleft\fi}
239
12. P
AGE NOTES
Which is a special construction the makes the text go flush against the text block on side
specified via
\sideparmargin
.Since the margin par area isusually quite narrow it might
be an idea to use a ragged setup which enables hyphenation. This can be achieved by
\usepackage{ragged2e}
\newcommand*{\sideparform}{%
\ifmemtortm\RaggedRight\else\RaggedLeft\fi}
The macro
\sideparmargin{
placement
}
can be used to specify which margin the
side note should go to. placement should be one of left, right, outer, or inner. Interpre-
tation of which is explained in Figure 12.2. For some now forgotten reason the default
correspondsto
\sideparmargin{left}
.
6
By default the right argument is put in the left margin. When thetwoside option is
used the right argument isput into the right margin onthe verso (even numbered) pages;
however, for these pages the optional left argument is used instead if it is present. For
two column text the relevent argument is put into the ‘outer’ margin with respect to the
column.
The original convoluted methods of specifying the margin for
\sidepar
is deprecated,
although still supported; if you need to know what they are then you can read all about
them in
memoir.dtx
.
\parnopar
When LaTeX is deciding where to place the side notes it checks whether it is on an odd
or even page and sometimes TeX doesn’t realise that it has just moved onto the next page.
Effectively TeX typesets paragraph by paragraph (including any side notes) and at the
end of each paragraph sees if there should have been a page break in the middle of the
paragraph. If there was it outputs the first part of the paragraph, inserts the page break,
and retains the second part of the paragraph, without retypesetting it, for eventual output
at the top of the new page. This means that side notes for any given paragraph are in the
same margin, either left or right. A side note at the end of aparagraph may then end up in
the wrong margin. The macro
\parnopar
forces a new paragraph but without appearing
to (the first line in the following paragraph follows immediately after the last element in
the prior paragraph with no line break). You can use
\parnopar
to make TeX to do its
page break calculation when youwant it to, by splitting what appearsto be one paragraph
into two paragraphs.
Bastiaan Veelo has kindly provided example code for another form of a side note, the
code is shown in Sniplet C.3 on page 402.
Bastiaan also noted that it provided an example of using the
\foremargin
length. If
you want to try it out, either put the code in your preamble, or put it into a package (i.e.,
.sty
file) without the
\makeat...
commands.
12.4 S
IDEBARS
Sidebars are typeset in the margin and usually contain material that is ancilliary to the
main text. They may be long and extend for more than one page.
7
6
As not to change existing documents,we havedecided toleave it like that.
7
Donald Arseneau’s help has been invaluable in getting the sidebarcode towork.
240
12.4. Sidebars
\sidebar{
text
}
The
\sidebar
command is like
\marginpar
in that it sets the text in the margin. How-
ever, unlike
\marginpar
the text will start near the top of the page, and may continue
onto later pages if it is too long to go on a single page. If multiple
\sidebar
commands
are used on a page, the several texts are set one after the other.
\sidebarmargin{
margin
}
The macro
\sidebarmargin{
placement
}
can be used to specify which margin
the side note should go to. placement should be one of left, right, outer, or in-
ner. Interpretation of which is explained in Figure 12.2. The default corresponds to
\sidebarmargin{outer}
.
\sidebarfont \sidebarform
The sidebar text is typeset using the
\sidebarfont
,whose initial definition is
\newcommand{\sidebarfont}{\normalsize\normalfont}
Sidebars are normally narrow so the text is set raggedright to reduce hyphenation prob-
lems and stop items in environments like
itemize
from overflowing. More accurately,
the text is set according to
\sidebarform
which is defined as:
\newcommand*{\sidebarform}{%
\ifmemtortm\raggedright\else\raggedleft\fi}
Which is a special construction the makes the text go flush against the text block on side
specified via
\sideparmargin
.Since the margin par area is usually quite narrow it might
be an idea to use a ragged setup which enables hyphenation. This can be achieved by
\usepackage{ragged2e}
\newcommand*{\sidebarform}{%
\ifmemtortm\RaggedRight\else\RaggedLeft\fi}
You may run into problems if the
\sidebar
command comes near a pagebreak, or if
the sidebar text gets typeset alongside main text that has non-uniform line spacing (like
around a
\section
). Further, the contents of sidebars may not be typeset if they are too
near to the end of the document.
\sidebarwidth \sidebarhsep \sidebarvsep
The text of a
\sidebar
is typeset in a column of width
\sidebarwidth
and there is
ahorizontal gap of
\sidebarhsep
between the main text and the sidebar. The length
\sidebarvsep
is the vertical gap between sidebars that fall on the same page; it also has
arole in controlling the start of sidebars with respect to the top of the page.
\sidebartopsep
\setsidebarheight{
height
}
The length
\sidebartopsep
controls the vertical position of the top of a sidebar.
The default is 0pt which aligns it with the top of the typeblock. The command
\setsidebarheight
sets the height of sidebars to height, without making any al-
lowance for
\sidebartopsep
.The length argument should be equivalent to an integral
number of lines. For example:
241
12. P
AGE NOTES
\setsidebarheight{15\onelineskip}
The default is the
\textheight
.
Perhaps you would like sidebars to start two lines below the top of the typeblock but
still end at the bottom of the typeblock? If so, and you are using thecalc package [TJ05],
then the following will do the job:
\setlength{\sidebartopskip}{2\onelineskip}
\setsidebarheight{\textheight-\sidebartopskip}
The alignment of the text in a sidebar with the main text may not be particularly
good and you may wish to do some experimentation (possibly through a combination
of
\sidebarvsep
and
\setsidebarheight
)to improve matters.
Although you can set the parameters for your sidebars individually it is more efficient
to use the
\setsidebars
command; it must be used if you change the font and/or the
height.
\setsidebars{
hsep
}{
width
}{
vsep
}{
topsep
}{
font
}{
height
}
The
\setsidebars
command can be used to set the sidebar parameters.
\sidebarhsep
is set to hsep,
\sidebarwidth
is set to width,
\sidebarvsep
is set
to vsep,
\sidebartopsep
is set to topsep,
\sidebarfont
is set to font, and finally
\setsidebarheight
is used to set the height to height. The default is:
\setsidebars{\marginparsep}{\marginparwidth}{\onelineskip}%
{0pt}{\normalsize\normalfont}{\textheight}
Any, or all, of the arguments canbe a
*
,in which case the parameter corresponding to that
argument is unchanged. Repeating the above example of changing the topskip and the
height, assuming that the other defaults are satisfactory except that the width should be
3cm and an italic font should be used:
\setsidebars{*}{3cm}{*}{2\onelineskip}{\itshape}%
{\textheight-\sidebartopsep}
Changing the marginpar parameters, for example with
\setmarginnotes
,will not
affect the sidebar parameters.
Note that
\checkandfixthelayout
neither checksnor fixesany of the sidebarparam-
eters. This means, for instance, that if you change the
\textheight
from its default value
and you want sidebars to have the same height then after changing the
\textheight
you have to call
\checkandfixthelayout
and then call
\setsidebars
with the (new)
\textheight
.For instance:
...
\settypeblocksize{40\baselineskip}{5in}{*}
...
\checkandfixthelayout
\setsidebars{...}{...}{...}{...}{...}{\textheight}
Unfortunately if a sidebar is on a double column page that either includes a double
column float or starts a new chapter then the top of the sidebar comes below the float or
the chapter title. I have been unable to eliminate this ‘feature’.
12.5 S
IDE FOOTNOTES
Besides three already mentioned macros for writing in the margin (
\marginpar
,
\sidepar
,and
\sidebar
)memoir also provide a functionality to add side footnotes. Ac-
242
Documents you may be interested
Documents you may be interested