我知道,对于tabular
,有\extrarowheight
可以为每行添加额外的行高。现在我有一个特殊目的,我必须需要环境array
。但是,\extrarowheight
在 中不起作用array
。如果我不想手动\\[1ex]
在每一行添加,有没有办法在 中添加额外的行高array
?此外,我希望第一行的垂直空间保持不变。
\documentclass[12pt,a4paper]{book}
\usepackage[margin=2cm, top=2cm]{geometry}
\usepackage{amsmath,array}
\parindent=0pt
\begin{document}
\renewcommand{\arraystretch}{0}
\setlength{\extrarowheight}{15pt} % not work
$\begin{array}{l}\hline cccc\\cccc\\\hline\end{array}$
$\begin{array}{l}\hline ccdd\\cccc\\\hline\end{array}$
$\begin{array}{l}\hline ccdd\\ccgg\\\hline\end{array}$
\end{document}
输出:
解释:我确实希望顶线与字母的顶部字形相邻,例如C,d等。这就是为什么我之前将设置\arraystretch
为0
。(否则,像C如果它是该行中最高的字母,则会留下顶线!)
答案1
不改变\arraystretch
:
\documentclass[]{article}
\begin{document}
$\begin{array}[]{l}
\hline
\noalign{\vspace{-1ex}}
cccc\\
cccc\\
\hline
\end{array}$
\end{document}
尽管我确实如此不是鼓励以下做法,它会满足您的要求。不过,我认为这不是一个好主意,您不应该使用它。
\documentclass[]{article}
\usepackage{array}
\begin{document}
$\begin{array}[]{l}
\hline
\noalign{\vspace{-1ex}}
dcccc\\
cccc\\
\hline
\end{array}$
\bgroup
\newcommand\mystretchedbackslash{\renewcommand\\[1][2ex]{\tabularnewline[##1]}}%
\def\arraystretch{0}%
$\begin{array}[]{>{\mystretchedbackslash}l}
\hline
dcccc\\
cccc\\[1ex]
\hline
\end{array}$
\egroup
\end{document}
答案2
堆叠?行数据之间的默认值为 3pt,但可以使用 更改默认值\setstackgap{S}{...}
。
\documentclass[12pt,a4paper]{book}
\usepackage[margin=2cm, top=2cm]{geometry}
\usepackage{amsmath,array}
\parindent=0pt
\usepackage[usestackEOL]{stackengine}
\stackMath
\begin{document}
\renewcommand{\arraystretch}{0}
\setlength{\extrarowheight}{15pt} % not work
$\begin{array}{l}\hline \Shortstack[l]{cccc\\cccc}\\\hline\end{array}$
$\begin{array}{l}\hline \Shortstack[l]{ccdd\\cccc}\\\hline\end{array}$
$\begin{array}{l}\hline \Shortstack[l]{ccdd\\ccgg}\\\hline\end{array}$
\end{document}
您还可以选择短堆(恒定行间间隙)或长堆(恒定行间基线跳跃)。稍微更改数据即可显示差异...顶行,短;底行,长:
\documentclass[12pt,a4paper]{book}
\usepackage[margin=2cm, top=2cm]{geometry}
\usepackage{amsmath,array}
\parindent=0pt
\usepackage[usestackEOL]{stackengine}
\stackMath
\begin{document}
\renewcommand{\arraystretch}{0}
$\begin{array}{l}\hline \Shortstack[l]{ccdg\\cccc}\\\hline\end{array}$
$\begin{array}{l}\hline \Shortstack[l]{ccdd\\cccc}\\\hline\end{array}$
$\begin{array}{l}\hline \Shortstack[l]{ccdd\\ccgg}\\\hline\end{array}$
\bigskip
$\begin{array}{l}\hline \Longstack[l]{ccdg\\cccc}\\\hline\end{array}$
$\begin{array}{l}\hline \Longstack[l]{ccdd\\cccc}\\\hline\end{array}$
$\begin{array}{l}\hline \Longstack[l]{ccdd\\ccgg}\\\hline\end{array}$
\end{document}