# latex.table() function?

Can Sage construct latex code of table? Something like html.table, but with tex-output instead of html-output.

latex.table() function?

add a comment

3

Well... I could not wait for response, so I wrote a simple implementation:

```
def latex_table(content, caption, label, header_rows = 1, header_columns = 0, position = 'htb'):
code = """\\begin{table}[%s]
\\centering
\\caption{\\label{tab:%s} %s}
""" % (position, label, caption)
code += '\\begin{tabular}{|%s|} \\hline\n' % '|'.join('c' for i in range(len(content[0])))
bold_format = '\\textbf{%s}'
for line_no, line in enumerate(content):
row_format_string = bold_format if line_no < header_rows else '%s'
code += ' ' + ' & '.join([(bold_format if column_no < header_columns else row_format_string ) % i for column_no,i in enumerate(line)]) + ' \\\\ \\hline \n'
code += ' \\end{tabular}\n\end{table}\n'
return code
```

This code generates something similar to html.table output for latex. I'll be happy to know someone already wrote a better implementation.

1

Note that now Sage has a `table`

object which can be printed as LaTeX. As per the example in the documentation:

```
sage: rows = [['a', 'b', 'c'], [100,2,3], [4,5,60]]
sage: table(rows)
a b c
100 2 3
4 5 60
sage: latex(table(rows))
begin{tabular}{lll}
a & b & c
$100$ & $2$ & $3$
$4$ & $5$ & $60$
end{tabular}
```

0

If you can put it in a matrix m, then `latex(m)`

will give roughly a latex table.

```
sage: var('x,y,z')
(x, y, z)
sage: latex(matrix([[x*y,x+y,z],[z+y,x-y,x*y*z]]))
\left(\begin{array}{rrr}
x y & x + y & z \\
y + z & x - y & x y z
\end{array}\right)
```

Asked: **
2011-12-31 03:40:09 -0600
**

Seen: **839 times**

Last updated: **Oct 06 '13**

getting blank cells in html.table

Undefined control sequence when showing multiplication table

how to set latex options on graph to make them ultra small ?

Is there a function to render latex or html in a notebook from a string ?

LaTeX in plot not showing Greek letter

How to do latex typesetting in asksage

Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.