多行表格:取消缩进第一行

多行表格:取消缩进第一行

在 pdfLaTeXtabular环境中,每个单元格的第一行\multirow都会缩进。无论我使用lr还是p作为列说明符。如何摆脱它?!?

以下是屏幕截图:

在此处输入图片描述

这是我的代码:

\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、 ...)。

有关其背后的动机,请参阅行末的百分号有什么用?

相关内容