Ärger mit datatool

Tabellen und Grafiken erstellen und anordnen


555nase
Forum-Anfänger
Forum-Anfänger
Beiträge: 17
Registriert: Do 7. Mai 2015, 19:28
Wohnort: Stadtallendorf

Ärger mit datatool

Beitrag von 555nase »

Hallo liebe LaTeX-Gemeinde.

Ich verzweifle noch an datatool... Ich habe ein Beispiel, welches zuerst prima funktionierte. Auf einmal gibt mir Latex einen Fehler heraus.
\documentclass[12pt,a4paper,oneside,DIV=calc]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\renewcommand{\sfdefault}{phv} 
\renewcommand{\rmdefault}{pplj} 
\usepackage{datatool} %externe Daten einbinden
\usepackage[format=plain,indention=.5cm,labelfont=bf,textfont=it,tableposition=top,labelsep=endash]{caption} % Abbildungs und Tabellenbeschriftungen


\DeclareCaptionFormat{beschriftung}{#1#2#3}
\DeclareCaptionListFormat{table}{Tafel T.#1. #2}
\captionsetup{format=beschriftung,labelsep=endash,singlelinecheck=no}
\captionsetup[table]{name=Tafel}

\begin{document}
\begin{table}[!htbp]
	\caption[\textsc{Etienne} (1991), S.215f.; CIL IV 5380.]{Preise nach \textsc{Etienne} (1991), S.215f.; CIL IV 5380.}
	\bigskip
	\centering
	\DTLloaddb{preise}{preise.csv}
	\DTLdisplaydb{preise}
	\label{tab:preise}
\end{table}
\end{document}

Als Fehler kommt Folgendes, und ich kann wirklich nicht sagen warum:
! Missing { inserted.
<to be read again>
\let
l.20 \DTLloaddb{preise}{preise.csv}

A left brace was mandatory here, so I've put one in.
You might want to delete and/or insert some corrections
so that I will find a matching right brace soon.
(If you're confused by all this, try typing `I}' now.)


! LaTeX Error: \begin{table} on input line 16 ended by \end{document}.

See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...

l.24 \end{document}

Your command was ignored.
Type I <command> <return> to replace it with another command,
or <return> to continue without it.

(minimalbeispiel.aux)
! You can't use `\end' in internal vertical mode.
\enddocument ...cumenthook \deadcycles \z@ \@@end

l.24 \end{document}

Sorry, but I'm not programmed to handle this case;
I'll just pretend that you didn't ask for it.
If you're in the wrong mode, you might be able to
return to the right one by typing `I}' or `I$' or `I\par'.
Vielleicht kann mir jemand helfen.

Ist es vielleicht besser csvtools zu benutzen. Irgendwie erscheint mir "datatool" ein bisschen "zerbrechlich"...
Dateianhänge
preise.txt
(627 Bytes) 245-mal heruntergeladen

555nase
Forum-Anfänger
Forum-Anfänger
Beiträge: 17
Registriert: Do 7. Mai 2015, 19:28
Wohnort: Stadtallendorf

Beitrag von 555nase »

Also ich habe die Datei neu aus Libreoffice-CALC exportiert ins betreffende Verzeichnis. Danach hat es wieder funktioniert.

Das Verhalten ist eigenartig. Denn wenn ich per Hand etwas an der .csv ändere, funktioniert es nicht mehr, dann kommt der Fehler.

Erst wenn die Datei neu ins Verzeichnis kopiert oder exportiert wird, funktioniert es wieder.

:shock:

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2466
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag von Bartman »

Ich habe Dein Beispiel verändert, damit es etwas übersichtlicher ist.
\begin{filecontents}{preise.csv}
Lebensmittel:,"ein modius (6,503 kg) Roggen",12 As = 3 Sesterzen
,"ein modius (6,503 kg) Weizen","30 As = 7 Sesterzen, 2 As"
,"ein modius (6,503 kg) Lupinen",3 As
,"eine libra (0,328 kg) öl",4 As = 1 Sesterze
,ein Maß einfachen Wein,1 As
,ein Maß Falerner,4 As = 1 Sesterze
Geschirr:,ein Breitopf,1 As
,ein Teller,1 As
,ein kleines Trinkgefäß,2 As
,ein Eimer,"9 As = 2 Sesterzen, 1 As"
,eine Lampe,1 As
,ein silbernes Sieb,90 Denare = 360 Sesterzen
Kleidung:,eine Tunika,15 Sesterzen
,Reinigung einer Tunika,1 Denar = 4 Sesterzen
Tiere:,ein Maultier ,520 Sesterzen
Sklaven:,zwei Sklaven ,5048 Sesterzen
\end{filecontents}

\documentclass[
	fontsize=12pt,
%    a4paper,		Voreinstellung der Dokumentklasse
%    oneside,		s. o.
   captions=tableheading,
   DIV=calc
]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\renewcommand{\sfdefault}{phv} 
\renewcommand{\rmdefault}{pplj} 
\usepackage{datatool} %externe Daten einbinden
\usepackage[format=plain,indention=.5cm,labelfont=bf,textfont=it,tableposition=top,labelsep=endash]{caption} % Abbildungs und Tabellenbeschriftungen
\usepackage{booktabs}


\DeclareCaptionFormat{beschriftung}{#1#2#3}
\DeclareCaptionListFormat{table}{Tafel T.#1. #2}
\captionsetup{format=beschriftung,labelsep=endash,singlelinecheck=no}
\captionsetup[table]{name=Tafel}

\renewcommand{\dtldisplaystarttab}{\toprule}
\renewcommand{\dtldisplayendtab}{\\\bottomrule}

\begin{document}

\begin{table}[htbp]
	\centering
	\caption[\textsc{Etienne} (1991), S.215f.; CIL IV 5380.]{Preise nach \textsc{Etienne} (1991), S.215f.; CIL IV 5380.}
	\renewcommand{\arraystretch}{1.2}
	\DTLloaddb{preise}{preise.csv}
	\DTLdisplaydb{preise}
	\label{tab:preise}
\end{table}
\end{document}
Der Inhalt Deiner Tabellenbeschriftung sieht nach einem Literaturverweis aus. Setzt Du alle Literaturverweise in Deinem Dokument in dieser Form oder nur in diesem Beispiel, um es einfach zu halten?

555nase
Forum-Anfänger
Forum-Anfänger
Beiträge: 17
Registriert: Do 7. Mai 2015, 19:28
Wohnort: Stadtallendorf

Beitrag von 555nase »

Hallo Bartman.

Vielen Dank. Ich habe auch schon das nächste Problem, aber das öffne ich neu.

Ja das ist ein Literaturverweis. Mit

\citeauthor{Etienne.1991},\citeyear{Etienne.1991} 

hat es in der caption auch nicht funktioniert.

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4300
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag von u_fischer »

555nase hat geschrieben:Also ich habe die Datei neu aus Libreoffice-CALC exportiert ins betreffende Verzeichnis. Danach hat es wieder funktioniert.

Das Verhalten ist eigenartig. Denn wenn ich per Hand etwas an der .csv ändere, funktioniert es nicht mehr, dann kommt der Fehler.

Erst wenn die Datei neu ins Verzeichnis kopiert oder exportiert wird, funktioniert es wieder.

:shock:
Nun, wenn man eine Datei ändert, kann man sie auch kaputt machen. In diesem Fall scheinst du sie als utf8 mit Unicode BOM zu speichern, und zumindest in miktex führt das zu Fehlern.

Antworten