为“数组”添加除第一行之外的额外行高

为“数组”添加除第一行之外的额外行高

我知道,对于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} 

输出:在此处输入图片描述 解释:我确实希望顶线与字母的顶部字形相邻,例如Cd等。这就是为什么我之前将设置\arraystretch0。(否则,像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} 

在此处输入图片描述

相关内容