
У EViews есть надстройка, которая, по-видимому, выводит latex, но я не могу установить ее на компьютерах моего факультета. Я могу сохранить вывод в формате csv. Есть ли способ создать более красивые таблицы в моем документе без необходимости вводить числа вручную?
решение1
Я бы взялpgfplotstable
для набора csvdata как таблицы. Это очень настраиваемый пакет. Я не могу сравнить его сdatatool
илиcsvsimple
(см. комментарий @Paul Stanley), хотя, потому что я не использовал ни один из них. Следующий код показывает простой пример с тремя различными типами столбцов. Для получения дополнительных опций см. всеобъемлющийруководство pgfplotstable.
\documentclass{article}
\usepackage{filecontents}
\usepackage{pgfplotstable}
\usepackage{array}
\usepackage{booktabs}
\begin{filecontents}{data.csv}
Month, Small Value, Large Value
January, 12.50, 12.3E5
February, 3.32, 8.7E3
March, 43, 3.1E6
April, 0.33, 21.2E4
May, 5.12, 3.45E6
June, 6.44, 6.66E6
July, 123.2, 7.3E7
August, 12.3, 5.3E4
September, 2.3, 4.4E4
October, 6.5, 6.5E6
November,0.55, 5.5E5
December,2.2, 3.3E3
\end{filecontents}
% Define style for cvs file format
\pgfplotstableset{
csv file/.style={col sep=comma,row sep=newline}
}
% Add rules for all 'pgfplotstable's
\pgfplotstableset{
every head row/.style={
before row=\toprule,after row=\midrule},
every last row/.style={
after row=\bottomrule}
}
\begin{document}
\pgfplotstabletypeset[csv file,
column type=l, % default is left alignment
columns/Month/.style={string type},
columns/Small Value/.style={dec sep align}, % align at the decimal point
columns/Large Value/.style={sci,sci sep align} % use scientific notation
]{data.csv}
\end{document}
решение2
Это пример CSV, использующий csvsimple
пакет для чтения данных и siunitx
пакет для форматирования чисел. Я беру пример данных из @quinmars, который показал, что pgfplotstable
. datatool
будет третьим кандидатом.
\documentclass{article}
\usepackage{filecontents}
\usepackage{csvsimple}
\usepackage{array}
\usepackage{booktabs}
\usepackage{siunitx}
\begin{document}
\begin{filecontents*}{data.csv}
Month, Small Value, Large Value
January, 12.50, 12.3E5
February, 3.32, 8.7E3
March, 43, 3.1E6
April, 0.33, 21.2E4
May, 5.12, 3.45E6
June, 6.44, 6.66E6
July, 123.2, 7.3E7
August, 12.3, 5.3E4
September, 2.3, 4.4E4
October, 6.5, 6.5E6
November,0.55, 5.5E5
December,2.2, 3.3E3
\end{filecontents*}
\sisetup{table-number-alignment=center}
\csvloop{%--- from csvsimple
file=data.csv,
tabular={lSS[table-figures-exponent=1]},%--- column 'S' from siunitx
table head=\toprule\textbf{Month} & \textbf{Small Value} & \textbf{Large Value}\\\midrule,
command=\csvcoli & \csvcolii & \csvcoliii\relax,
table foot=\bottomrule}
\end{document}
решение3
В Windows я обычно используюExcel2LaTeX, на OSx я используюcsv2LaTeX. Последний действительно хорошо интегрируется TeXShop
с помощью плагина Perl, который позволяет на лету копировать и вставлять код таблицы в код latex. Первый интегрируется MS Excel
с помощью VBA. Таким образом, он не работает должным образом на Mac, но, по крайней мере, на мой взгляд, это один из самых хороших способов добавления таблиц в LaTeX без лишних хлопот. Если ваш вывод в csv
, вам придется сначала импортировать файл или использовать текст в столбцах в Excel. Затем вы используете недавно добавленную ленту, чтобы получить вывод latex.
В любом случае, когда я некоторое время назад изучал этот вопрос, это были два наиболее удобных решения, которые я нашел.