11.6. Tabular environments
Figure 11.3: Example
tabularx
and
tabular*
with widths of 300pt
\begin{tabularx}{300pt}{|c|X|c|X|}
Multicolumn entry!
THREE
FOUR
one
The width of this
column depends on
the width of the table.
three
Column four will act
in the same way as
column two, with the
same width.
\begin{tabular*}{300pt}%
{|@{\extracolsep{\fill}}c|p{5.5pc}|c|p{5.5pc}|}
Multicolumn entry!
THREE
FOUR
one
The width of
this column’s
text is fixed
(5.5pc).
three
Column four
will act in the
same way as
column two,
with the same
width.
may not be used.
3
tabular*
uses a primitive capability of TeX to modify the inter column space of
an alignment.
tabularx
has to set the table several times as it searches for the best
columnwidths, and istherefore much slower. Also the fact that the body isexpanded
several times may break certain TeX constructs.
\tracingtabularx
Following the
\tracingtabularx
declaration all later
tabularx
environmentswill print
information about column widths as they repeatedly re-set the tables to find the correct
widths.
By default the
X
specification is turned into
p{
some value
}
. Such narrow columns of-
ten require a special format, which can be achieved by using the
>
syntax. For example,
>{\small}X
. Another format which is useful in narrow columns is raggedright, how-
ever LaTeX’s
\raggedright
macro redefines
\\
in a way which conflicts with its use in
tabular
or
array
environments.
\arraybackslash
For this reason the command
\arraybackslash
is provided; this may be used after a
\raggedright
,
\raggedleft
or
\centering
declaration. Thusa
tabularx
format may
include
>{\raggedright\arraybackslash}X
These format specifications may of course be saved using the command,
\newcolumntype
.After specifying, say,
3
Actually,\verb and\verb* may beused,but theymay treat spaces incorrectly, and the argument cannot
contain anunmatched{ or},or a% character.
223
Convert pdf file to text file - Library control component: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 file to text file - Library control component: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
11. R
OWS AND COLUMNS
\newcolumntype{Y}{>{\small\raggedright\arraybackslash}X}
then
Y
could be used in the
tabularx
format argument.
\tabularxcolumn
The
X
columns are set using the
p
column, which corresponds to
\parbox[t]
. You may
want them set using, say, the
m
column, which corresponds to
\parbox[c]
. It is not
possible to change the column type using the
>
syntax, so another system is provided.
\tabularxcolumn
should be defined to be a macro with one argument, which expands
to the
tabular
format specification that you want to correspond to
X
.The argument will
be replaced by the calculated width of a column.
The default definition is
\newcommand{\tabularxcolumn}[1]{p{#1}}
This may be changed, for instance
\renewcommand{\tabularxcolumn}[1]{>{\small}m{#1}}
so that
X
columns will be typeset as
m
columns using the
\small
font.
Normally all
X
columns inasingle table are setto the same width, however it ispossible
to make
tabularx
set them to different widths. A format argument of
{>{\hsize=.5\hsize}X>{\hsize=1.5\hsize}X}
specifies two columns, where the second will be three times as wide as the first. If you
think you need to do things like this try and redesign your table. However, if you must
you should follow these two rules.
 Make sure that the sum of the widths of all the
X
columns is unchanged. (In the
above example, the new widths still add up to twice the default width, the same as
two standard
X
columns.)
 Do not use
\multicolumn
entrieswhich cross any
X
column.
tabularx
will not set
X
columns to a negative width. If the widths of the ‘normal’
columns of the table already total more than the requested total width you will get the
warning ‘
X columns too narrow (table too wide)
’. The
X
columns will be set to a
width of 1em and so the table itself will be wider than the requested total width given in
the argument to the environment.
The standard
\verb
macro does not work inside a
tabularx
,just as it does not work
in the argument to any macro.
\TX@verb
The ‘poor man’s
\verb
’(and
\verb*
)defined here isbased on page 382 of the TeXbook. As
explained there, doing verbatim this way means that spaces are not treated correctly, and
so
\verb*
may well be useless. The mechanism is quite general, and any macro which
wants to allow a form of
\verb
to be used within its argument may
\let\verb=\TX@verb
It must ensure that the real definition is restored afterwards.
This version of
\verb
and
\verb*
are subject to the following restictions:
1. Spaces in the argument are not read verbatim, but may be skipped according to TeX’s
usual rules.
2. Spaces will be added to the output after control words, even if they were not present
in the input.
224
Library control component:VB.NET PDF File Compress Library: Compress reduce PDF size in vb.
Convert smooth lines to curves. Detect and merge image fragments. Flatten visible layers. VB.NET Demo Code to Optimize An Exist PDF File in Visual C#.NET Project
www.rasteredge.com
Library control component:C# PDF File Split Library: Split, seperate PDF into multiple files
Application. Best and professional adobe PDF file splitting SDK for Visual Studio .NET. outputOps); Divide PDF File into Two Using C#.
www.rasteredge.com
11.7. Spaces and rules
3. Unless the argument is a single space, any trailing space, whether in the original
argument, or added as in (2), will be omitted.
4. The argument must not end with
\
,so
\verb|\|
is not allowed, however, because
of (3),
\verb|\ |
produces
\
.
5. The argument must be balanced with respect to
{
and
}
.So
\verb|{|
isnot allowed.
6. A comment character like
%
will not appear verbatim. It will act as usual, comment-
ing out the rest of the input line!
7. The combinations
?‘
and
!‘
will appear as
¿
and
¡
if the Computer Typewriter font
is being used.
11.7 S
PACES AND RULES
11.7.1 Spacing
Sometimestabular rows appear vertically challenged.
\arraystretch
The macro
\arraystretch
controls the spacing between rows. The normal space is mul-
tiplied by the value of
\arraystretch
,whose default definition is
\newcommand{\arraystretch}{1.0}
If this is changed to 1.25, for example, the row spacing is increased by 25%.
\extrarowheight
If the length
\extrarowheight
is positive, itsvalue isadded tothe normal height of every
row of the array or table, while the depth will remainthe same. This is important for tables
with horizontal lines because those lines normally touch the capital letters. For example
\begin{table}
\centering
\caption{The array and tabular format options.}%
\label{tab:tabpream}
\setlength{\extrarowheight}{1pt}
\begin{tabular}{cp{9cm}} \toprule
...
was used for Table 11.1.
\arraycolsep \tabcolsep
The length
\arraycolsep
is half the width of the horizontal space between columns in
an
array
environment and similarly the length
\tabcolsep
is half the space between
columns in an
tabular
or
tabular*
environment.
\arrayrulewidth \doublerulesep
The length
\arrayrulewidth
is the width of the line created by a
|
in the format, or
by an
\hline
,
\cline
or
\vline
command. The length
\doublerulesep
is the space
between lines created by two successive
|
options in the format or by successive
\hline
commands.
225
Library control component:VB.NET PDF File Merge Library: Merge, append PDF files in vb.net
Professional VB.NET PDF file merging SDK support Visual Studio .NET. Merge PDF without size limitation. Append one PDF file to the end of another one in VB.NET.
www.rasteredge.com
Library control component:VB.NET PDF File Split Library: Split, seperate PDF into multiple
Professional VB.NET PDF file splitting SDK for Visual Studio and .NET framework 2.0. Split PDF file into two or multiple files in ASP.NET webpage online.
www.rasteredge.com
11. R
OWS AND COLUMNS
11.7.2 Special variations on horizontal lines
The family of
tabular
environments allows vertical positioning with respect to the base-
line of the text in which the environment appears. By default the environment appears
centered, but this can be changed to align with the first or last line in the environment by
supplying a
t
or
b
value to the optional position argument. However, this does not work
when the first or last element in the environment isa
\hline
command — in that case the
environment is aligned at the horizontal rule.
Here is an example:
Tables with no
hline
commands
versus
tables
with some
hline
commands
used.
Tables
\begin{tabular}[t]{l}
with no\\ hline\\ commands
\end{tabular} versus tables
\begin{tabular}[t]{|l|}
\hline
with some\\ hline\\ commands\\
\hline
\end{tabular} used.
\firsthline \lasthline
\extratabsurround
Using
\firsthline
and
\lasthline
will cure the problem, and the tables will align
properly as long as their first or last line does not contain extremely large objects.
Tables with no
line
commands
versus
tables
with some
line
commands
used.
Tables
\begin{tabular}[t]{l}
with no\\ line\\ commands
\end{tabular} versus tables
\begin{tabular}[t]{|l|}
\firsthline
with some\\ line\\ commands\\
\lasthline
\end{tabular} used.
The implementation of these two commands contains an extra dimension, which is
called
\extratabsurround
,to add some additional space at the top and the bottom of
such an environment. This is useful if such tables are nested.
11.7.3 Handling of rules
There are two possible approaches to the handling of horizontalandvertical rulesin tables:
1. rules can be placed into the available space without enlarging the table, or
2. rules can be placed between columns or rows thereby enlarging the table.
The classimplements the secondpossibility while the default implementation inthe LaTeX
kernel implements the first concept.
With standard LaTeX adding rules to a table will not affect the width or height of the
table (unless double rules are used), e.g., changing a format from
lll
to
l|l|l
does not
226
Library control component:C# PDF File Merge Library: Merge, append PDF files in C#.net, ASP.
document file, and choose to create a new PDF file in .NET deleting, PDF document splitting, PDF page reordering and PDF page image and text extraction.
www.rasteredge.com
Library control component:C# PDF File Compress Library: Compress reduce PDF size in C#.net
All object data. File attachment. Hidden layer content. Convert smooth lines to curves. Flatten visible layers. C#.NET DLLs: Compress PDF Document.
www.rasteredge.com
11.8. Free tabulars
affect the document other than adding rules to the table. In contrast, with the class a table
that just fits the
\textwidth
might now produce an overfullbox. (But you shouldn’t have
vertical rules in the first place.)
11.8 F
REE TABULARS
All the tabular environments described so far put the table into a box, which LaTeX treats
like a large complex character, and characters are not broken across pages. If you have a
long table that runs off the bottom of the page you can turn to, say, thelongtable [Car98b]
orxtab [Wil00e] packages which will automatically break tables across page boundaries.
These have various bells and whistles, such as automatically putting a caption at the top
of each page, repeating the column heads, and so forth.
11.8.1 Continuous tabulars
\begin{ctabular}[
pos
]{
format
}
rows
\end{ctabular}
The
ctabular
environment is similar to
tabular
,but with a couple of differences, the
main one being that the table will merrily continue across page breaks. The format argu-
ment is the same as for the previous
array
and
tabular
environments, but the optional
pos argument controls the horizontal position of the table, not the vertical. The possible
argument value is one of the following characters:
leftjustified,
centered,or
rightjustified;
the default isc.
\begin{ctabular}{lcr} \toprule
LEFT & CENTER & RIGHT \\ \midrule
l & c & r \\
l & c & r \\
l & c & r \\
l & c & r \\ \bottomrule
\end{ctabular}
LEFT
CENTER
RIGHT
l
c
r
l
c
r
l
c
r
l
c
r
An example use isfor setting two texts in parallel, for instance a poem and it’s transla-
tion, without having to be concerned about page breaks.
Je suis Françoys, dont il me pois,
Iam François, which is unfortunate,
Né de Paris emprès Pointoise,
born in Paris near Pointoise,
Et de la corde d’une toise
and with a six-foot stretch of rope,
Sçaura mon col que mon cul poise.
my neck will know my arse’s weight.
227
Library control component:C# PDF File & Page Process Library SDK for C#.net, ASP.NET, MVC
Convert PDF to Tiff. Convert PDF to HTML. Convert PDF to SVG. Convert PDF to Text. Convert PDF to Jpeg. Convert PDF to Png, Gif, Bitmap Images. File and Page
www.rasteredge.com
Library control component:C# PDF Text Extract Library: extract text content from PDF file in
C#.NET PDF text extracting library package, you can easily extract all or partial text content from target PDF document file, edit selected text content, and
www.rasteredge.com
11. R
OWS AND COLUMNS
Table 11.7: Example automatic row ordered table
one
two
three
four
five
six
seven
eight
nine
ten
eleven
twelve
thirteen
fourteen
François Villon, 1431–1463?
The
ctabular
environment will probably not be used within a
table
environment
(which defeats the possibility of the table crossing page boundaries). To caption a
ctabular
you can define a fixed caption. For example:
\newfixedcaption{\freetabcaption}{table}
And then
\freetabcaption
canbe used like the normal
\caption
within a
table
float.
11.8.2 Automatic tabulars
Atabular format may be used just to list things, for example the names of the members of
aparticular organisation, or the names of LaTeX environments.
Especially when drafting adocument, or whenthe number of entriesis likely to change,
it is convenient to be able to tabulate a list of items without having to explicitly mark the
end of each row.
\autorows[
width
]{
pos
}{
num
}{
style
}{
entries
}
The
\autorows
macro lists the entries in rows; that is, the entries are typeset left to right
and top to bottom. The num argument is the number of columns. The entries argument
is a comma-separated list of the names to be tabulated; there must be no comma after the
last of the names before the closing brace. Table 11.7 was set by
\autorows
using:
\begin{figure}
\freetabcaption{Example automatic row ordered table}
\label{tab:autorows}
\autorows{c}{5}{c}{one, two, three, four, five,
six, seven, eight, nine, ten,
eleven, twelve, thirteen, fourteen }
\end{figure}
The pos argument controls the horizontal position of the tabular and the style argu-
ment specifies the locationof the entries in the columns; each column istreated identically.
The value of a pos or style argument is one of the following characters:
leftjustified,
centered,or
rightjustified.
Each column is normally the same width, which is large enough to accomodate the
widest entry in the list. A positive width (e.g.,
{0.8\textwidth}
), defines the overall
width of the table, and the column width is calculated by dividing width by the number
of columns. Any negative value for the width width lets eachcolumn be wide enough for
the widest entry in that column; the column width is no longer a constant.
The examples in Figure 11.4 illustrate the effect of the width argument (the default
value is 0pt). The principal elements of the code for the Figure are:
228
Library control component:VB.NET PDF Text Extract Library: extract text content from PDF
Extract and get partial and all text content from PDF file. Extract highlighted text out of PDF document. Extract Text Content from PDF File in VB.NET.
www.rasteredge.com
Library control component:Online Convert PDF to Text file. Best free online PDF txt
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 good
www.rasteredge.com
11.8. Free tabulars
width =
-1pt
one
two
three
four
five
six
seven
eight
nine
ten
eleven twelve thirteen fourteen
width =
0pt
(the default)
one
two
three
four
five
six
seven
eight
nine
ten
eleven
twelve
thirteen
fourteen
width =
0.9\textwidth
one
two
three
four
five
six
seven
eight
nine
ten
eleven
twelve
thirteen
fourteen
Figure 11.4: Changing the width of a row ordered table
\begin{figure}
...
\autorows[-1pt]{c}{5}{c}{one, two, three, four, five,
six, seven, eight, nine, ten,
eleven, twelve, thirteen, fourteen }
...
\autorows[0pt]{c}{5}{c}{one, two, three,
... fourteen }
...
\autorows[0.9\textwidth]{c}{5}{c}{one, two, three,
... fourteen }
\caption{Changing the width of a row ordered table}
\label{fig:arw}
\end{figure}
\autocols[
width
]{
pos
}{
num
}{
style
}{
entries
}
The
\autocols
macro lists its entries in columns, proceeding top to bottom and left to
right. The arguments, are the same as for
\autorows
,except that a negative width is
treated as if it were zero. The column width is always constant throughout the table and
is normally sufficient for the widest entry. A positive or zero width has the same effect as
for
\autorows
.
If you need to include a commawithin one of the entriesinthe list for either
\autorows
or
\autocols
you have to use a macro. For instance:
\newcommand*{\comma}{,}
The examples in Figure 11.5, from the following code elements, illustrate these points.
\begin{figure}
...
\autocols{c}{5}{c}{one\comma{} two, three, four, five,
six, seven, eight, nine, ten,
229
11. R
OWS AND COLUMNS
width =
0pt
(the default)
one, two
three
four
five
six
seven
eight
nine
ten
eleven
twelve
thirteen
fourteen
width =
0.9\textwidth
one, two
three
four
five
six
seven
eight
nine
ten
eleven
twelve
thirteen
fourteen
Figure 11.5: Changing the width of a column ordered table
eleven, twelve, thirteen, fourteen }
...
\autocols[0.9\textwidth]{c}{5}{c}{one\comma{} two, three,
... fourteen }
\caption{Changing the width of a column ordered table}
\label{fig:acw}
\end{figure}
230
Twelve
Page notes
The standard classesprovide the
\footnote
command for notes at the bottom of the page.
The class provides several styles of footnotes and you can also have several series of foot-
notes for when the material gets complicated. The normal
\marginpar
command puts
notes into the margin, which may float around a little if there are other
\marginpar
son
the page. The classadditionally suppliescommands for fixed marginalnotesand sidebars.
12.1 F
OOTNOTES
Afootnote can be considered to be aspecial kind of float that is put at the bottomof apage.
\footnote[
num
]{
text
}
In the maintext, the
\footnote
command putsamarker at the point where it is called, and
puts the text, preceded by the same mark, at the bottomof the page. If the optionalnum
isused then its value isused for the mark, otherwise the
footnote
counter is stepped and
provides the mark’s value. The
\footnote
command should be used in paragraph mode
where it puts the note at the bottom of the page, or in a
minipage
where it puts the note at
the end of the
minipage
. Results are likely to be peculiar if it is used anywhere else (like
in a
tabular
).
\footnotemark[
num
]
\footnotetext[
num
]{
text
}
You can use
\footnotemark
to put a marker in the main text; the value is determined
just like that for
\footnote
. Footnote text can be put at the bottom of the page via
\footnotetext
;if the optional num is given it is used as the mark’s value, otherwise
the value of the
footnote
counter is used. It may be helpful, but completely untrue, to
think of
\footnote
being defined like:
\newcommand{\footnote}[1]{\footnotemark\footnotetext{#1}}
In any event, you can use a combination of
\footnotemark
and
\footnotetext
to do
footnoting where LaTeX would normally get upset.
\footref{
label
}
On occasionsit may be desireable to make more thanone reference to the text of a footnote.
This can be done by putting a
\label
in the footnote and then using
\footref
to refer to
the label; this prints the footnote mark. For example:
Chapter lastupdated2013/05/02 (revision 454)
231
12. P
AGE NOTES
...\footnote{...values for the kerning.\label{fn:kerning}} ...
...
... The footnote\footref{fn:kerning} on \pref{fn:kerning} ... \\
In thismanual, the last line above prints:
... The footnote
16
on page 99 ...
\multfootsep
In the standard classes if two or more footnotes are applied sequentially
1,2
then the mark-
ers in the text are just run together. The class, like thefootmisc [Fai00] andledmac pack-
ages, inserts a separator between the marks. In the classthe macro
\multfootsep
is used
as the separator. Its default definition is:
\newcommand*{\multfootsep}{\textsuperscript{\normalfont,}}
\feetabovefloat
\feetbelowfloat
In
FiXmeNote:
this needs
checking
the standard classes, footnotesona page that hasa float at the bottom are typeset before
the float. I think that this looks peculiar. Following the
\feetbelowfloat
declaration
footnotes will be typeset at the bottom of the page below any bottom floats; they will also
be typeset at the bottom of
\raggedbottom
pages as opposed to being put just after the
bottom line of text. The standard positioning is used following the
\feetabovefloat
declaration, which is the default.
12.1.1 A variety of footnotes
\verbfootnote[
num
]{
text
}
The macro
\verbfootnote
is like the normal
\footnote
except that its text agument
can contain verbatim material. For example, the next two paragraphs are typeset by this
code:
Below, footnote~\ref{fn1} is a \verb?\footnote? while
footnote~\ref{fn2} is a \verb?\verbfootnote?.
The \verb?\verbfootnote? command should
appear\footnote{There may be some problems if color is
used.\label{fn1}}
to give identical results as the normal \verb?\footnote?,
but it can include some verbatim
text\verbfootnote{The \verb?\footnote? macro, like all
other macros except for \verb?\verbfootnote?,
can not contain verbatim text in its
argument.\label{fn2}}
in the \meta{text} argument.
1
Onefootnote
2
Immediately followed byanother
232
Documents you may be interested
Documents you may be interested