Mehrzeilige Tabelle: Einrückung der ersten Zeile aufheben

Mehrzeilige Tabelle: Einrückung der ersten Zeile aufheben

In der pdfLaTeX- tabularUmgebung wird die erste Zeile jeder \multirowZelle eingerückt. Egal, ob ich als Spaltenbezeichner l, roder verwende. Wie werde ich das los?!?p

Hier ist der Screenshot:

Bildbeschreibung hier eingeben

Hier ist mein Code:

\NeedsTeXFormat{LaTeX2e}
\documentclass[a4paper,10pt]{article}
\pagestyle{empty}

\usepackage{array}
\usepackage{multirow}
\usepackage{colortbl}
\usepackage{pbox}

\usepackage[polish]{babel}
\usepackage[utf8]{inputenc}
\usepackage[OT4]{fontenc}

\usepackage[lmargin=2cm,rmargin=2cm,tmargin=1.5cm,bmargin=1.5cm]{geometry}
\usepackage{graphicx}
\usepackage{sectsty}
\allsectionsfont{\underline}

\usepackage[pdftex]{hyperref}
\hypersetup{pdfborder={0 0 0 0},colorlinks=true,urlcolor=blue}

\fontencoding{T1}
\fontfamily{qpl}
\fontseries{m}
\fontshape{n}

\newlength{\rowA}
\setlength{\rowA}{3.5ex}
\newcommand{\strutA}{
\rule[-0.2\rowA]{0pt}{\rowA}
}

\newlength{\rowB}
\setlength{\rowB}{6.5ex}
\newcommand{\strutB}{
\rule[-0.55\rowB]{0pt}{\rowB}
}

\newlength{\rowD}
\setlength{\rowD}{6ex}
\newcommand{\strutD}{
\rule[-0.6\rowD]{0pt}{\rowD}
}

\newcommand{\vatexempt} {
\pbox[t]{2cm}{Nie podlega\\Exempt}
}

% table cell with dark background
\newcommand{\itg} {
\cellcolor[gray]{.8}
\setlength{\parindent}{0pt}
}
% table header
\newcommand{\ith} {
\cellcolor[gray]{.8}
\setlength{\parindent}{0pt}
}

\setlength{\parindent}{0pt}
\setlength{\parskip}{7.2pt}

\begin{document}
\begin{fussy}

\begin{tabular}{|r|p{4cm}|r|r|r|r|r|r|}
\hline
\ith\strutA No.&\ith&\multicolumn{1}{p{0.6cm}|}{\multirow{2}{0.6cm}{\ith Q-tity}}&\ith&\ith&\multicolumn{2}{c|}{\ith VAT}&\ith\\
\cline{6-7}
\ith\strutD&\multicolumn{1}{p{4cm}|}{\multirow{-2}{4cm}{\ith Service or commodity name}}&\ith&\multicolumn{1}{p{2cm}|}{\multirow{-2}{2cm}{\ith Net unit price (EUR)}}&\multicolumn{1}{p{2cm}|}{\multirow{-2}{2cm}{\ith Net value (EUR)}}&\multicolumn{1}{p{2cm}|}{\ith Rate (\%)}&\multicolumn{1}{p{1.2cm}|}{\ith Amount (EUR)}&\multicolumn{1}{p{2cm}|}{\multirow{-2}{2cm}{\ith Gross value (EUR)}}\\
\hline
\strutD 1 & screwdrivers 10 pack & 1 & 123 & 123 & \vatexempt & 0 & 123\\
\hline
\multicolumn{2}{l|}{} & \multicolumn{2}{l}{\itg\strutA SUMA / TOTAL:} & \itg 123 &\itg&\itg 0 &\itg 123\\
\cline{3-8}
\end{tabular}

\end{fussy}
\end{document}

Ich verwende diese \multicolumn{1}Optimierungen, um den Inhalt der Tabellenkörperzellen rechtsbündig auszurichten (das sind Beträge) und den Inhalt der Kopfzellen im Blocksatz auszurichten, ABER OHNE EINZUG!

Eigentlich wäre ich auch mit einem linksbündigen Inhalt der Kopfzelle zufrieden, ABER MIT SILIKONTRENNUNG. Das könnte sogar noch besser sein. (Wie macht man das?)

Ich verwende es, \multirow{-2}um den Inhalt über den Hintergrund zu malen, nicht darunter. :o)

Antwort1

Zum Vergleich: So kann man dieselbe Tabelle in ConTeXt setzen. Beachten Sie, dass alle Setup-Befehle außerhalb der Tabelle verschoben werden können und der Tabelleninhalt sauber gesetzt werden kann.

\setupbodyfont[10pt]
\startsetups invoice
  \setupTABLE[column][each][align={flushright}]
  \setupTABLE[header][background=color,backgroundcolor=gray, align={middle,lohi}]
  \setupTABLE[column][2][width=4cm, align=normal]
  \setupTABLE[column][4,5,6,7,8][width=2cm]
  \setupTABLE[row][last][background=color,backgroundcolor=gray]
  \setupTABLE[1,2][last][frame=off,background=]
  \setupTABLE[3,5,6,7][last][frame=off, topframe=on, bottomframe=on]
  \setupTABLE[3,6][last][leftframe=on]
\stopsetups

\starttext
\bTABLE[setups={invoice}]
  \bTABLEhead
    \bTR
      \bTD[ny=2] No.                       \eTD 
      \bTD[ny=2] Service or commodity name \eTD 
      \bTD[ny=2] Q-tity                    \eTD 
      \bTD[ny=2] Net Unit Price (EUR)      \eTD 
      \bTD[ny=2] Net value (EUR)           \eTD 
      \bTD[nx=2] Value                     \eTD 
      \bTD[ny=2] Gross value (EUR)         \eTD 
    \eTR
    \bTR
      \bTD Rate (\%)    \eTD
      \bTD Amount (EUR) \eTD
    \eTR
  \eTABLEhead
  \bTABLEbody
    \bTR
      \bTD 1                    \eTD 
      \bTD screwdrivers 10 pack \eTD 
      \bTD 1                    \eTD 
      \bTD 123                  \eTD 
      \bTD 123                  \eTD 
      \bTD[align=normal] 
           Nie podlega Exempt   \eTD 
      \bTD 0                    \eTD 
      \bTD 123                  \eTD 
    \eTR
  \eTABLEbody
  \bTABLEfoot
    \bTR
      \bTD[nx=2]            \eTD 
      \bTD[nx=2] SUMA/TABLE \eTD 
      \bTD 123              \eTD 
      \bTD                  \eTD 
      \bTD 0                \eTD 
      \bTD 123              \eTD 
    \eTR
  \eTABLEfoot

\eTABLE
\stoptext

was gibt

Bildbeschreibung hier eingeben

Ich habe nicht versucht, die Breite der verschiedenen Spalten anzupassen, daher unterscheiden sie sich von dem, was Sie in LaTeX erhalten haben.

Antwort2

Die „Einrückung“ rührt von unechten Leerzeichen in Ihrer \newcommandDefinition her \ith(wie von Aditya erwähnt). Die folgende Definition entfernt dies (und erfordert nicht \setlength{\parindent}{0pt}):

% table header
\newcommand{\ith}{%
  \cellcolor[gray]{.8}%
}

Beachten Sie die Hinzufügung von %am Ende der Zeilen. Dasselbe gilt natürlich auch für die anderen in Ihrem Beispiel definierten Befehle ( \itg, \strutD, \vatexempt, ...).

Die Gründe hierfür finden Sie unterWozu dienen Prozentzeichen am Zeilenende?

verwandte Informationen