latex converts its argument to a
.tex file appropriate
for inclusion in a LaTeX2e document.
latex is a generic
function that calls one of
latex.default,
latex.function
,
latex.list.
latex.defaultdoes appropriate rounding and decimal alignment and produces a
file containing a LaTeX tabular environment to print the matrix or data.frame
x
as a table.
latex.function prepares an S function for printing by issuing
sed
commands that are similar to those in the
S.to.latex
procedure in the
s.to.latex package (Chambers and Hastie, 1993).
latex.list calls
latex recursively for each element in the argument.
latexTranslate translates particular items in character
strings to LaTeX format, e.g., makes
a^2 = a$^2$ for superscript within
variable labels. Math mode is inserted as needed.
latexTranslate
assumes that input text always has matches,
e.g.
[) [] (] (), and that surrounding by
$$ is OK.
latexSN converts a vector floating point numbers to character
strings using LaTeX exponents. Dollar signs to enter math mode are not
added.
latexVerbatim on an object executes the object's
print method,
capturing the output for a file inside a LaTeX verbatim environment.
dvi uses the system
latex command to compile LaTeX code produced
by
latex, including any needed styles.
dvi
will put a documentclass{report} and end{document} wrapper
around a file produced by
latex. By default, the
geometry LaTeX package is
used to omit all margins and to set the paper size to a default of
5.5in wide by 7in tall. The result of
dvi is a .dvi file. To both
format and screen display a non-default size, use for example
print(dvi(latex(x), width=3, height=4),width=3,height=4)
. Note that
you can use something like
xdvi -geometry 460x650 -margins 2.25in
file without changing LaTeX defaults to emulate this.
dvips will use the system
dvips command to print the .dvi file to
the default system printer, or create a postscript file if
file
is specified.
dvigv uses the system
dvips command to convert the input object
to a .dvi file, and uses the system
dvips command to convert it to
postscript. Then the postscript file is displayed using Ghostview
(assumed to be the system command
gv).
There are
show methods for displaying typeset LaTeX
on the screen using the system
xdvi
command. If you
show a LaTeX file created by
latex
without running it through
dvi using
show.dvi(object)
, the
show
method will run it through
dvi automatically.
These
show
methods are not S Version 4 methods so you have to use full names such
as
show.dvi and
show.latex. Use the
print methods for
more automatic display of typesetting, e.g. typing
latex(x) will
invoke xdvi to view the typeset document.
latex(object, title=first.word(deparse(substitute(object))), ...)
## Default S3 method:
latex(object,
title=first.word(deparse(substitute(object))),
file=paste(title, ".tex", sep=""),
append=FALSE,
label=title,
rowlabel=title, rowlabel.just="l",
cgroup=NULL, n.cgroup=NULL, rgroup=NULL, n.rgroup=NULL,
rowname, cgroup.just=rep("c",length(n.cgroup)),
colheads=dimnames(cx)[[2]],
extracolheads=NULL, extracolsize='scriptsize',
dcolumn=FALSE, numeric.dollar=!dcolumn,
cdot=FALSE, longtable=FALSE, draft.longtable=TRUE,
ctable=FALSE, booktabs=FALSE,
table.env=TRUE, here=FALSE, lines.page=40,
caption=NULL, caption.lot=NULL, caption.loc=c('top','bottom'),
double.slash=FALSE,
vbar=FALSE, collabel.just=rep("c",nc), na.blank=TRUE,
insert.bottom=NULL, first.hline.double=!(booktabs|ctable),
where='!tbp', size=NULL,
center=c('center','centering','none'),
landscape=FALSE,
multicol=TRUE,
...) # x is a matrix or data.frame
## S3 method for class 'function':
latex(
object,
title=first.word(deparse(substitute(object))),
file=paste(title, ".tex", sep=""),
append=FALSE,
assignment=TRUE, type=c('example','verbatim'), ...)
## S3 method for class 'list':
latex(
object,
title=first.word(deparse(substitute(object))),
file=paste(title, ".tex", sep=""),
append=FALSE,
label,
caption,
caption.lot,
caption.loc=c('top','bottom'),
...)
## S3 method for class 'latex':
print(x, ...)
latexTranslate(object, inn=NULL, out=NULL, pb=FALSE, ...)
latexSN(x)
latexVerbatim(x, title=first.word(deparse(substitute(x))),
file=paste(title, ".tex", sep=""),
append=FALSE, size=NULL, hspace=NULL,
width=.Options$width, length=.Options$length, ...)
dvi(object, ...)
## S3 method for class 'latex':
dvi(object, prlog=FALSE, nomargins=TRUE, width=5.5, height=7, ...)
## S3 method for class 'dvi':
print(x, ...)
dvips(object, ...)
## S3 method for class 'latex':
dvips(object, ...)
## S3 method for class 'dvi':
dvips(object, file, ...)
## S3 method for class 'latex':
show(object) # or show.dvi(object) or just object
dvigv(object, ...)
## S3 method for class 'latex':
dvigv(object, ...) # or gvdvi(dvi(object))
## S3 method for class 'dvi':
dvigv(object, ...)
latex, any S object. For
dvi or
dvigv, an object
created by
latex. For
latexTranslate is a vector of
character strings to translate.
printed verbatim for
latexVerbatim. For
latexSN
x is a numeric vector.
.tex extension.
x.tex where
x is the first word in the name of the argument for
x.
Set
file="" to have the generated LaTeX code just printed to
standard output. This is especially useful when running under Sweave in
R using its
results=tex tag, to save having to manage many
small external files. When
file="",
latex keeps track of
LaTeX styles that are called for by creating or modifying an object
latexStyles (in
.GlobalTemp in R or in frame 0 in
S-Plus).
latexStyles is a vector containing the base names of
all the unique LaTeX styles called for so far in the current session.
See the end of the examples section for a way to use this object to good
effect. For
dvips,
file is the name of an output
postscript file.
FALSE. Set to
TRUE to append output to an existing file.
\label and
\ref commands.
label is only used if
caption is given.
x has row dimnames,
rowlabel is a character string containing the
column heading for the row dimnames. The default is the name of the
argument for
x.
x has row dimnames, specifies the justification for printing them.
Possible values are
"l",
"r",
"c". The heading (
rowlabel) itself
is left justified if
rowlabel.just="l", otherwise it is centered.
cgroup=c("Major 1","Major 2"),
n.cgroup=c(3,3) if
"Major 1" is to span columns 1-3 and
"Major 2" is
to span columns 4-6.
rowlabel does not count in the column numbers.
You can omit
n.cgroup if all groups have the same number of columns.
n.rgroup must be present when
rgroup is given. The first
n.rgroup[1]
rows are sectioned off and
rgroup[1] is used as a bold heading for
them. The usual row dimnames (which must be present if
rgroup is) are
indented. The next
n.rgroup[2] rows are treated likewise, etc.
rgroup
is not specified,
n.rgroup is just used to divide off blocks of
rows by horizontal lines. If
rgroup is given but
n.rgroup is omitted,
n.rgroup will default so that each row group contains the same number
of rows.
TRUE to use blanks rather than
NA for missing values.
This usually looks better in
latex.
"ctable" style tables, this is placed in an unmarked footnote.
FALSE to use single horizontal rules for styles other than
"bookmark" or
"ctable"
tabular environment. Default is rownames of matrix or
data.frame.
"c".
dimnames(object)[[2]]. Specify
colheads=NULL to
suppress column headings.
rowname in effect, as
this will be added automatically. You can also form subheadings by
splitting character strings defining the column headings using the
usual backslash
n newline character.
extracolheads or for any second lines in column names;
default is
"scriptsize"
!dcolumn. Set to
TRUE to place dollar
signs around numeric values when
dcolumn=FALSE. This
assures that
latex will use minus signs rather than hyphens to indicate
negative numbers. Set to
FALSE when
dcolumn=TRUE, as
dcolumn.sty automatically uses minus signs.
TRUE to use David Carlisle's LaTeX
longtable style, allowing
long tables to be split over multiple pages with headers repeated on
each page.
The
"style" element is set to
"longtable". The
latex
\usepackage
must reference
[longtable].
The file
longtable.sty will
need to be in a directory in your
$TEXINPUTS path.
TRUE to use Wybo Dekker's
ctable style from
CTAN. Even though for historical reasons it is not the
default, it is generally the preferred method. Thicker but not
doubled
hlines are used to start a table when
ctable is
in effect.
booktabs=TRUE to use the
booktabs style of horizontal
rules for better tables. In this case, double
hlines are not
used to start a table.
table.env=FALSE to suppress enclosing the table in a LaTeX
table environment.
table.env only applies when
longtable=FALSE. You may not specify a
caption if
table.env=FALSE.
TRUE if you are using
table.env=TRUE with
longtable=FALSE and you
have installed David Carlisle's
here.sty LaTeX style. This will cause
the LaTeX
table environment to be set up with option
H to guarantee
that the table will appear exactly where you think it will in the text.
The
"style" element is set to
"here". The
latex
\usepackage
must reference
[here]. The file
here.sty will
need to be in a directory in your
$TEXINPUTS path.
here is
largely obsolete with LaTeX2e.
longtable=TRUE. No more than
lines.page lines in the body
of a table will be placed on a single page. Page breaks will only
occur at
rgroup boundaries.
caption. If you get inexplicable
latex errors,
you may need to supply
caption.lot to make the errors go away.
"bottom" to position a caption below
the table instead of the default of
"top".
TRUE to output
\ as
\\ in LaTeX commands. Useful when you
are reading the output file back into an S vector for later output.
vbar==TRUE, columns in the tabular environment are separated with
vertical bar characters. When
vbar==FALSE, columns are separated with white
space. The default,
vbar==FALSE, produces tables consistent with the style sheet
for the Journal of the American Statistical Association.
TRUE, the default, the name of the function and the assignment
arrow are printed to the file.
"!tbp". To allow tables to appear in the middle of a page of
text you might specify
where="!htbp" to
latex.default.
size="small" to use LaTeX font size
"small".
"center" to enclose the table in a
center
environment. Use
center="centering" to instead use a LaTeX
centering directive, or
center="none" to use no
centering. This option was implemented by Markus Jantti
mailto:markus.jantti@iki.fi of Abo Akademi University.
TRUE to enclose the table in a
landscape
environment. When
ctable is
TRUE, will use the
rotate argument to
ctable.
Example environment for
latex.function,
assuming you have installed
S.sty in a location that the system
latex command automatically accesses. Set
type="verbatim" to
instead use the LaTeX
verbatim environment.
latex
passes arguments to
format.df. For
latexVerbatim these
arguments are passed to the
print function. Ignored for
latexTranslate.
pb=
TRUE,
latexTranslate also translates
[()] to math mode using
\left, \right.
hspace="10ex" to add 10 extra spaces to the left
of the text.
options( ) to have in effect only for when
print is
executed. Defaults are current
options. For
dvi these specify
the paper width and height in inches if
nomargins=TRUE, with
defaults of 5.5 and 7, respectively.
TRUE to have
dvi print, to the S-Plus session, the LaTeX .log
file.
FALSE to not use
\multicolumn in header
of table
FALSE to use default LaTeX margins when making the .dvi file
If running under Windows and using MikTeX,
latex and
yap
must be in your system path, and
yap is used to browse
.dvi
files created by
latex. You should install the
geometry
and
ctable styles in MikTeX to make optimum use
of
latex().
If running S-Plus and your directory for temporary files is not
/tmp
(Unix/Linux) or
\windows\temp (Windows), add your
own
tempdir function such as
tempdir <- function() "/yourmaindirectory/yoursubdirectory"
latex and
dvi return a
list of class
latex or
dvi containing character string
elements
file and
style.
file contains the name of the
generated file, and
style is a vector (possibly empty) of styles to
be included using the LaTeX2e
\usepackage command.
latexTranslate returns a vector of character strings
Frank E. Harrell, Jr.,
Department of Biostatistics,
Vanderbilt University,
f.harrell@vanderbilt.edu
Richard M. Heiberger,
Department of Statistics,
Temple University, Philadelphia, PA.
rmh@astro.ocis.temple.edu
## Not run:
x <- matrix(1:6, nrow=2, dimnames=list(c('a','b'),c('c','d','enLine 2')))
latex(x) # creates x.tex in working directory
w <- latex(x, file='/tmp/my.tex')
d <- dvi(w) # compile LaTeX document, make .dvi
# latex assumed to be in path
d # or show(d) : run xdvi (assumed in path) to display
w # or show(w) : run dvi then xdvi
dvips(d) # run dvips to print document
dvips(w) # run dvi then dvips
latex(x, file="") # just write out LaTeX code to screen
# After running latex( ) multiple times with different special styles in
# effect, make a file that will call for the needed LaTeX packages when
# latex is run (especially when using Sweave with R)
if(exists(latexStyles))
cat(paste('\usepackage{',latexStyles,'}',sep=''),
file='stylesused.tex', sep='\n')
# Then in the latex job have something like:
# \documentclass{article}
# \input{stylesused}
# \begin{document}
# ...
## End(Not run)