About
Shop
LaTeX
Software
Books
Gallery
News
Contact
Blog
Settings
Account

Exercise 1: Loading and Displaying Data (Solution)

This is a solution to Exercise 1. You need the sample files booklist.csv and country-codes.csv. Alternatively, if you want to use data from the samples SQL database, remember to use datatooltk to import the data to a .dbtex file and load it using \DTLloaddbtex as described in Loading Data From a .dbtex File.

Note that two LaTeX runs are required for the longtable to correctly align the table columns. This is a feature of the longtable package. (Two LaTeX runs are also required to get the cross-references up-to-date.)

% arara: pdflatex
% arara: pdflatex
\documentclass[captions=tableabove]{scrartcl}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage{datatool}
\usepackage{longtable}
\usepackage{booktabs}

% Load data from booklist.csv:
\DTLloaddb{books}{booklist.csv}
% Load data from country-codes.csv:
\DTLloaddb{countries}{country-codes.csv}

% Add rules from booktabs package:
\renewcommand{\dtldisplaystarttab}{\toprule}%
\renewcommand{\dtldisplayendtab}{\\\bottomrule}%
\renewcommand{\dtldisplayafterhead}{\midrule}%

\begin{document}
The book titles are shown in Table~\ref{tab:books}.

\begin{table}
 \caption{Books}
 \label{tab:books}
 \centering
 \DTLdisplaydb{books}
\end{table}

The country codes are shown in Table~\ref{tab:countries}.

% Make sure you load at least v2.21 of datatool
% for the rules to show correctly as earlier versions
% had a bug.
\DTLdisplaylongdb
 [%
    caption={Country Codes},% main caption
    contcaption={Country Codes (Continued)},% continuation caption
    label={tab:countries},% label
    foot={\bottomrule\multicolumn{2}{r}{\emph{Continued on next page}}},% table footer
    lastfoot={}% final table footer
 ]
 {countries}

\end{document}

Download dtldisplay.tex or dtldisplay.pdf.

© 2015 Dickimaw Books. "Dickimaw", "Dickimaw Books" and the Dickimaw parrot logo are trademarks. The Dickimaw parrot was painted by Magdalene Pritchett.

Terms of Use Privacy Policy Cookies Site Map FAQs