有没有办法让一行中的每个单元格以不同的方式垂直对齐?

有没有办法让一行中的每个单元格以不同的方式垂直对齐?

因此,我一直在搜索,并找到了一些示例,这些示例允许您以某种方式对齐两个单元格,但我试图对齐三个单元格,以便第一个单元格位于顶部,中间单元格位于中间,第三个单元格位于底部。这就是我一直在弄乱的东西,但我显然没有理解一些重要的东西。任何帮助都将不胜感激。

\documentclass{book}
\usepackage{lipsum}
\begin{document}
  \begin{tabular}{cp{2.8in}c}
    \multicolumn{1}{b{0.2in}}{\Huge{``}}    &
    \multicolumn{1}{m{2.8in}}{\lipsum[1]} &
    \Huge{"}   \\
  \end{tabular}
\end{document}

答案1

这并非易事。但有一种方法可以解决这个问题:手动在开头和结尾插入引号,并与相邻列重叠。

在此处输入图片描述

\documentclass{article}

\usepackage{lipsum}

\begin{document}

\begin{tabular}{ c p{2.8in} c}
  \hphantom{\Huge ``} & % Just for appropriate horizontal space
  \raisebox{-.5\normalbaselineskip}[0pt][0pt]{\makebox[0pt][r]{\Huge ``\hspace{2\tabcolsep}}}%
  \lipsum*[1]%
  \hfill\raisebox{-\normalbaselineskip}[0pt][0pt]{\makebox[0pt][l]{\hspace{2\tabcolsep}\Huge ''}} &
  \hphantom{\Huge ''}% Just for appropriate horizontal space
\end{tabular}

\end{document}

您不需要tabular为此建立一个结构,因为引号的位置取决于内容,因此也可以在中进行设置\parbox

答案2

与。{NiceTabular}nicematrix

\documentclass{book}
\usepackage{nicematrix}
\usepackage{lipsum}

\begin{document}

\begin{NiceTabular}{cp{2.8in}c}
  \Block[T]{}{\Huge ``}    &
  \multicolumn{1}{m{2.8in}}{\lipsum[1]} &
  \Block[B]{}{\raisebox{-\normalbaselineskip}[0pt][0pt]{\Huge "}}  
\end{NiceTabular}

\end{document}

上述代码的输出

答案3

tblr环境来自tabularray包具有功能丰富的更直观的键=值界面。

例子:

表格

平均能量损失

\documentclass{book}
\usepackage{lipsum}
\usepackage{xcolor}

\usepackage{tabularray}
\begin{document}
  \begin{tblr}{
%  vlines,hlines,
  colspec={Q[h,r]X[j,m,3.5in,bg={blue!5}]Q[f,l]},
  column{1}={fg={red},rightsep={0pt}},
  column{3}={fg={red},leftsep={0pt}},
    }
    {\Huge{``}}  &
    \lipsum[1]  &
    \Huge{"}    \\
  \end{tblr}
\end{document}

笔记 -稍作编辑

\Huge是一个开关,不接受参数。

可以在列规范中设置。

  \begin{tblr}{
%  vlines,hlines,
  colspec={Q[h,r]X[j,3.5in,bg={blue!5}]Q[f,l]},
  column{1}={font={\Huge},fg={red},rightsep={0pt}},
  column{3}={font={\Huge},fg={red},leftsep={0pt}},
    }
    ``  &
    \lipsum[1]  &
    "    \\
  \end{tblr}

相关内容