![多行表格:取消第一行縮排](https://rvso.com/image/254731/%E5%A4%9A%E8%A1%8C%E8%A1%A8%E6%A0%BC%EF%BC%9A%E5%8F%96%E6%B6%88%E7%AC%AC%E4%B8%80%E8%A1%8C%E7%B8%AE%E6%8E%92.png)
在 pdfLaTeXtabular
環境中,每個單元格的第一行\multirow
都是縮排的。無論我是否使用l
,r
或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
、 ...)也是如此。
有關其背後的動機,請參閱行尾百分號有什麼用?