我正在尝试制作一个宏,将文本排版为“跨越垂直线”,并且我正在使用表格:
\documentclass{article}
\begin{document}
\makeatletter
\newlength\tdv@temp
\newcommand\center@box[3]{\parbox[c][#1][c]{#2}{\makebox[#2][c]{#3}}}
\newcommand\txt@value@on@bar[1]{%
\settowidth{\tdv@temp}{$#1$}%
\begin{tabular}{@{\hspace{0pt}}c@{\hspace{0pt}}}%
\rule{5pt}{8mm}\\%
\center@box{8mm}{\tdv@temp}{#1}\\%
\rule{5pt}{8mm}\\%[-4pt]%
\end{tabular}%
}
\begin{tabular}{|c|c|}
\hline
$1$ & $2$ \\
\hline
\txt@value@on@bar{0} & 2 \\
\hline
\end{tabular}
\end{document}
底部有一个微小的空间,我认为这与有关\arraystretch
。
但是如果我设置\def\arraystretch{0}
,第一行就会被拉长(最糟糕的是,我可以在那里放一个支柱),如果我尝试取消注释\\[-4pt]
,单元格就不再垂直对齐。