Dynamische Zeilenhöhe in Tabelle

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Dynamische Zeilenhöhe in Tabelle

Background-color in Multirow

von EliasvonB » Mo 12. Feb 2018, 10:47

Guten Tag,

ich habe mittlerweile eine Lösung für mein Problem gefunden:
\documentclass[a4paper,10pt]{article}
\usepackage[utf8x]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{longtable}
\usepackage[left=1cm,right=1cm,top=0.8cm,bottom=0.9cm,headheight=0.3cm,footskip=0.3cm,includehead,includefoot]{geometry}
\usepackage{graphicx}
\usepackage{fancyhdr}
\usepackage{lastpage}
\usepackage{multirow}
\usepackage[table]{xcolor}
\pagestyle{empty}
\def\TotalPages=\pageref{LastPage}
\newcommand{\pagemark}{\thepage\ / \pageref{LastPage}}
\renewcommand{\familydefault}{\sfdefault}
\pagestyle{fancy}
\fancyhf{}
\renewcommand{\headrulewidth}{0.0pt}
\rfoot{\pagemark}
\begin{document}
\begin{longtable}{p{2.2cm}p{5.6cm}p{1.2cm}p{2.2cm}p{5.6cm}}
\multirow{2}{*}{\includegraphics[width=\linewidth]{test99.png}} & \begin{minipage}[t]{6cm} \leavevmode \newline i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i \newline 00000/00 \end{minipage} & & \multirow{2}{*}{\includegraphics[width=\linewidth]{test99.png}} & \begin{minipage}[t]{6cm} \leavevmode \newline i i i i i i i i i i \newline 00000/00 \end{minipage} \tabularnewline [1.62cm] \nopagebreak
                                                                & \begin{minipage}[b]{6cm} \hspace*{2.3cm} BARCODE \end{minipage} & & & \begin{minipage}[b]{6cm} \hspace*{2.3cm} BARCODE \end{minipage} \tabularnewline [0.5cm]

\multirow{2}{*}{\includegraphics[width=\linewidth]{test99.png}} & \begin{minipage}[t]{6cm} \leavevmode \newline i i i i i i i i i i \newline 00000/00 \end{minipage} & & \multirow{2}{*}{\includegraphics[width=\linewidth]{test99.png}} & \begin{minipage}[t]{6cm} \leavevmode \newline i i i i i i i i i i \newline 00000/00 \end{minipage} \tabularnewline [1.62cm] \nopagebreak
                                                                & \begin{minipage}[b]{6cm} \hspace*{2.3cm} BARCODE \end{minipage} & & & \begin{minipage}[b]{6cm} \hspace*{2.3cm} BARCODE \end{minipage} \tabularnewline [0.5cm]
\end{longtable}
\end{document}

Nun gibt es aber leider ein neues Problem und zwar würde ich gerne jeder zweiten Reihe (eine Reihe = zwei Zeilen) eine Hintergrundfarbe geben. Dabei bin ich auf das bekannte Problem mit \rowcolor und \multirow gestoßen.
Viele konnten das Problem lösen, indem sie die \multirow am Ende platziert haben und die Spaltenanzahl dann negiert haben. Leider funktioniert das in meinem Fall nicht oder ich habe es falsch umgesetzt.
Ich hoffe, dass mir dazu jemand einen Tipp geben kann. Anbei die Ausgaben beider Quellcodes.
\documentclass[a4paper,10pt]{article}
\usepackage[utf8x]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{longtable}
\usepackage[left=1cm,right=1cm,top=0.8cm,bottom=0.9cm,headheight=0.3cm,footskip=0.3cm,includehead,includefoot]{geometry}
\usepackage{graphicx}
\usepackage{fancyhdr}
\usepackage{lastpage}
\usepackage{multirow}
\usepackage[table]{xcolor}
\pagestyle{empty}
\def\TotalPages=\pageref{LastPage}
\newcommand{\pagemark}{\thepage\ / \pageref{LastPage}}
\renewcommand{\familydefault}{\sfdefault}
\pagestyle{fancy}
\fancyhf{}
\renewcommand{\headrulewidth}{0.0pt}
\rfoot{\pagemark}
\begin{document}
\begin{longtable}{p{2.2cm}p{5.6cm}p{1.2cm}p{2.2cm}p{5.6cm}}
\rowcolor{lightgray!25}                                                                  & \begin{minipage}[t]{6cm} \leavevmode \newline i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i \newline 00000/00 \end{minipage} & & & \begin{minipage}[t]{6cm} \leavevmode \newline i i i i i i i i i i \newline 00000/00 \end{minipage} \tabularnewline [1.62cm] \nopagebreak
\rowcolor{lightgray!25} \multirow{-2}{*}{\includegraphics[width=\linewidth]{test99.png}} & \begin{minipage}[b]{6cm} \hspace*{2.3cm} BARCODE \end{minipage} & & \multirow{-2}{*}{\includegraphics[width=\linewidth]{test99.png}} & \begin{minipage}[b]{6cm} \hspace*{2.3cm} BARCODE \end{minipage} \tabularnewline [0.5cm]

                                                                 & \begin{minipage}[t]{6cm} \leavevmode \newline i i i i i i i i i i i i \newline 00000/00 \end{minipage} & & & \begin{minipage}[t]{6cm} \leavevmode \newline i i i i i i i i i i \newline 00000/00 \end{minipage} \tabularnewline [1.62cm] \nopagebreak
\multirow{-2}{*}{\includegraphics[width=\linewidth]{test99.png}} & \begin{minipage}[b]{6cm} \hspace*{2.3cm} BARCODE \end{minipage} & & \multirow{-2}{*}{\includegraphics[width=\linewidth]{test99.png}} & \begin{minipage}[b]{6cm} \hspace*{2.3cm} BARCODE \end{minipage} \tabularnewline [0.5cm]

\rowcolor{lightgray!25}                                                                  & \begin{minipage}[t]{6cm} \leavevmode \newline i i i i i i i i i i i i i \newline 00000/00 \end{minipage} & & & \begin{minipage}[t]{6cm} \leavevmode \newline i i i i i i i i i i \newline 00000/00 \end{minipage} \tabularnewline [1.62cm] \nopagebreak
\rowcolor{lightgray!25} \multirow{-2}{*}{\includegraphics[width=\linewidth]{test99.png}} & \begin{minipage}[b]{6cm} \hspace*{2.3cm} BARCODE \end{minipage} & & \multirow{-2}{*}{\includegraphics[width=\linewidth]{test99.png}} & \begin{minipage}[b]{6cm} \hspace*{2.3cm} BARCODE \end{minipage} \tabularnewline [0.5cm]
\end{longtable}
\end{document}
Schon mal vielen Dank im voraus!

Gruß EliasvonB
Dateianhänge
second_code.pdf
(11.29 KiB) 142-mal heruntergeladen
first_code.pdf
(11.03 KiB) 147-mal heruntergeladen

Dynamische Zeilenhöhe in Tabelle

von EliasvonB » Do 1. Feb 2018, 10:59

Guten Tag,

nach langen Recherchen und einer Menge ausprobieren ohne Erfolg, hoffe ich nun, dass es hier jemanden gibt, der mir bei meinem Problem weiterhelfen kann.

Das Problem lässt sich wie folgt beschreiben: der Text (i i i i..) hat eine variable Anzahl an Zeichen. Daher ist es entscheidend, wie sich die anderen Elemente verhalten. Das gewünschte Verhalten ist, dass, solange der Text keinen Overflow erzeugt, die beiden Bilder und die beiden Barcodes einer Zeile jeweils auf der selben Höhe sind. Richtig zu sehen bei den unteren beiden Zeilen.
Kommt es allerdings zu einem Overflow, soll sich der Abstand zwischen den Tabellenzeilen vergrößern, die beiden Barcodes einer Zeile sollen allerdings weiterhin auf der selben Höhe stehen(!).

Zunächst bin ich davon ausgegangen das ein \vfill zwischen dem "0000/00" und dem Barcode mir bei der Sache helfen kann, allerdings musste ich dann feststellen, dass dies innerhalb einer \minipage nicht funktioniert.
Eine feste Höhe mit \vspace oder eine \minipage mit fester Höhe kann nicht benutzt werden.

Hat jemand eine Idee, wie sich die Anforderungen realisieren lassen?

Zur besseren Veranschaulichung anbei auch noch ein Bild des jetzigen Ergebnisses aus unten stehendem Code.

Vielen Dank!

Gruß EliasvonB

\documentclass[a4paper,10pt]{article}
\usepackage[utf8x]{inputenc}
\usepackage{tabularx}
\usepackage{calc}
\usepackage{tabulary}
\usepackage[ngerman]{babel}
\usepackage{longtable}
\usepackage[left=1cm,right=1cm,top=1.1cm,bottom=1cm]{geometry}
\usepackage{graphicx}
\usepackage{eso-pic}
\usepackage{pst-barcode}
\usepackage[T1]{fontenc}
\usepackage{array}
\usepackage{fancyhdr}
\usepackage{lastpage}
\pagestyle{empty}
\usepackage{multirow}
\usepackage{booktabs}
\usepackage{ragged2e}
\RequirePackage{fix-cm} 
\usepackage{lmodern} 
\usepackage{booktabs} 
\usepackage{mwe}

\newcommand*{\topadjust}[1]{% 
  \raisebox{\dimexpr \ht\strutbox-\totalheight\relax}{#1}% 
}

\def\barcode#1#2#3#4#5#6#7{\begingroup%
  \dimen0=0.093em
  \def\stack##1##2{\oalign{##1\cr\hidewidth##2\hidewidth}}%
  \def\0##1{\kern##1\dimen0}%
  \def\1##1{\vrule height4ex width##1\dimen0}%
  \def\L##1{\ifcase##1\bc3211##1\or\bc2221##1\or\bc2122##1\or\bc1411##1%
    \or\bc1132##1\or\bc1231##1\or\bc1114##1\or\bc1312##1\or\bc1213##1%
    \or\bc3112##1\fi}%
  \def\R##1{\bgroup\let\next\1\let\1\0\let\0\next\L##1\egroup}%
  \def\G##1{\bgroup\let\bc\bcg\L##1\egroup}% reverse
  \def\bc##1##2##3##4##5{\stack{\0##1\1##2\0##3\1##4}##5}%
  \def\bcg##1##2##3##4##5{\stack{\0##4\1##3\0##2\1##1}##5}%
  \def\bcR##1##2##3##4##5##6{\R##1\R##2\R##3\R##4\R##5\R##6\11\01\11\09%
    \endgroup}%
  \stack{\09}#1\11\01\11\L#2%
  \ifcase#1\L#3\L#4\L#5\L#6\L#7\or\L#3\G#4\L#5\G#6\G#7%
    \or\L#3\G#4\G#5\L#6\G#7\or\L#3\G#4\G#5\G#6\L#7%
    \or\G#3\L#4\L#5\G#6\G#7\or\G#3\G#4\L#5\L#6\G#7%
    \or\G#3\G#4\G#5\L#6\L#7\or\G#3\L#4\G#5\L#6\G#7%
    \or\G#3\L#4\G#5\G#6\L#7\or\G#3\G#4\L#5\G#6\L#7%
  \fi\01\11\01\11\01\bcR}

\begin{document}
	\sffamily
	\begin{longtable}{>{\raggedright}p{0.12\textwidth}@{\quad}p{0.33\textwidth}p{0.03\textwidth}>{\raggedright}p{0.12\textwidth}@{\quad}p{0.33\textwidth}p{0.000001\textwidth}}

		\topadjust{\includegraphics[width=\linewidth]{test99.png}} & \begin{minipage}[t]{6cm} \leavevmode \newline i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i \newline 00000/00 \vfill \hspace*{2.6cm} \barcode 3041762288363 \end{minipage} & &
		\topadjust{\includegraphics[width=\linewidth]{test99.png}} & \begin{minipage}[t]{6cm} \leavevmode \newline i i i i i i i i i i i i i i \newline 00000/00 \end{minipage} \vfill \hspace*{2.6cm} \barcode 3041762288363 & \\[2.75cm]

		\topadjust{\includegraphics[width=\linewidth]{test99.png}} & \begin{minipage}[t]{6cm} \leavevmode \newline i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i \newline 00000/00 \vfill \hspace*{2.6cm} \barcode 3041762288363 \end{minipage} & &
		\topadjust{\includegraphics[width=\linewidth]{test99.png}} & \begin{minipage}[t]{6cm} \leavevmode \newline i i i i i i i i i i i i i i \newline 00000/00 \end{minipage} \vfill \hspace*{2.6cm} \barcode 3041762288363 & \\[2.75cm]
		
		\topadjust{\includegraphics[width=\linewidth]{test99.png}} & \begin{minipage}[t]{6cm} \leavevmode \newline i i i i i i i i i i i i i i  \newline 00000/00 \vfill \hspace*{2.6cm} \barcode 3041762288363 \end{minipage} & &
		\topadjust{\includegraphics[width=\linewidth]{test99.png}} & \begin{minipage}[t]{6cm} \leavevmode \newline i i i i i i i i i i i i i i \newline 00000/00 \end{minipage} \vfill \hspace*{2.6cm} \barcode 3041762288363 & \\[2.75cm]
		
		\topadjust{\includegraphics[width=\linewidth]{test99.png}} & \begin{minipage}[t]{6cm} \leavevmode \newline i i i i i i i i i i i i i i  \newline 00000/00 \vfill \hspace*{2.6cm} \barcode 3041762288363 \end{minipage} & &
		\topadjust{\includegraphics[width=\linewidth]{test99.png}} & \begin{minipage}[t]{6cm} \leavevmode \newline i i i i i i i i i i i i i i \newline 00000/00 \end{minipage} \vfill \hspace*{2.6cm} \barcode 3041762288363 & \\[2.75cm]
		
	\end{longtable}
\end{document}
[/code]
Dateianhänge
Forum_Beispiel.pdf
(27.12 KiB) 201-mal heruntergeladen

Nach oben