환경 array
에서는 를 사용하여 \arraystretch
( 패키지가 로드된 \extrarowheight
경우 array
) 행 사이에 "선행"을 추가합니다 array
. 또한 이 수직 공간은 첫 번째 행 위와 마지막 행 아래에 추가됩니다.
의 행 간 공간을 유지하면서 첫 번째 행 위와 마지막 행 아래의 공간을 억제하는 방법이 있습니까 array
?
다음 코드에 정의된 대로 myarray
및 mysolidarray
( \arraystretch
으로 설정됨)을 사용하여 출력을 비교합니다 . 0
나는 둘 사이에 뭔가를 찾고 있습니다.
\documentclass{standalone}
\usepackage{array}
\usepackage{amsmath}
\newenvironment{myarray}%
{\begin{array}[t]{@{}l@{}}}%
{\end{array}}
\newenvironment{mysolidarray}%
{%
\def\arraystretch{0}%
\begin{array}[t]{@{}l@{}}
}%
{\end{array}}
\begin{document}
\fboxsep=0pt
\begin{tabular}{l}
\verb|$P + Q$|: \fbox{$P + Q$}
\\
\verb|myarray|:
\fbox{$
\begin{myarray}
P + Q
\end{myarray}
$}
\fbox{$
\begin{myarray}
P + {} \\ Q
\end{myarray}
$}
\\
\verb|mysolidarray|:
\fbox{$
\begin{mysolidarray}
P + Q
\end{mysolidarray}
$}
\fbox{$
\begin{mysolidarray}
P + {} \\ Q
\end{mysolidarray}
$}
\end{tabular}
\end{document}
답변1
첫 번째 행의 높이를 얻기 위해 먼저 배열을 조판한 다음 마지막 행의 깊이를 얻기 위해 배열을 조판하는 것을 측정할 수 있습니다.
\documentclass{article}
\usepackage{array}
\usepackage{environ}
\makeatletter
\NewEnviron{mysolidarray}[1]{%
\begingroup
\def\arraystretch{0}%
\extrarowheight=\z@
\sbox\z@{$\begin{array}[t]{#1}\BODY\end{array}$}%
\sbox\tw@{$\begin{array}[b]{#1}\BODY\end{array}$}%
\expandafter\endgroup\expandafter
\firstlineheight\the\ht\expandafter\z@\expandafter
\lastlinedepth\the\dp\tw@\relax
\sbox{\solidarraybox}{$\begin{array}[t]{#1}\BODY\end{array}\m@th$}
\ht\solidarraybox=\firstlineheight
\dp\solidarraybox=\dimexpr\dp\solidarraybox-\dp\@arstrutbox+\lastlinedepth\relax
\box\solidarraybox
}
\makeatother
\newdimen\firstlineheight
\newdimen\lastlinedepth
\newsavebox{\solidarraybox}
\begin{document}
\fboxsep=0pt
\begin{tabular}{lll}
\verb|$P + Q$| & \fbox{$P + Q$}
\\
\verb|array|&
\fbox{$
\begin{array}[t]{@{}l@{}}
P + Q
\end{array}
$}
\fbox{$
\begin{array}[t]{@{}l@{}}
P + {} \\ Q
\end{array}
$}
&\extrarowheight=2pt
\fbox{$
\begin{array}[t]{@{}l@{}}
P + Q
\end{array}
$}
\fbox{$
\begin{array}[t]{@{}l@{}}
P + {} \\ Q
\end{array}
$}
\\
\verb|mysolidarray|&
\fbox{$
\begin{mysolidarray}{@{}l@{}}
P + Q
\end{mysolidarray}
$}
\fbox{$
\begin{mysolidarray}{@{}l@{}}
P + {} \\ Q
\end{mysolidarray}
$}
&\extrarowheight=2pt
\fbox{$
\begin{mysolidarray}{@{}l@{}}
P + Q
\end{mysolidarray}
$}
\fbox{$
\begin{mysolidarray}{@{}l@{}}
P + {} \\ Q
\end{mysolidarray}
$}
\end{tabular}
\end{document}
답변2
무슨 뜻인가요 \setlength{\extrarowheight}{-1pt}
?
\documentclass{standalone}
\usepackage{array}
\usepackage{amsmath}
\newenvironment{myarray}%
{ \setlength{\extrarowheight}{-1pt}
\begin{array}[t]{@{}l@{}}}%
{\end{array}}
\newenvironment{mysolidarray}%
{%
\def\arraystretch{0}%
\begin{array}[t]{@{}l@{}}
}%
{\end{array}}
\begin{document}
\fboxsep=0pt
\begin{tabular}{l}
\verb|$P + Q$|: \fbox{$P + Q$}
\\
\verb|myarray|:
\fbox{$
\begin{myarray}
P + Q
\end{myarray}
$}
\fbox{$
\begin{myarray}
P + {} \\ Q
\end{myarray}
$}
\\
\verb|mysolidarray|:
\fbox{$
\begin{mysolidarray}
P + Q
\end{mysolidarray}
$}
\fbox{$
\begin{mysolidarray}
P + {} \\ Q
\end{mysolidarray}
$}
\end{tabular}
\end{document}
답변3
수직 규칙을 사용하지 않는 경우(권장 사항) 테이블의 첫 번째 \hline 바로 뒤와 마지막 \hline 바로 앞에서 사용하여 모든 권한을 가질 \addlinespace[some value]
수 있습니다.booktabs
\documentclass{article}
\usepackage{array, booktabs}
\usepackage{amsmath}
\usepackage[table]{xcolor}
\newenvironment{myarray}%
{\begin{array}[t]{@{}l@{}}}%
{\end{array}}
\newenvironment{mysolidarray}%
{%
\def\arraystretch{0}%
\begin{array}[t]{@{}l@{}}
}%
{\end{array}}
\begin{document}
\fboxsep=0pt
\begin{tabular}{l}
\verb|$P + Q$|: \fbox{$P + Q$}
\\
\verb|myarray|:
\fbox{$
\begin{myarray}
P + Q
\end{myarray}
$}
\fbox{$
\begin{myarray}
P + {} \\ Q
\end{myarray}
$}
\\
\verb|mysolidarray|:
\fbox{$
\begin{mysolidarray}
P + Q
\end{mysolidarray}
$}
\fbox{$
\begin{mysolidarray}
P + {} \\ Q
\end{mysolidarray}
$}
\\[3ex]
\verb|othersolidarray|:
$
\begin{array}{@{}l@{}}%
\arrayrulecolor{red}
\hline\addlinespace[-1pt]
P + Q \\ Q + P
\\
\addlinespace[-1.25pt]
\hline
\end{array}
$
$
\begin{array}{@{}l@{}}%
\arrayrulecolor{red}
\hline\addlinespace[-1pt]
P + {} \\ Q
\\
\addlinespace[-1.25pt]
\hline
\end{array}
$
\end{tabular}
\end{document}