Tabellen, Kopfzeilen. ein Anfänger braucht Hilfe

Layout von Seiten, Rändern, Fusszeilen, usw, modifizieren


wooosh
Forum-Anfänger
Forum-Anfänger
Beiträge: 18
Registriert: Mi 20. Nov 2013, 18:40

Tabellen, Kopfzeilen. ein Anfänger braucht Hilfe

Beitrag von wooosh »

Hi,

ich habe die Schnauze voll von der Software des Marktführers :wink: und würde daher gerne einige Dokumente auf LaTeX umstellen. Allerdings stoße dabei schon früh an die Grenzen meines Wissens.

Ich muss leider bestimmte Design-Vorgaben einhalten, insbesondere was die Kopfzeile angeht. Hier findet ihr einen Screenshot wie die Kopfzeile auszusehen hat. Also nichts anderes als eine Tabelle mit vier Spalten.
Ich würde nun gerne erst einmal diese Tabelle in LaTeX nachbauen, ohne dass sie in der Kopfzeile auftaucht. Das scheint, laut Google, wohl noch mal eine weitere Hürde zu sein.


Ich habe mal ein Minimalbeispiel erstellt. Das Bild habe ich durch einen schwarzen Kasten ersetzt.
Compiler: pdflatex, Version pi :D, MikTeX 2.9
\documentclass[11pt]{scrartcl}

\usepackage{ucs}
\usepackage[utf8x]{inputenc}
\usepackage{ngerman}
\usepackage{amsmath,amssymb,amstext}
\usepackage{graphicx}
\usepackage[automark]{scrpage2}
\usepackage[svgnames]{xcolor}
\usepackage{array}

\pagestyle{scrheadings}

\title{Testing}
\author{Max Mustermann}

\pagestyle{scrheadings}

\begin{document}


\begin{table}
	\begin{tabular*}{\textwidth}{|c|c|c|@{\extracolsep{\fill}}c|}\hline%
		\rule{0.2\textwidth}{1cm} & Dokumententitel & \begin{tabular}{@{}l@{}}Project:\\Document No:\\Issue No:\\Issue Date:\\Page:\\Contents\end{tabular} & \begin{tabular}{@{}l@{}}Astra\\Langer Dokumententitel\\2\\22.11.2013\\1\\43\end{tabular}\\\hline
  \end{tabular*}
\end{table}

\end{document}
Wie man sieht gibt es noch einige Unterschiede zwischen Soll und Ist:
1. Das Bild ist nicht vertikal zentriert.
2. Der Text in der rechten Spalte ist zwar linksbündig, aber durch das
\extracolsep{\fill}
eben nicht linksbündig zur Zellenwand. Ziel des fills sollte eigentlich sein die gesamte Tabelle auf die Breite von \textwidth zu zwingen. Leider scheint das aber nur links vom Text in der Zelle zu funktionieren. Wenn ich das hinter die Zellenformatierung schreibe
\begin{tabular*}{\textwidth}|c|c|c|c@{\extracolsep{\fill}}|}\hline%
spielt die Tabelle rechts verrückt.

Hätte jemand ein paar Tipps wie ich dem gewünschten Ergebnis näher komme? Die Lösung mit den verschachtelten Tabellen finde ich auch irgendwie unschön. Ich hatte hier schon mit dem array Paket experimentiert, bin aber zu keinem guten Ergebnis gekommen.

Danke, Gruß
wooosh

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

Beitrag von u_fischer »

Ich würde mich gar nicht erst mit extracolsep rumschlagen. Wenn man das spezifisch an einer Stelle haben will, braucht man meist eine dummy-Spalte. In deinen Fall scheint mir tabularx viel geeigneter:
\documentclass[11pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{amsmath,amssymb,amstext}
\usepackage{graphicx}
\usepackage[automark]{scrpage2}
\usepackage[svgnames]{xcolor}
\usepackage{array,tabularx}

\pagestyle{scrheadings}

\title{Testing}
\author{Max Mustermann}

\pagestyle{scrheadings}

\begin{document}

\noindent\rule{\textwidth}{0.4pt}%für die Kontrolle

\noindent
\begin{tabularx}{\textwidth}{|c|c|c|X|}\hline%
       \raisebox{-0.5\height}{\rule{0.2\textwidth}{1cm}} & Dokumententitel & 
        \begin{tabular}{@{}l@{}}Project:\\Document No:\\Issue No:\\Issue Date:\\Page:\\Contents\end{tabular} & 
        \begin{tabular}{@{}l@{}}Astra\\Langer Dokumententitel\\2\\22.11.2013\\1\\43\end{tabular}\\\hline
\end{tabularx}


\end{document}

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

Die Tabelle kann man unterschiedlich formatieren. Das hängt zum Beispiel auch davon ab, ob einzelne Spalten eine vorgegebene Breite haben sollen. Neben Ulrikes Vorschlag sind hier noch zwei weitere, ebenfalls mit tabularx.
\documentclass{scrartcl} 
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc} 
\usepackage[ngerman]{babel}

\usepackage[top=5cm,headheight=3cm]{geometry}

\usepackage{graphicx} 
\usepackage{tabularx} %lädt auch das Paket array
\usepackage{lastpage}% zum Ermitteln der Gesamtseitenzahl

\usepackage[automark]{scrpage2}
\clearscrheadfoot
\chead[\Kopfzeile]{\Kopfzeile}
\setkomafont{pageheadfoot}{\normalfont\small}
\pagestyle{scrheadings}

%\newcommand\Kopfzeile{% mit „verschachtelten“ Tabellen
  %\begin{tabularx}{\textwidth}{|m{0.2\textwidth}|>{\bfseries\centering\hspace{0pt}}X|c|c|}\hline% 
    %\rule{\linewidth}{1cm} 
    %& Dokumententitel 
    %&\begin{tabular}{@{}>{\bfseries}l@{}}
      %Project:\\Document No:\\Issue No:\\Issue Date:\\Page:\\Contents:
      %\end{tabular}
    %&\begin{tabular}{@{}l@{}}
      %Astra\\Langer Dokumententitel\\2\\22.11.2013\\\pagemark\\\pageref{LastPage}
      %\end{tabular}
    %\\\hline 
  %\end{tabularx}%
%}

\newcommand\Kopfzeile{% mit fest vorgegebener Breite für die 3. und 4. Spalte
  \begin{tabularx}{\textwidth}{|m{0.2\textwidth}|
      >{\bfseries\centering\hspace{0pt}}X|>{\bfseries\raggedright\arraybackslash}m{2.8cm}|
      >{\raggedright\arraybackslash}m{4cm}|}
    \hline% 
    \rule{\linewidth}{1cm} 
    & Dokumententitel 
    & Project:\newline Document No:\newline Issue No:\newline
      Issue Date:\newline Page:\newline Contents:
    & Astra\newline Langer Dokumententitel\newline 2\newline
      22.11.2013 \newline \pagemark \newline \pageref{LastPage}
    \\\hline 
  \end{tabularx}%
}

\usepackage{blindtext}% für Fülltext zum Testen

\begin{document}
\blinddocument
\end{document}
Gruß
Elke

CollmDante
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 80
Registriert: So 9. Jan 2011, 10:00
Wohnort: Wermsdorf

Beitrag von CollmDante »

Hier noch ein anderer Weg mit dem Paket tabu und multirow, so kann man auf verschachtelte Tabellen verzichten:
\documentclass[11pt]{scrartcl}
\usepackage{ucs} %veraltet
\usepackage[utf8]{inputenc} %so besser
\usepackage[ngerman]{babel} %
\usepackage{amsmath,amssymb,amstext}
\usepackage{graphicx}
\usepackage[automark]{scrpage2}
\usepackage[svgnames]{xcolor}
\usepackage{booktabs,tabu} % Paket für Tabellen
\usepackage{multirow} % Zellen vertikal zusammenfassen 
\usepackage{array} 

\pagestyle{scrheadings}

\title{Testing}
\author{Max Mustermann}

\pagestyle{scrheadings}

\begin{document}
\begin{table}
   \begin{tabu} to \textwidth {|c|X[0.8]|X[0.8]|X[1.2]|} %siehe Dok zu tabu
   \hline%
   \multirow{6}{*}{\rule{0.2\textwidth}{1cm}} &\multirow{6}{*}{Dokumententitel}     & Project:& Astra\\
     & & Document No:& Langer Dokumententitel\\
     & & Issue No:& 2\\
     & & Issue Date:& 22.11.2013\\
     & & Page:& 1\\
     & & Contents & 43\\
     \hline
  \end{tabu}
\end{table}

\end{document}
Es gibt halt viele Wege.
Gruß Jens
Die Kugel ist der vollendete Kompromiss, sie kann nirgendwo anecken.
Paul Leip

wooosh
Forum-Anfänger
Forum-Anfänger
Beiträge: 18
Registriert: Mi 20. Nov 2013, 18:40

Beitrag von wooosh »

Wow! Ich habe nicht damit gerechnet so schnell so tolle Antworten zu bekommen. Herzlichen Dank! Ich werde wohl eine Kombination aus euren Lösungen verwenden. :)

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

Bezüglich des eigentlich schönen Paketes tabu habe ich an verschiedenen Stellen gelesen, dass irgendwann eine neue Version herauskommen soll, die zumindest in Teilen nicht kompatibel zu der jetzigen sein soll.

Gruß
Elke

wooosh
Forum-Anfänger
Forum-Anfänger
Beiträge: 18
Registriert: Mi 20. Nov 2013, 18:40

Beitrag von wooosh »

Oh okay, gut zu wissen.

Elke, ich spiele gerade mit deiner Lösung rum. Ich würde die Kopfzeile gerne doch breiter als den Text machen. Zunächst habe ich ganz naiv die Tabellenbreite auf 1.2\textwidth gesetzt. Das funktioniert auch so halb. Leider wird die Tabelle nur nach rechts verlängert. Ich muss also den linken Rand verkleinern.
Ich habe dann versucht statt \chead einfach \ihead oder \ohead zu nutzen, aber das ändert leider auch nichts.

Und eine Frage noch:
Du vergrößerst ja mit
\usepackage[top=5cm,headheight=3cm]{geometry}
den Header. Ich habe irgendwo gelesen, dass man dann auch an anderer Stelle den Textbereich entsprechend verkleinern muss, da sich sonst Header und Text überschneiden. Dies geschieht aber bei dir nicht. Ist die Info falsch, oder wieso klappt das bei dir?

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

Bei Verwendung von scrpage2 kannst du mit \setheadwidth{1.2\textwidth} die Breite der Kopfzeile anpassen. Als Breitenangabe bei tabularx empfiehlt sich dann aber \linewidth, also \begin{tabularx}{\linewidth}{...}.
\setheadwidth{1.2\textwidth}

\newcommand\Kopfzeile{% mit fest vorgegebener Breite für die 3. und 4. Spalte 
   \begin{tabularx}{\linewidth}{|m{0.2\textwidth}| 
       >{\bfseries\centering\hspace{0pt}}X|>{\bfseries\raggedright\arraybackslash}m{2.8cm}| 
       >{\raggedright\arraybackslash}m{4cm}|} 
     \hline%  
     \rule{\linewidth}{1cm} 
     & Dokumententitel 
     & Project:\newline Document No:\newline Issue No:\newline 
       Issue Date:\newline Page:\newline Contents: 
     & Astra\newline Langer Dokumententitel\newline 2\newline 
       22.11.2013 \newline \pagemark \newline \pageref{LastPage} 
     \\\hline 
   \end{tabularx}% 
} 
Das Paket geometry passt die anderen Werte entsprechend an. Ich hab das Paket auch deshalb genommen, weil du eventuell auch Vorgaben für die Ränder hast. Nähere Infos dazu findest du in der Dokumentation zu geometry.

Gruß
Elke

wooosh
Forum-Anfänger
Forum-Anfänger
Beiträge: 18
Registriert: Mi 20. Nov 2013, 18:40

Beitrag von wooosh »

Aha! \setheadwidth klingt logisch. Hui, trotzdem nicht ganz einfach zum gewünschten Ergebnis zu kommen. Aber dranbleiben ist hier vermutlich die Devise. :)
Ich habe gerade noch mal nach tabu gesucht. Klingt echt so, als ob der Entwickler nicht vor hat die neue Version abwärtskompatibel zu gestalten.
Siehe hier.

Diese [url] und
 Tags sind ja etwas widerspenstig..

Benutzeravatar
Johannes_B
Moderator
Moderator
Beiträge: 5079
Registriert: Do 1. Nov 2012, 14:55
Kontaktdaten:

Beitrag von Johannes_B »

[quote="wooosh"]Diese [url] und
 Tags sind ja etwas widerspenstig..[/quote]

Eigentlich nicht, nach ner Weile setzt du die ohne nachzudenken von Hand, genau wie bei LaTeX. 

Dranbleiben ist wirklich die Devise.
TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?

Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.

Antworten