PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem bzw. Fragen zu longtable und LongtableX



nameless
21-01-2009, 11:09
Hi Leute,

Ich bin grad dabei eine PDF-Vorlage für eine Checkliste in form einer Tabelle zu erstellen, die ab und an mal über mehrere Seiten gehen kann. Hatte bis heute auch noch nie probleme damit und hab auch immer was bei google gefunden... aber diesmal brauch ich Euch :-)

Folgendes: Tabelle kann ab und an über mehrere Seiten gehen, also benutze ich für alle LongtableX damit ich auch die breite der spalten bestimmen kann!

Hier mal ein bsp.:

Main-Tex-Datei


\documentclass[10pt,a4paper]{scrartcl}
\usepackage[paper=a4paper,left=10mm,right=35mm,top=30mm,bottom =22mm,includeheadfoot]{geometry} %ich weis... komische ränder, muss aber so sein, aufgrund des hintergrunds
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{wallpaper}
\usepackage{scrpage2}
\usepackage{tabularx}
\usepackage{multirow} %für tabellen formatierung
\usepackage{booktabs} %für tabellen formatierung
\usepackage{longtable} %für tabellen die über mehrere seiten gehen
\usepackage{ltxtable} %LongtableX (Mehrseitige tabellen mit X)
\usepackage[none]{hyphenat} %Silbentrennung ausschalten
\sloppy %Silbentrennung ausschalten
\usepackage{eurosym} %Für €-Symbol
\usepackage{xcolor} %für Farben im Text
\usepackage{helvet} %schriftart serifen-los
\usepackage{lastpage} %für anzahl der seiten

\usepackage{filecontents}
\renewcommand{\familydefault}{\sfdefault} %schriftart serifen-los

\newcommand{\tab}{ \footnotesize \bf }
\newcommand{\fatscript}{ \scriptsize \bf }

%kopf-fußzeile
\pagestyle{scrheadings}
\cfoot{\input{footer.tex} } %footer - footer besteht auch aus einer normalen tabelle (tabularx)

\samepage %Seitenumbruch _nur_ nach absätzen!

\begin{document}

\footnotesize %schriftgröße auf footnotesize setzten
\CenterWallPaper{1}{hintergrund.pdf} %Hintergrundbild
\parindent0mm % KEIN einrücken bei neuen Absätzen

\input{headinfo.tex} % Allgemeine Infos zu der Liste, auch normale Tabelle (tabularx)
\\ \\ \\ \\
\large{ \underline{\bf {Einkauf}}}
\footnotesize
\LTXtable{ 500pt }{ltxtable_test.tex} %longtable die aber nur eine seite benötigt

\newpage
\footnotesize
\LTXtable{ 500pt }{long_test.tex} %longtable über mind. 2 seiten

\newpage
asdadasdasdasdadasdasdasdadasdasdasdadasdasdasdada sdasd\\
asdadasdasdasdadasdasdasdadasdasdasdadasdasdasdada sdasd\\
asdadasdasdasdadasdasdasdadasdasdasdadasdasdasdada sdasd\\
asdadasdasdasdadasdasdasdadasdasdasdadasdasdasdada sdasd\\

\end{document}




ltxtable_test.tex


\newcolumntype{Y}{>{\small\raggedleft\arraybackslash}p{135pt}} %rechtsbündige spalte mit bestimmter breite
\begin{longtable}{|YX|}
\hline
& \\ % erste Zeile leer für größeren abstand zur hline
Test Text & Test Text \\
Test Text & Test Text \\
.
.
.
Test Text & Test Text \\
Test Text & Test Text \\
& \\ % letzte Zeile leer für größeren abstand zur hline
\hline
\end{longtable}



long_test.tex


\newcolumntype{Y}{>{\small\raggedleft\arraybackslash}p{135pt}} %rechtsbündige spalte mit bestimmter breite
\begin{longtable}{|YX|}
asdasd sda sd as & fdgdgdfgd gdfg \\
asdasd sda sd as & fdgdgdfgd gdfg \\
asdasd sda sd as & fdgdgdfgd gdfg \\
.
.
.
asdasd sda sd as & fdgdgdfgd gdfg \\
asdasd sda sd as & fdgdgdfgd gdfg \\
asdasd sda sd as & fdgdgdfgd gdfg \\
\end{longtable}



Bitte um hilfe^^

Evtl. liegt es an den Pakten die ich benutze?

Fehlermeldung is übrigens folgende:

(./footer.tex (./long_test.tex
! Misplaced \cr.
\reserved@c ->\ifnum 0=`{}\fi \cr

l.11 \endfoot

hab auch schon danach gegoogelt... tipp war nochmal alle geschweiften klammern überprüfen (hab ich gemacht, war alles richtig)

mechanicus
21-01-2009, 11:28
Hallo,

deine Tabellen werden bei mir erzeugt. Nach dem ich alle unbekannten Tex-Files ausgeklammert habe, klappte es:


\documentclass[10pt,a4paper]{scrartcl}
\usepackage[paper=a4paper,left=10mm,right=35mm,top=30mm,bottom =22mm,includeheadfoot]{geometry} %ich weis... komische ränder, muss aber so sein, aufgrund des hintergrunds
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{wallpaper}
\usepackage{scrpage2}
\usepackage{tabularx}
\usepackage{multirow} %für tabellen formatierung
\usepackage{booktabs} %für tabellen formatierung
\usepackage{longtable} %für tabellen die über mehrere seiten gehen
\usepackage{ltxtable} %LongtableX (Mehrseitige tabellen mit X)
\usepackage[none]{hyphenat} %Silbentrennung ausschalten
\sloppy %Silbentrennung ausschalten
\usepackage{eurosym} %Für €-Symbol
\usepackage{xcolor} %für Farben im Text
\usepackage{helvet} %schriftart serifen-los
\usepackage{lastpage} %für anzahl der seiten

\usepackage{filecontents}
\renewcommand{\familydefault}{\sfdefault} %schriftart serifen-los

\newcommand{\tab}{ \footnotesize \bf }
\newcommand{\fatscript}{ \scriptsize \bf }

%kopf-fußzeile
\pagestyle{scrheadings}
%\cfoot{\input{footer.tex} } %footer - footer besteht auch aus einer normalen tabelle (tabularx)

\samepage %Seitenumbruch _nur_ nach absätzen!

\begin{document}

\footnotesize %schriftgröße auf footnotesize setzten
%\CenterWallPaper{1}{hintergrund.pdf} %Hintergrundbild
\parindent0mm % KEIN einrücken bei neuen Absätzen

%\input{headinfo.tex} % Allgemeine Infos zu der Liste, auch normale Tabelle (tabularx)

\vspace{4em}

\large{ \underline{\bf {Einkauf}}}
\footnotesize
\begin{filecontents}{ltxtable_test.tex}
\newcolumntype{Y}{>{\small\raggedleft\arraybackslash}p{135pt}} %rechtsbündige spalte mit bestimmter breite
\begin{longtable}{|YX|}
\hline
& \\ % erste Zeile leer für größeren abstand zur hline
Test Text & Test Text \\
Test Text & Test Text \\
Test Text & Test Text \\
Test Text & Test Text \\
& \\ % letzte Zeile leer für größeren abstand zur hline
\hline
\end{longtable}
\end{filecontents}

\LTXtable{ 500pt }{ltxtable_test.tex} %longtable die aber nur eine seite benötigt

\newpage
\footnotesize
\begin{filecontents}{long_test.tex}
\newcolumntype{Y}{>{\small\raggedleft\arraybackslash}p{135pt}} %rechtsbündige spalte mit bestimmter breite
\begin{longtable}{|YX|}
asdasd sda sd as & fdgdgdfgd gdfg \\
asdasd sda sd as & fdgdgdfgd gdfg \\
asdasd sda sd as & fdgdgdfgd gdfg \\
asdasd sda sd as & fdgdgdfgd gdfg \\
asdasd sda sd as & fdgdgdfgd gdfg \\
asdasd sda sd as & fdgdgdfgd gdfg \\
\end{longtable}
\end{filecontents}
\LTXtable{ 500pt }{long_test.tex} %longtable über mind. 2 seiten

\newpage
asdadasdasdasdadasdasdasdadasdasdasdadasdasdasdada sdasd\\
asdadasdasdasdadasdasdasdadasdasdasdadasdasdasdada sdasd\\
asdadasdasdasdadasdasdasdadasdasdasdadasdasdasdada sdasd\\
asdadasdasdasdadasdasdasdadasdasdasdadasdasdasdada sdasd\\

\end{document}
Was ich noch gemacht habe: \\\\\\ das habe ich durch ein vspace ersetzt.

Gruß
Marco

nameless
21-01-2009, 11:45
Erstmal Danke für Deine schnell Antwort :-)

Bin grad ein wenig verwirrt... es funktioniert wirklich (nicht das ich an Dir zweifel ;-) )... auch wenn ich die 2. Tabelle so groß mache das diese über 2 oder 3 seiten geht... muss jetzt mal suchen wo der fehler liegt...

Noch eine Frage zu "\begin{filecontents}"
Hab grad die Doku auf ctan überflogen, und wenn ich das dort richtig verstanden habe, wird durch LaTeX eine weitere TeX datei erzeugt die man dann später irgendwo in der Main-TeX-Datei über input einfügen kann??

Gruß

mechanicus
21-01-2009, 12:03
Noch eine Frage zu "\begin{filecontents}"
Hab grad die Doku auf ctan überflogen, und wenn ich das dort richtig verstanden habe, wird durch LaTeX eine weitere TeX datei erzeugt die man dann später irgendwo in der Main-TeX-Datei über input einfügen kann??
Ja Richtig. Du kannst aber auch einen relativen Pfad angeben. Hierzu muss aber der Ordner bereits existieren. Für deinen Fall zum Beispiel:

\begin{filecontents}{TABELLEN/long_tab.tex}
HIER STEHT WAS
\end{filecontents}


Mit dieser Prozedur bist du aber nicht auf tex-Dateien beschränkt. Ich nutze es meist zur erstellung von dat-Dateien. Auch bib-Dateien sind möglich. uvm

Gruß
Marco

nameless
21-01-2009, 13:08
Ok, hab meinen Fehler gefunden...

Wenn eine Longtable über mehrere Seiten geht meckert er bei \hline, warum auch immer ...

mit \cmidrule{SPALTEN} funktionierts dann eigentl. ganz gut... muss jetzt nur noch oben den abstand wegbekommen zwischen den vertikalen seiten linien und de horizontalenlinien...

wenn jemand ein leichte lösung hat, kann er sich gerne melden ;)

Gruß

René Geppert
22-01-2009, 00:51
\begin{longtable}{|YX|}
\hline
& \\ % erste Zeile leer für größeren abstand zur hline
Test Text & Test Text \\


ich vermute du hast longtable nicht richtig verstanden

www.ctan.org/tex-archive/macros/latex/required/tools/longtable.pdf

oder
für ein imho nach sehr gutes beispiel
http://www.tug.org.in/tutorial/chap07-scr.pdf
S. 9 demonstriert wie man eine longtable richtig aufbaut

und booktabs hast du auch nicht verstanden oder jedenfalls die doku nicht gelesen, daher solltest du es lieber weglassen

nameless
22-01-2009, 08:47
Moin :)



\begin{longtable}{|YX|}
\hline
& \\ % erste Zeile leer für größeren abstand zur hline
Test Text & Test Text \\


ich vermute du hast longtable nicht richtig verstanden

www.ctan.org/tex-archive/macros/latex/required/tools/longtable.pdf


wenn du den \kill befehl meinst, denn kenn ich... macht aber keinen unterschied ...



oder
für ein imho nach sehr gutes beispiel
http://www.tug.org.in/tutorial/chap07-scr.pdf
S. 9 demonstriert wie man eine longtable richtig aufbaut

die \endfirsthead bis \endlastfoor hab ich absichtlich weggelassen, da ich keine brauche... zumindest für dieses bsp nicht ;)



und booktabs hast du auch nicht verstanden oder jedenfalls die doku nicht gelesen, daher solltest du es lieber weglassen

wenn du die \toprule, \midrule, \bottomrule meinst... kenn ich auch... was ich hier aber nicht brauch... ich bräuchte nur oben und unten eine dünne linie (keine dickere wie bei \toprule oder \bottomrule) und an den seiten... mein problem hier ist, das die pipes nicht mit den rules zusammen arbeiten...



----

Anderes Problem:

Hab jetzt alles zusammengefügt und wollte es mal durchlaufen lassen.. geht auch alles soweit nur kommt eine fehler meldung, wenn ich den footer hinzufüge und die longtable über mehrere seiten geht!

Kann es vllt daran liegen, das der Footer auch aus einer Tabelle besteht und LaTeX die beiden dann vermicht? :confused:


Gruß

René Geppert
22-01-2009, 09:19
- den kill befehl meine ich nicht
- doch, du brauchst endfirsthead usw. (eine linie zu anfang einer tabelle ist selbstverständlich auch ein teil des "head"...das sollte obiger link eigentlich deutlich machen)
- du benutzt cmidrule, also brauchst du booktabs doch...in der doku steht beschrieben, dass und warum booktabslinien nicht mit vertikalen linien harmonieren (also entweder booktabs raus und arbeite mit hline --> dafür musst du aber endfirsthead usw. verstehen, oder: vertikale linien raus)
- ohne ein minimalbsp. kann ich dir leider nicht mehr helfen

gruß