多行表格:取消第一行縮排

多行表格:取消第一行縮排

在 pdfLaTeXtabular環境中,每個單元格的第一行\multirow都是縮排的。無論我是否使用l,rp作為列說明符。如何擺脫它?

這是螢幕截圖:

在此輸入影像描述

這是我的程式碼:

\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}

我正在使用這些\multicolumn{1}調整使表格主體單元格內容向右對齊(這些是數量),並使標題單元格內容合理但沒有縮進!

事實上,我也會對標題單元格內容向左刷新但帶有連字符感到滿意。那可能會更好。 (怎麼做?)

我用來\multirow{-2}將內容繪製在背景上,而不是在下面。 :o)

答案1

為了進行比較,這是在 ConTeXt 中排版同一張表格的方法。請注意,所有設定指令都可以移到表格之外,並且可以乾淨地排版表格內容。

\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

這使

在此輸入影像描述

我沒有嘗試調整不同列的寬度,因此它們與您在 LaTeX 中獲得的不同。

答案2

「縮排」源自於您\newcommand定義中的虛假空格\ith(如 Aditya 所提到的)。以下定義刪除了這一點(並且不需要\setlength{\parindent}{0pt}

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

%請注意在行末尾添加。當然,對於範例中定義的其他指令(\itg\strutD\vatexempt、 ...)也是如此。

有關其背後的動機,請參閱行尾百分號有什麼用?

相關內容