Description Usage Arguments Details Value Author(s) References See Also Examples
This makes use of the MathJax
JavaScript functions.
Standard LaTeX input will be turned into MathML and displayed in any
modern browser.
1 2 3 4 5 6 7 
x 
Character. A string containing a mathematical expression in LaTeX notation. 
label 
Character. A text string giving the label to be displayed before the equation. 
inline 
Logical. Set to 
count 
Logical. Set to 
ltx 
Either a string containing a mathematical expression in
LaTeX notation or an object of class 
page 
Character. An optional connection. A character string
naming the file to write to or a page object returned by

table.attributes 
Character. A string specifying attributes of the table for a displayed equation. See details. 
tr.attributes 
Character. A string specifying attributes of the table row for a displayed equation. Default is "" meaning no special attributes. 
td.attributes 
Character. A string specifying attributes of the table data entries for a displayed equation. See details. 
... 
Possible attributes to be attached to the mathematical expression. 
Mathematical expressions in LaTeX format will be translated into
MathML by the MathJax
JavaScript program.
Mathematical expressions can be inserted inline (within text) or on a single line as a displayed expression, corresponding to the use of $...$ and $$...$$ in normal LaTeX.
One problem with writing LaTeX expressions is that all backslashes must be repeated. See the examples.
See the examples for an example of arguments to be supplied to
newPage
to ensure mathematical expressions are displayed.
If ltx
is a string containing a mathematical expression in
LaTeX notation, or if it is an object of class latex
with
inline = TRUE
then any values assigned to
table.attributes
tr.attributes
and td.attributes
are
ignored. Otherwise the default value of table.attributes
when
this argument is NULL
depends on whether the mathematical
expression has an equation number or not, which is determined by
whether count
in the latex
object is TRUE
or
FALSE
. If count = FALSE
then table.attributes
is
assigned the value "border = '0'"
. If count = FALSE
then
table.attributes
is assigned the value "border = '0'
width = '90%'"
. Similarly the default value of td.attributes
depends on whether the mathematical expression has an equation number
or not. If count = FALSE
then td.attributes
is
ignored. If count = FALSE
then table.attributes
is
assigned the value c("width = '50'","align = 'center'",
"align = 'right' width = '50'")
. The explanation for these
assignments is that if a displayed mathematical expression has no
equation number it is constructed as a table comprised of a single row
with a single entry in that row. If the expression has an equation
number, it is constructed as a table comprised of a single row with
three entries: the first is a nonbreaking space, the second is the
mathematical expression itself and the third is the equation number.
Note that these functions are modified versions of as.latex
and
HTML.latex
from the package R2HTML. The most notable
changes are that HTML.latex
does not allow for inclusion of
table and table data attributes in mathematical expressions and the
numbering of equations uses R code rather than JavaScript. The
numbering system for equations adds an entry to the global vector
hwriterEquationList
whenever a numbered equation is created. If
a label is specified via the label
argument, by for example,
label = "anequationlabel"
, then an anchor is created as part of
the table data entry containing the equation number, using an HTML
a
element. The actual anchor name is eq:anequationlabel
,
which copies the label categorizing approach used in LaTeX. If no
label is specified, but the equation is numbered, the name used for
the anchor is eq:equationxx
where xx
is the equation
number. Then the number of an equation corresponding to a given label
may be retrieved using the function eqRef
(intended to be
reminiscent of the LaTeX \ref
command).
To see what attributes are valid for tables, table rows and table data, go to http://www.w3schools.com/tags/ and click on the desired tag.
as.latex
returns a list of class latex
with components:
alt 
A character string containing the A string containing a mathematical expression in LaTeX notation. 
inline 
A logical value. 
count 
A logical value. 
label 
If not 
hwriteLatex
produces a character vector containing the output
HTML code. If page
is specified this text is appended to the
specified file.
David Scott d.scott@auckland.ac.nz
MathJax: http://www.mathjax.org/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56  as.latex("See what is added by as.latex", label = "a label",
inline = FALSE, count = TRUE)
### Run this example to see what is written to the file
## Not run:
### An inline expression will be written to standard output as is
### Note that the backslashes remain duplicated in this case
### I think this is due to a line of code in hwriter::hwriteString
### if (is.null(page)) txt
### which writes the txt literally rather than using cat
hwrite("Here is an inline mathematical expression:
`\int_{\infty}^{1}f(x)dx`")
### The same expression but displayed
hwriteLatex(as.latex("\int_{\infty}^{1}f(x)dx",
inline = FALSE, count = FALSE),
table.attributes = "border = '1'",
tr.attributes = "bgcolor = 'white'")
### The same example written to a file
### Create a temporary file first
tmpDir < tempdir()
fileName < file.path(tmpDir, 'hwriteLatex.html')
### Copy some necessary files
cssDir < file.path(system.file(package = 'hwriterPlus'), 'css')
file.copy(file.path(cssDir, "BrowserExample.css"), tmpDir)
### Open file for writing
p < newPage(fileName,
title = "Example of a Document for Display in a Browser",
link.css = c("BrowserExample.css"))
hwrite("Here is an inline mathematical expression:
`\int_{\infty}^{1}f(x)dx`", p, br)
### The same expression but displayed
hwrite("Here is a displayed version of the same expression enclosed in a
box", p, br)
hwriteLatex(as.latex("\int_{\infty}^{1}f(x)dx",
inline = FALSE, count = FALSE),
p,
table.attributes = "border = '1'",
tr.attributes = "bgcolor = 'white'")
### We can also have equation numbers and labels when writing to a file
hwrite("Here is a different expression which has an equation number and
assigned a label", p, br)
hwriteLatex(as.latex("\{ 26.119 < \sum_{i=1}^n(X_i\bar{X})^2\}
\bigcup\ \{ 5.629 > \sum_{i=1}^n (X_i\bar{X})^2 \}.",
inline = FALSE, label = "anequationlabel"),
page = p,
tr.attributes = "bgcolor = 'gray'",
td.attributes = c("width = '50'",
"align = 'center' bgcolor = 'yellow'",
"align = 'right' width = '50'"))
closePage(p)
### Open a web browser and examine the resulting file
if (interactive()) try(browseURL(fileName))
## End(Not run)

Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.