9.3. New ‘List of... ’ and entries
\listofcom
which can then be used like
\listoffigures
to typeset the ‘List of... ’. The
ext argument is the file extension to be used for the new listing. The last argument,
listofname is the title for the ‘List of... ’. Unstarred and starred versions of
\listofcom
are created. The unstarred version,
\listofcom
,will add listofname to the ToC, while
the starred version,
\listofcom*
,makes no entry in the ToC.
As an example:
\newcommand{\listanswername}{List of Answers}
\newlistof{listofanswers}{ans}{\listanswername}
will create a new
\listofanswers
command that can be used to typeset a listing of an-
swers under the title
\listanswername
,where the answer titles are in an
ans
file. It
is up to the author of the document to specify the ‘answer’ code for the answers in the
document. For example:
\newcounter{answer}[chapter]
\renewcommand{\theanswer}{\arabic{answer}}
\newcommand{\answer}[1]{
\refstepcounter{answer}
\par\noindent\textbf{Answer \theanswer. #1}
\addcontentsline{ans}{answer}{\protect\numberline{\theanswer}#1}\par}
which, when used like:
\answer{Hard} The \ldots
will print as:
Answer 1. Hard
The ...
As mentioned above, the
\newlistof
command creates several new commandsin ad-
dition to
\listofcom
,most of which you should now be familiar with. For convenience,
assume that
\newlistof{...}{X}{...}
has been issued so that
X
is the new file exten-
sion and corresponds to the
X
in §9.2.1. Then in addition to
\listofcom
the following
new commandswill be made available.
The four commands,
\Xmark
,
\Xheadstart
,
\printXtitle
,and
\afterXtitle
,are
analagousto the commandsof the same names describedin §9.2.1 (internally the classuses
the
\newlistof
macro to define the ToC, LoF and LoT). In particular the default definition
of
\Xmark
is equivalent to:
\newcommand{\Xmark}{\markboth{listofname}{listofname}}
However, this may well be altered by the particular
\pagestyle
in use.
Xdepth
The counter
Xdepth
is analagous to the standard
tocdepth
counter, in that it specifies
that entries in the new listing should not be typeset if their numbering level is greater than
Xdepth
.The default definition is equivalent to
\setcounter{Xdepth}{1}
\insertchapterspace
\addtodef{
macro
}{
prepend
}{
append
}
163
C# pdf to txt - Library control class: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
C# pdf to txt - Library control class: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
9. C
ONTENTS LISTS
Remember that the
\chapter
command uses
\insertchapterspace
to insert vertical
spacesinto the LoF and LoT. If youwant similar spacesadded to your new listing thenyou
have to modify
\insertchapterspace
.The easiest way to do this is via the
\addtodef
macro, like:
\addtodef{\insertchapterspace}{}%
{\addtocontents{ans}{\protect\addvspace{10pt}}}
The
\addtodef
macro is described later in §18.10.
The other part of creating a new ‘List of... ’, is to specify the formatting of the entries,
i.e., define an appropriate
\l@kind
macro.
\newlistentry[
within
]{
cntr
}{
ext
}{
level-1
}
The command
\newlistentry
createsthe commands necessary for typesetting an en-
try in a ‘List of. ..’. The first required argument, cntr is used to define a new counter
called
cntr
,unless
cntr
is already defined. The optional within argument can be used
so that
cntr
gets reset to one every time the counter called
within
is changed. That
is, the first two arguments when
cntr
is not already defined, are equivalent to calling
\newcounter{
cntr
}[
within
]
. If
cntr
is already defined,
\newcounter
is not called.
cntr
is used for the number that goes along with the title of the entry.
The second required argument, ext, is the file extension for the entry listing. The last
argument, level-1, is a number specifying the numbering level minus one, of the entry in
alisting.
Calling
\newlistentry
creates several new commands used to configure the entry.
So in order to configure the list look of our previous answer example we would add
\newlistentry{answer}{ans}{0}
Assuming that
\newlistentry
is called as
\newlistentry[within]{K}{X}{N}
,
where
K
and
X
are similar to the previous uses of them (e.g.,
K
is the kind of entry
X
is
the file extension), and
N
is an integer number, then the following commands are made
available.
The set of commands
\cftbeforeKskip
,
\cftKfont
,
\cftKpresnum
,
\cftKaftersnum
,
\cftKaftersnumb
,
\cftKleader
,
\cftKdotsep
,
\cftKpagefont
,
and
\cftKafterpnum
, are analagous to the commands of the same names described in
§9.2.2. Their default values are also as described earlier.
The default valuesof
\cftKindent
and
\cftKnumwidth
are set according to the value
of the level-1 argument (i.e.,
N
in this example). For
N=0
the settings correspond to those
for figures and tables, as listed in Table 9.1 for the memoir class. For
N=1
the settings
correspond to subfigures, and so on. For values of
N
less than zero or greater than four, or
for non-default values, use the
\cftsetindents
command to set the values.
\l@K
is an internal command that typesets an entry in the list, and is defined in terms
of the above
\cft*K*
commands. It will not typeset an entry if
Xdepth
is
N
or less, where
X
is the listing’s file extension.
The command
\theK
prints the value of the
K
counter. It is initially defined so that it
prints arabic numerals. If the optional within argument is used,
\theK
is defined as
\renewcommand{\theK}{\thewithin.\arabic{K}}
otherwise as
\renewcommand{\theK}{\arabic{K}}
164
Library control class:C# Create PDF from Text to convert txt files to PDF in C#.net, ASP
searchable PDF document. Free .NET library for creating PDF from TXT in both C#.NET WinForms and ASP.NET application. Support .NET WinForms
www.rasteredge.com
Library control class:VB.NET Create PDF from Text to convert txt files to PDF in vb.net
VB.NET PDF - Create PDF from Text in C#.NET. Batch convert editable & searchable PDF document from TXT formats in VB.NET class.
www.rasteredge.com
9.3. New ‘List of... ’ and entries
As an example of the independent use of
\newlistentry
,the following will set up
for sub-answers.
\newlistentry[answer]{subanswer}{ans}{1}
\renewcommand{\thesubanswer}{\theanswer.\alph{subanswer}}
\newcommand{\subanswer}[1]{
\refstepcounter{subanswer}
\par\textbf{\thesubanswer) #1}
\addcontentsline{ans}{subanswer{\protect\numberline{\thesubanswer}#1}}
\setcounter{ansdepth}{2}
And then:
\answer{Harder} The \ldots
\subanswer{Reformulate the problem} It assists \ldots
will be typeset as:
Answer 2. Harder
The ...
2.a) Reformulate the problem It assists .. .
By default the answer entries will appear in the List of Answers listing (typeset
by the
\listofanswers
command). In order to get the subanswers to appear, the
\setcounter{ansdepth}{2}
command was used above.
To turn off page numbering for the subanswers, do
\cftpagenumbersoff{subanswer}
As another example of
\newlistentry
,suppose that an extra sectioning division be-
low
subparagraph
is required, called
subsubpara
. The
\subsubpara
command itself
can be defined via the LaTeX kernel
\@startsection
command. Also it is necessary
to define a
\subsubparamark
macro, a new
subsubpara
counter, a
\thesubsubpara
macro and a
\l@subsubpara
macro. Using
\newlistentry
takes care of most of these
as shown below; remember the caveats about commands with
@
signs in them (see §E.4).
\newcommand{\subsubpara}{\@startsection{subpara}
{6}
%
level
{\parindent}
% indent from left margin
{3.25ex \@plus1ex \@minus .2ex} %
skip above heading
{-1em}
run-in heading with % 1em between title & text
{\normalfont\normalsize\itshape} % italic number and title
}
\newlistentry[subparagraph]{subsubpara}{toc}{5}
\cftsetindents{subsubpara}{14.0em}{7.0em}
\newcommand*{\subsubparamark}[1]{} % gobble heading mark
Each ‘List of... ’ uses a file to store the list entries, and these files must remain open
for writing throughout the document processing. TeX has only a limited number of files
that it can keep open, and this puts a limit on the number of listings that can be used.
For a document that includes a ToC but no other extra ancilliary files (e.g., no index or
bibliography output files) the maximum number of LoX’s, including a LoF and LoT, is no
more than about eleven. If you try and create too many new listings LaTeX will respond
with the error message:
165
Library control class:Online Convert PDF to Text file. Best free online PDF txt
Different from other C# .NET PDF to text conversion controls, RasterEdge C# PDF to text converter control toolkit can convert PDF document to text file with
www.rasteredge.com
Library control class:C# PDF - Extract Text from Scanned PDF Using OCR SDK
Add the following C# OCR PDF text demo code to C:\input.pdf"); BasePage page = pdf.GetPage(0 bmp); ocrPage.Recognize(); ocrPage.SaveTo(MIMEType.TXT, @"C:\output
www.rasteredge.com
9. C
ONTENTS LISTS
No room for a new write
If you get such a message the only recourse isto redesign your document.
9.3.1 Example: plates
As has been mentioned earlier, some illustrationsmay be tipped in to a book. Often, these
are called plates if they are on glossy paper and the rest of the book is on ordinary paper.
We can define a new kind of Listing for these.
\newcommand{\listplatename}{Plates}
\newlistof{listofplates}{lop}{\listplatename}
\newlistentry{plate}{lop}{0}
\cftpagenumbersoff{plate}
This code defines the
\listofplates
command to start the listing which will be titled
‘Plates’from the
\listplatename
macro. The entry name is
plate
and the file extension
is
lop
. As plate pages typically do not have printed folios, the
\cftpagenumbersoff
command has been used to prohibit page number printing in the listing.
If pages are tipped in, then they are put between a verso and a recto page. Theaf-
terpagepackage[Car95]letsyouspecifysomethingthatshouldhappenafterthecurrent
page is finished. The next piece of code uses the package and its
\afterpage
macro to
define two macros which let you specify something that is to be done after the next verso
(
\afternextverso
)or recto (
\afternextrecto
)page has been completed.
\newcommand{\afternextverso}[1]{%
\afterpage{\ifodd\c@page #1\else\afterpage{#1}\fi}}
\newcommand{\afternextrecto}[1]{%
\afterpage{\ifodd\c@page\afterpage{#1}\else #1\fi}}
The
\pageref{
labelid
}
command typesets the page number corresponding to the
location in the document where
\label{
labelid
}
is specified. The following code
defines two macros
9
that print the page number before (
\priorpageref
) or after
(
\nextpageref
)that given by
\pageref
.
\newcounter{mempref}
\newcommand{\priorpageref}[1]{%
\setcounter{mempref}{\pageref{#1}}\addtocounter{mempref}{-1}\themempref}
\newcommand{\nextpageref}[1]{%
\setcounter{mempref}{\pageref{#1}}\addtocounter{mempref}{1}\themempref}
Withthese preliminariesout of the way, we can use code like the following for handling
aset of physically tipped in plates.
\afternextverso{\label{tip}
\addtocontents{lop}{%
Between pages \priorpageref{tip} and \pageref{tip}
\par\vspace*{\baselineskip}}
\addcontentsline{lop}{plate}{First plate}
\addcontentsline{lop}{plate}{Second plate}
...
\addcontentsline{lop}{plate}{Nth plate}
9
These only workfor arabicpage numbers.
166
Library control class:C# WPF PDF Viewer SDK to convert and export PDF document to other
to Microsoft Office Word (DOCX) document in Visual C# .NET project. Create multiple pages Tiff file from PDF document. Export PDF text content to TXT file with
www.rasteredge.com
Library control class:VB.NET PDF - Convert PDF with VB.NET WPF PDF Viewer
C# read PDF, C# convert PDF to text, C# extract PDF pages, C# comment annotate PDF, C# delete PDF pages, C# convert PDF Export and convert PDF to TXT file.
www.rasteredge.com
9.4. Chapter precis
}
Thisstartsoff by waiting until the next recto page isstarted, which will be the page imme-
diately after the plates, and then inserts the label
tip
. The
\addtocontents
macro puts
its argument into the plate list
lop
file, indicating the page numbers before and after the
set of plates. With the plates being physically added to the document it is not possible to
use
\caption
,instead the
\addcontentsline
macros are used to add the plate titles to
the
lop
file.
With a few modifications the code above can also form the basis for listing plates that
are electronically tipped in but do not have printed folios or
\caption
s.
9.4 C
HAPTER PRECIS
See section 6.5.3 on page 90.
9.5 C
ONTENTS LISTS AND BOOKMARKS
With thehyperref package, the table of contents is often added as a list of bookmarks
thus providing a nice navigation for the user. There is one slight problem though: when
using, say, parts in the document, all chapters in that part ends up as a child of this part
bookmark—including the index and bibliography. A simple fix to this is to add
\makeatletter
\renewcommand*{\toclevel@chapter}{-1}
\makeatother
just before the material you would like to pull out of the part tree.
Abetter solution is thebookmark package, add it to the preamble, and add
\bookmarksetup{startatroot}
before the stuff you want to have moved out of, say, apart.
167
Library control class:C# XDoc.HTML5 Viewer- Supported File Formats
and image viewing tool, which provides C#.NET users Supported file formats including PDF, Microsoft Office Word and raster images, or even TXT, OpenOffice and
www.rasteredge.com
Library control class:VB.NET PDF - WPF PDF Viewer for VB.NET Program
for Azure, C# HTML Document Viewer for DNN, C#.NET Winforms Document Viewer, C#.NET WPF Users can export and convert PDF to Word, Tiff, TXT and various of
www.rasteredge.com
Ten
Floats and captions
Afloat environment is a particular kind of box — one that LaTeX decides where it should
go although you can provide hints as to where it should be placed; all other boxes are put
at the point where they are defined. Within reasonyou can put what you like withina float
but it is unreasonable, for example, to put a float inside another float. The standard classes
provide two kinds of float environments, namely
figure
and
table
.The only difference
between these is the naming and numbering of any caption within the environments —
a
\caption
in a
figure
environment uses
\figurename
while a
\caption
in a
table
environment uses
\tablename
.Figuresand tables are numbered sequentially but the two
numbering schemes are independent of each other.
The class provides means of defining new kinds of floats. It also provides additional
formsof captionsfor use bothwithinand outside float environmentstogetherwithhandles
for changing the style of captions.
10.1 N
EW FLOAT ENVIRONMENTS
It is often forgotten that the LaTeX float environments come in both starred and unstarred
forms. The unstarred form typesets the float contents in one column, which is the most
usual form for a book. The starred form typesets the contents of the float across the top of
both columns in atwocolumn document. In aonecolumn document there is no difference
between the starred and unstarred forms.
\newfloat[
within
]{
fenv
}{
ext
}{
capname
}
The
\newfloat
command creates two new floating environments called fenv and fenv*.
If there is not already a counter defined for fenv a new one will be created to be restarted
by the counter within, if that is specified. A caption within the environment will be
written out to a file with extension ext. The caption, if present, will start with capname.
For example, the
figure
float for the class is defined as:
\newfloat[chapter]{figure}{lof}{\figurename}
\renewcommand{\thefigure}{%
\ifnum\c@chapter>\z@ \thechapter.\fi \@arabic\c@figure}
The last bit of the definition is internal code to make sure that if afigure isin the document
before chapter numbering starts, then the figure number will not be preceeded by a non-
existent chapter number.
The captioning style for floats defined with
\newfloat
is the same as for the figures
and tables.
Chapter lastupdated2013/05/10 (revision 458)
169
10. F
LOATS AND CAPTIONS
The
\newfloat
command generates several new commands, some of which are inter-
nal LaTeX commands. For convenience, assume that the command was called as
\newfloat{F}{X}{capname}
so
F
is the name of the float environment and also the name of the counter for the caption,
and
X
is the file extension. The following float environment and related commands are
then created.
\begin{F}
float material
\end{F}
\begin{F*}
float material
\end{F*}
The new float environment is called
F
, and can be used as either
\begin{F}
or
\begin{F*}
,with the matching
\end{F}
or
\end{F*}
. It is given the standard default
position specification of [tbp].
Xdepth
The
Xdepth
counter is analogous to the standard
tocdepth
counter inthat it specifiesthat
entries in a listing should not be typeset if their numbering level is greater than
Xdepth
.
The default definition is
\setcounter{Xdepth}{1}
To have a subfloat of
X
appear in the listing do
\setcounter{Xdepth}{2}
As an example, suppose you wanted both figures (which come with the class), and
diagrams. You could then do something like the following.
\newcommand{\diagramname}{Diagram}
\newcommand{\listdiagramname}{List of Diagrams}
\newlistof{listofdiagrams}{dgm}{\listdiagramname}
\newfloat{diagram}{dgm}{\diagramname}
\newlistentry{diagram}{dgm}{0}
\begin{document}
...
\listoffigures
\listfofdiagrams
...
\begin{diagram}
\caption{A diagram} \label{diag1}
...
\end{diagram}
As diagram~\ref{diag1} shows ...
\setfloatadjustment{
floatname
}{
code
}
Often it is useful to add some global configuration to a given type of float such that one
will not have to add this to each and every float. For example to have all (floating) figures
and tables automatically centered plus have all (floating) tables typeset in
\small
use
\setfloatadjustment{figure}{\centering}
\setfloatadjustment{table}{\small\centering}
170
10.2. Setting off a float
10.1.1 Margin floats
We also provide two environments to insert an image or table into the margin (using
\marginpar
). The construction is inspired by the Tufte LAT
E
Xcollection.
\begin{marginfigure}[
len
]
float material
\end{marginfigure}
\begin{margintable}[
len
]
float material
\end{margintable}
Because this is inserted differently than the ordinary
figure
or
table
floats, one might
get into the situation where a figure float inserted before a margin float, might float past
the margin float and thus have different caption numbering. For this reason the margin
float contain a float blocking device such that any unplaced floats are forced to be placed
before we start typesetting a margin figure.
The
marginfigure
and
margintable
environments can of course be adjusted using
\setfloatadjustment
,default
\setfloatadjustment{marginfigure}{\centering}
\setfloatadjustment{margintable}{\centering}
It may be useful to adjust the captioning separately, for this we have added
\setmarginfloatcaptionadjustment{
float
}{
code
}
where float is
figure
or
table
. The intent is to enable the user to choose a different
captioning style (or similar) within a margin float, for example typesetting the caption
ragged left/right depending on the page.
This left/right depending on the page is a little hard to do, so for the
\marginpar
(which
the margin float use internally) we provide the following two macros
\setmpjustification{
at left of textblock
}{
at right of textblock
}
\mpjustification
Basically
\mpjustification
execute at left of textblock when it is executed at the left of
the text block and vice versa. For it to work the margin into which the
marginpar
should
do, has to be specified using
marginparmargin
.The default is
\setmpjustification{\raggedleft}{\raggedright}
To have both a margin figure and its caption typeset ragged against the text block, use
\setfloatadjustment{marginfigure}{\mpjustification}
\setmarginfloatcaptionadjustment{figure}{\captionstyle{\mpjustification}}
It may be usefulto allow hyphenationwithin the raggedness, which can be done using the
ragged2epackageand
\setmpjustification{\RaggedLeft}{\RaggedRight}
10.2 S
ETTING OFF A FLOAT
Sometimes it is desireable to set off a float, more probably an illustration than a tabular,
from its surroundings. The
framed
environment, described later in Chapter 15, might
come in handy for this.
The following code produces the example Figures 10.1 and 10.2.
\begin{figure}
\centering
171
10. F
LOATS AND CAPTIONS
FRAMED FIGURE
Figure 10.1: Example framed figure
FRAMED FIGURE AND CAPTION
Figure 10.2: Example framed figure and caption
\begin{framed}\centering
FRAMED FIGURE
\end{framed}
\caption{Example framed figure}\label{fig:framef}
\end{figure}
\begin{figure}
\begin{framed}\centering
FRAMED FIGURE AND CAPTION
\caption{Example framed figure and caption}\label{fig:framefcap}
\end{framed}
\end{figure}
If framing seems overkill then you can use rules instead, as in the example code below
which produces Figures 10.3 and 10.4.
\begin{figure}
\centering
\hrule\vspace{\onelineskip}
RULED FIGURE
\vspace{\onelineskip}\hrule
\vspace{\onelineskip}
\caption{Example ruled figure}\label{fig:rulef}
\end{figure}
\begin{figure}
\centering
\hrule\vspace{\onelineskip}
RULED FIGURE AND CAPTION
\vspace{\onelineskip}\hrule
\vspace{0.2pt}\hrule
\vspace{\onelineskip}
\caption{Example ruled figure and caption}\label{fig:rulefcap}
\hrule
\end{figure}
172
Documents you may be interested
Documents you may be interested