Anzeige:
Ergebnis 1 bis 5 von 5

Thema: Problem mit longtable und arydshln

  1. #1
    hardun
    Gast

    Problem mit longtable und arydshln

    Hallo zusammen,
    ich habe ein Problem bei der Benutzung von longtable in Kombination mit arydshln.

    Eine longtable-Tabelle wird bei der Erstellung von Rechnungen bei mir manchmal so lang, dass sie auf eine neue Seite umbricht.
    In seltenen Fällen kommt es vor, dass auf der neuen Seite nur der Kopf der Tabelle (definiert mit \endfirsthead oder \endhead) und der Fuß der Tabelle (definiert mit \endfoot oder \endlastfoot) erscheint, weil keine Inhaltszeile mehr darzustellen ist. Soweit ist das in Ordnung und wie erwartet.

    Benutze ich allerdings das arydshln-Paket, welches ich für gestrichelte horizontale Linien benötige, erscheinen in dieser speziellen Situation auf der neuen Seite die vertikalen Linien der Tabelle unterhalb der eigentlichen Tabelle. Siehe Screenshot:


    Ohne dem arydshln-Paket sind die vertikalen Linien da wo sie sein sollen, nämlich im Kopf und Fuß der Tabelle.

    Hier ein Minimalbeispiel:
    Code:
    \documentclass[a4paper,10pt]{scrartcl}
    
    \usepackage{longtable}
    \usepackage{arydshln}
    
    \begin{document}
    
    % Abstand um die Tabelle an das Seitenende zu schieben
    \vspace*{165mm}
    
    \begin{longtable}[l]{|l|} 
    
    % Kopfzeile
    \hline
    head \tabularnewline
    \endhead
    
    % Fußzeile erste Seite
    \hline
    foot page first \tabularnewline
    \endfoot
    
    % Fußzeile jede weitere Seite
    \hline
    foot \tabularnewline
    \hline
    \endlastfoot
    
    % Inhalt
    \hline
    content \tabularnewline 
    \hline
    content \tabularnewline 
    
    \end{longtable} 
    
    \end{document}
    Das Problem tritt sowohl mit MikTeX 2.7 unter Windows als auch mit einer TeXLive 2008 Distribution unter Linux auf.
    Wenn man die Zeile 4 (\usepackage{arydshln}) auskommentiert tritt das Problem nicht auf.

    Hat jemand einen Rat für mich?
    Gibt es eine Alternative zum arydshln-Paket um getsrichelte horizontale Linien in Tabellen zu erzeugen?

    Vielen Dank vorab für eine Antwort...

  2. #2
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.045
    Du kannst lokal deaktivieren mit \ADLinactivate, siehe Dokumentation.

  3. #3
    hardun
    Gast
    Vielen Dank für den Hinweis.

    Leider weiß ich aber bei der Erstellung der einzelnen Tabellen noch nicht, ob ich gestrichelte Linien benötige oder nicht. Der TeX-Quellcode für meine Tabellen wird von einer Anwendung automatisiert zusammengesetzt.

    Mit \ADLinactivate kann ich ja das Paket arydshln auch nur für komplette Tabellen deaktivieren. Somit könnte ich also keine gestrichelte Linien in einer Tabelle erzeugen, bei der nur der Tabellenfuß (und damit auch der Tabellenkopf) auf eine neue Seite springt.

    Sieht jemand eine Lösung?

    Vielen Dank...

  4. #4
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.045
    In deinem Fall könnte der einsame Tabellenteil daher kommen, dass der letzte Fuß (wegen der zusätzlichen Linie) etwas größer ist, als der normale Fuß. Wenn du da wirklich keine Linie willst, kannst du versuche mit \noalign eine unsichtbare Linie einzufügen.

    Es kann übrigens auch am Anfang der Tabelle zu einsamen Teilen kommen, das kannst du mit needspace unterdrücken.


    Code:
    \documentclass[a4paper,10pt]{scrartcl}
    
    \usepackage{longtable,needspace}
    
    
    \begin{document}
    %\vspace*{170mm}\needspace{4\baselineskip}%
    \vspace*{165mm}
    \begin{longtable}[l]{|l|}
    \hline
    head %\\
    \endhead
    \hline
    foot page first\\%\noalign{\vphantom{\rule{2cm}{0.4pt}}}
    %\hline %hinzufügen
    \endfoot
    \hline
    foot \\
    \hline
    \endlastfoot
    \hline
    content \\
    \hline
    content2 
    \end{longtable}
    
    \end{document}

  5. #5
    hardun
    Gast
    Vielen Dank für die Hinweise.

    Ich ab jetzt eine Lösung gefunden, wobei ich nicht weiß, ob die wirklich "schön" ist.

    Das Problem war eindeutig die fehlende \hline beim Fußbereich der ersten Seite(n) der Tabelle. Sobald ich am Ende des Fußbereichs für die ersten Seite(n) eine \hline eingesetzt hatte, funktionierte alles ohne Probleme.
    Da an dieser Stelle aber keine Linie erscheinen soll, habe ich sie mit \arrayrulecolor{white} auf weiß gesetzt.

    Die \arrayrulecolor{}-Befehle konnte ich allerdings nicht direkt um den \hline setzten, daher die etwas seltsam anmutende Platzierung von \arrayrulecolor{white} und \arrayrulecolor{black}:
    Code:
    \documentclass[a4paper,10pt]{scrartcl}
    
    \usepackage{longtable}
    \usepackage{color}
    \usepackage{colortbl}
    \usepackage{arydshln}
    
    \begin{document}
    
    % Abstand um die Tabelle ans Seitenende zu schieben
    \vspace*{168mm}
    
    \begin{longtable}[l]{|l|} 
    % Kopfzeile
    \hline
    head \tabularnewline
    \endhead
    
    % Fußzeile erste Seite
    foot page first \arrayrulecolor{white} \tabularnewline
    \hline
    \endfoot
    
    % Fußzeile jede weitere Seite
    \noalign \arrayrulecolor{black}
    \hline
    foot \tabularnewline
    \hline
    \endlastfoot
    
    % Inhalt
    \hline
    content \tabularnewline 
    \hline 
    content \tabularnewline 
    
    \end{longtable} 
    
    \end{document}
    Wie gesagt, ich weiß nicht, ob das alles so "OK" ist, funktioniert aber.

    Danke noch mal.

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •