csv2latex — convert a csv file into a LaTeX document
csv2latex [--nohead] [--longtable] [--noescape] [--guess]
[--separator c|s|t|p|l] [--block q|d|n] [--lines #] [--position
l|c|r] [--colorrows 0-1] [--reduce 1|2|3|4] [--repeatheader]
[--nohlines] [--novlines] [file]
This manual page documents the csv2latex program.
csv2latex is a program that reads a "comma separated values" (csv) file
and outputs a LaTeX file with one or more tabular environments to
display the printable values of the csv file. The LaTeX code is flushed
on the standard output.
So-called "comma separated values" files are common formats for
exchanging two-dimensinal tables between programs such as spreadsheets
editors, to represent almost any kind of data. By default, a csv file
is made of printable data separated by commas (‘,’), each comma
representing a ‘cell’ separator, and each line representing a row. By
extension, cell separators can be represented by tabs if the comma is
considered as printable data. Moreover, some non true csv files can be
assumed as two-dimensional tables as well. In some circumstances, if
the printable data includes the cell separator of the exchange format,
the latter can use a second extra character to embrace the printable
data into a block (e.g: quoted text). Thus, it is still possible to
parse the file by using the block delimiter (used twice to embrace the
cell) instead of the separator.
csv2latex aims to parse various csv formats plus formats that fits into
the above definiton, assuming the data is text, and to produce a yet
simple LaTeX file using the "tabular" environment for a table-style
layout. Some options of output will also use macros provided by extra
LaTeX packages that are commonly included in the main LaTeX
This program follows the usual GNU command line syntax, with long
options starting with two dashes (‘-’). A summary of options is
Show summary of options.
Show version of program.
Do not output the LaTeX document header. This is useful when
the output is to be included as a separate file into the
uses the ’longtable’ package instead of the ’tabular’ one.
This is useful when the input is long, with --lines 0 option.
This option uses the extra ‘longtable’ LaTeX package. If you
also use --nohead option, do not forget to add the following
line into the header of your master document:
Do not escape TeX control characters from the input. This is
useful when the input contains already TeX code.
Try to guess the csv format. This is useful when the input
is not strictly a comma separated set of printable data. For
example, a line like %Foo, Bar%:%Wizz: Hey% may be parsed as
"Foo, Bar" then "Wizz: Hey".
-s c|s|t|p|l --separator c|s|t|p|l
Set the given separator as cell separator of the csv format.
‘c’ means a comma (default). ‘s’ means a semicolon. ‘t’
means a tab. ‘p’ means a space. ‘l’ means a colon.
-b q|d|n --block q|d|n
Set the given block delimiter that embraces the printable
data of the csv format. ‘q’ means a simple quote. ‘d’ means
a double quote. ‘n’ means no quoting at all (default).
-l # --lines #
Force to output multiple tabulars, each having a limited
number of lines. The given argument must be a POSITIVE
INTEGER VALUE. This is useful when the number of input rows
is too big to fit into a single papersheet. A good average
for a4 paper is about 40 lines (default). 0 means infinity
(actualy about 2 Giga lines).
-p l|c|r --position l|c|r
Set the text position in all cells at once. This simply uses
one of the three basic cell formating options of the LaTeX
tabular environment. ‘l’ means left-aligned (default). ‘c’
means centered. ‘r’ means right-aligned.
-c 0-1 --colorrows 0-1
Alternate white/gray rows on the LaTeX output, having the
given graylevel. The given argument must be a REAL NUMBER
BETWEEN 0 AND 1. 0 means black while 1 means white. A nice
looking value is 0.75 when printed on white paper. This
option uses the extra ‘colortbl’ LaTeX package. If you also
use --nohead option, do not forget to add the following line
into the header of your master document:
-r 1|2|3|4 --reduce 1|2|3|4
Reduce the size of the tabular and the font in the LaTeX
output, given a reduction level. The given argument must be
one of 1, 2, 3 or 4. The more the level is high, the more
the tabular will appear small. This is useful to shrink the
table width when the printable data is made of very long
text. This option uses the extra ‘relsize’ LaTeX package.
If you also use --nohead option, do not forget to add the
following line into the header of your master document:
Do not output horizontal lines in the table(s).
Do not output vertical lines in the table(s).
Repeat the first row of the first table in every table. This
is useful when the output is very long and separated in
Create a PDF document with small text, alternate gray rows, 80 lines
per table, from a guessed csv format of the january stats that my boss
created with his super point-and-click spreadsheet program (which could
not generate a PDF output!).
csv2latex --guess --lines 80 --colorrows 0.75 --reduce 2
january_stats.csv > january_stats.tex && pdflatex january_stats.tex
Quickly preview a phonebook from a file formated as "Surname" "Name"
csv2latex -s p -b d -l 42 phonebook-sorted.txt | latex
tex (1), latex (1).