调整包含 \href 的表格中的垂直间距

调整包含 \href 的表格中的垂直间距

我似乎被一个看似基本的tabular间距问题(当\href使用 an 时)难住了。调整这个显而易见的解决方案arraystretch似乎不起作用。

我希望 的输出看起来tabular与 的输出类似itemize,就行之间的垂直间距而言。下面的第一列是itemize产生的间距,看起来很棒。接下来的两列是tabulartabu使用默认设置产生的间距:

在此处输入图片描述

如您所见,tabular和中的线tabu在垂直方向上靠得太近了。

所以我认为增加\arraystretchintabular或设置\tabulinesepintabu应该就可以了。我想避免手动添加在 后面指定垂直空间的解决方案\\。但即使这样也行不通!

在此处输入图片描述

上面的列是:

  1. 产生的所需垂直间距itemize
  2. tabular\renewcommand*{\arraystretch}{2.4}
  3. tabu\tabulinesep=0.5ex,和
  4. \\[1.25ex]在行末手动添加:

基本上,我不是希望\href盒子能够伸展,但希望线条能够分开得更远。

笔记:

  • 我只把它们放进去minipages以便于比较。在我的实际应用中,它们位于彼此下方。此外,这构成了一个漂亮的宽图像。所以,不是尝试使基线在此对齐。
  • 现在我将这两个图放在上面,重叠部分似乎没有变化。这似乎是一个线索,但不确定我该如何使用该信息。

代码:

\documentclass{article} 
\usepackage{enumitem}
\usepackage{tabu}

\usepackage{hyperref}

\newcommand*{\AddLinkToFile}[1]{\href{run:#1.pdf}{\strut#1}}


\begin{document}
\begin{minipage}{2.0cm}
\begin{itemize}
    \item \AddLinkToFile{a} b 
    \item \AddLinkToFile{c} d
\end{itemize}
\end{minipage}
%
\begin{minipage}{2.0cm}
%\renewcommand*{\arraystretch}{2.4}
\begin{tabular}{ll}
    \AddLinkToFile{e} & f \\
    \AddLinkToFile{g} & h \\
\end{tabular}
\end{minipage}
%
\begin{minipage}{2.0cm}
%\tabulinesep=0.5ex
\begin{tabu}{ll}
    \AddLinkToFile{i} & j \\
    \AddLinkToFile{k} & l \\
\end{tabu}
\end{minipage}
%
\begin{minipage}{2.0cm}%            Manually adding space
\begin{tabular}{ll}
    \AddLinkToFile{l} & m \\[1.25ex]
    \AddLinkToFile{n} & o \\
\end{tabular}
\end{minipage}
\end{document}

答案1

也许这会对你有帮助:

  • 为了获得正确的垂直间距,我将使用listliketab
  • Amsmath 的\smash帮助令人惊讶。

介绍\smash

如果我用

\newcommand*{\AddLinkToFile}[1]{\smash{\href{run:#1.pdf}{\strut#1}}}

href 框现在变成了一个很小的框(1pt 高度,1pt 深度?)。对于未制表的材料也是如此。
\粉碎{}

可选参数\smash

经过一番尝试[b][t]看到它的效果后,我尝试了

\newcommand*{\AddLinkToFile}[1]{\smash[]{\href{run:#1.pdf}{\strut#1}}}

效果奇佳:
\粉碎[]{…}

(结果框的高度和深度来自\strut。)
错误还是功能?我不知道……

在实际环境中,每次使用\strut[t],,或根本没有可选项)都会破坏,除非在它前面添加。[b][]\AddLinkToFileitemize\leavevmode

因此最终的\AddLinkToFile命令是:

\newcommand*{\AddLinkToFile}[1]{\leavevmode\smash[]{\href{run:#1.pdf}{\strut#1}}}

代码

\documentclass{article} 
\usepackage{amsmath}
\usepackage{enumitem}
\usepackage{tabu}
\usepackage{listliketab}
\usepackage{hyperref}

\newcommand*{\AddLinkToFile}[1]{\leavevmode\smash[]{\href{run:#1.pdf}{\strut#1}}}
%\renewcommand*{\AddLinkToFile}[1]{#1} % for my own testing purposes
\storestyleof{itemize}

\begin{document}

\begin{itemize}
    \item \AddLinkToFile{a} b 
    \item \AddLinkToFile{c} d
\end{itemize}

\AddLinkToFile{A}

\begin{minipage}{2.0cm}
\begin{listliketab}
  \begin{tabular}{Ll}
    \textbullet & \AddLinkToFile{a} A \\
    \textbullet & \AddLinkToFile{c} d
  \end{tabular}
\end{listliketab}
\end{minipage}
%
\begin{minipage}{2.0cm}
\begin{listliketab}
\renewcommand*{\arraystretch}{2.4}
\begin{tabular}{ll}
    \AddLinkToFile{e} & f \\
    \AddLinkToFile{g} & h
\end{tabular}
\end{listliketab}
\end{minipage}
%
\begin{minipage}{2.0cm}
\begin{listliketab}
\tabulinesep=0.5ex
\begin{tabu}{ll}
    \AddLinkToFile{i} & j \\
    \AddLinkToFile{k} & l
\end{tabu}
\end{listliketab}
\end{minipage}
%
\begin{minipage}{2.0cm}
\begin{listliketab}
\begin{tabular}{ll}
    \AddLinkToFile{l} & m \\[1.25ex]
    \AddLinkToFile{n} & o
\end{tabular}
\end{listliketab}
\end{minipage}
\end{document}

相关内容