我在 LaTeX 中生成表格时遇到了多个问题。我需要以 pdf 格式输出。
第一个问题是,顶行是彩色的,单元格没有被划分,即垂直行丢失。请看下面
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[table,xcdraw]{xcolor}
\usepackage{multirow}
\usepackage[a4paper]{geometry}
\usepackage{tabularx}
\geometry{a4paper,tmargin=3.5cm, bmargin=2.5cm, lmargin=1.5cm, rmargin=1.5cm, headheight=3em, headsep=1.5cm, footskip=1cm}
\usepackage{color, colortbl}
\definecolor{mColor1}{rgb}{0.9,0.9,0.9}
\begin{document}
\begin{table}[h!]
\normalsize
\centering
\def\arraystretch{1.5}%
\begin{tabular}{|p{\dimexpr.25\textwidth} | p{\dimexpr.3\textwidth-2\tabcolsep} | p{\dimexpr.15\textwidth-2\tabcolsep} |p{\dimexpr.3\textwidth-2\tabcolsep}|}
\hline
\rowcolor{mColor1}
\textbf{\ Company Name \ } & \textbf{\ CIN/FCRN \ } & \textbf{\ Share \% \ } & \textbf{\ Type of Company \ } \\
\hline
Kingfisher Air Pvt. Ltd.& U72200KA2008PTC048012& 23 & Manufacturing \\
\hline
Tata Sky Air Pvt. Ltd.& L98700KA2008PTC048012& 34 & Financial and Banking \\
\hline
\end{tabular}
\end{table}
\end{document}
另外,创建的表格在不同的 PDF 查看器(Adobe、Foxit、Google PDF Viewer)中看起来不同,更重要的是,在同一程序中,在不同分辨率下,表格看起来也不同。
答案1
\setlength{\arrayrulewidth}{1pt}
这是已知的查看器问题。例如,您可以通过将规则宽度增加 来部分解决此问题。此外,\arraystretch
最好通过\renewcommand{\arraystretch}{1.5}
而不是 来更改\def{...}
。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[table,xcdraw]{xcolor}
\usepackage{multirow}
\usepackage[a4paper]{geometry}
\usepackage{tabularx}
\geometry{a4paper,tmargin=3.5cm, bmargin=2.5cm, lmargin=1.5cm, rmargin=1.5cm, headheight=3em, headsep=1.5cm, footskip=1cm}
\usepackage{color, colortbl}
\definecolor{mColor1}{rgb}{0.9,0.9,0.9}
\begin{document}
\begin{table}[h!]
\normalsize
\centering
\renewcommand{\arraystretch}{1.5}%
\setlength{\arrayrulewidth}{1pt}%
\begin{tabular}{|p{\dimexpr.25\textwidth} | p{\dimexpr.3\textwidth-2\tabcolsep} | p{\dimexpr.15\textwidth-2\tabcolsep} |p{\dimexpr.3\textwidth-2\tabcolsep}|}
\hline
\rowcolor{mColor1}
\textbf{\ Company Name \ } & \textbf{\ CIN/FCRN \ } & \textbf{\ Share \% \ } & \textbf{\ Type of Company \ } \\
\hline
Kingfisher Air Pvt. Ltd.& U72200KA2008PTC048012& 23 & Manufacturing \\
\hline
Tata Sky Air Pvt. Ltd.& L98700KA2008PTC048012& 34 & Financial and Banking \\
\hline
\end{tabular}
\end{table}
\end{document}
这是150%
在 Adobe Reader 中看到的,但其他查看器显示的伪影较少。
更好的方法是使用booktabs
。在这种情况下,表格在所有缩放级别均不显示任何物品,请参见100%
(不更改rulewidth
):
\begin{table}[h!]
\normalsize
\centering
\renewcommand{\arraystretch}{1.5}%
\begin{tabular}{p{\dimexpr.25\textwidth} p{\dimexpr.3\textwidth-2\tabcolsep} p{\dimexpr.15\textwidth-2\tabcolsep} p{\dimexpr.3\textwidth-2\tabcolsep}}
\toprule
\rowcolor{mColor1}
\textbf{Company Name} & \textbf{CIN/FCRN} & \textbf{Share \%} & \textbf{Type of Company} \\
\midrule
Kingfisher Air Pvt. Ltd.& U72200KA2008PTC048012& 23 & Manufacturing \\
\midrule
Tata Sky Air Pvt. Ltd.& L98700KA2008PTC048012& 34 & Financial and Banking \\
\bottomrule
\end{tabular}
\end{table}
答案2
软件包nicematrix
及其环境{NiceTabular}
专门用于避免此类问题。无论您使用哪种 PDF 查看器,规则似乎都不会消失。
\documentclass{article}
\usepackage[xcdraw]{xcolor}
\usepackage[a4paper]{geometry}
\geometry{a4paper,tmargin=3.5cm, bmargin=2.5cm, lmargin=1.5cm, rmargin=1.5cm, headheight=3em, headsep=1.5cm, footskip=1cm}
\usepackage{nicematrix}
\begin{document}
\begin{table}[h!]
\normalsize
\centering
\renewcommand{\arraystretch}{1.5}
\begin{NiceTabular}{X[25]X[30]X[15]X[30]}[hvlines]
\CodeBefore
\rowcolor[rgb]{0.9,0.9,0.9}{1}
\Body
\RowStyle[bold]{}
\ Company Name \ & \ CIN/FCRN \ & \ Share \% \ & \ Type of Company \ \\
Kingfisher Air Pvt. Ltd.& U72200KA2008PTC048012& 23 & Manufacturing \\
Tata Sky Air Pvt. Ltd.& L98700KA2008PTC048012& 34 & Financial and Banking \\
\end{NiceTabular}
\end{table}
\end{document}
您需要多次编译(因为nicematrix
在后台使用 PGF/Tikz 节点)。
答案3
使用该tabularray
软件包您将获得满意的结果:
表格的代码简短而干净:
\documentclass{article}
\usepackage[a4paper,
vmargin={3.5cm, 2.5cm}, hmargin={1.5cm, 1.5cm},
headheight=3em, headsep=1.5cm, footskip=1cm
]{geometry}
\usepackage[xcdraw]{xcolor}
\usepackage{tabularray}
\begin{document}
\begin{table}[ht]
\centering
\begin{tblr}{colspec={X[2.5,l]X[3,l]X[1.5,l]X[3,l]},
row{1} = {font=\bfseries, bg=gray9},
rowsep=3pt,
hlines, vlines,
}
Company Name & CIN/FCRN & Share \% & Type of Company \\
Kingfisher Air Pvt. Ltd. & U72200KA2008PTC048012 & 23 & Manufacturing \\
Tata Sky Air Pvt. Ltd. & L98700KA2008PTC048012 & 34 & Financial and Banking \\
\end{tblr}
\end{table}
\end{document}