longtable 中的对齐

longtable 中的对齐

我有以下内容:

\documentclass{scrbook}
\usepackage{longtable,array,lipsum,tabularx,multirow}
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}}
\newcolumntype{R}[1]{>{\raggedleft\arraybackslash} p{#1}}
\begin{document}
\begin{longtable}[c]{b{20mm}|L{\dimexpr\textwidth-40mm\relax}@{}|R{20mm}}
Column 1 & Column 2 & Column 3 \\ \hline
top & \lipsum[1] & bottom
\end{longtable}
\end{document}

我得到的是:

在此处输入图片描述

我想要的是:

在此处输入图片描述

(最后一栏内容与底线对齐)

有人能帮我解决这个问题吗?

最终解决方案 基于此回答@Zarko 和 @DavidCarlisle 的评论

\documentclass{scrbook}
\usepackage{lipsum,longtable, multirow, xltabular,letltxmacro}
\RequirePackage[noprefix,refpage,intoc]{nomentbl}
\newcolumntype{L}{>{\raggedright\arraybackslash}X}
\LetLtxMacro\oldnomenclature\nomenclature
\renewcommand{\nomenclature}[3][]{\oldnomenclature[#1]{#2}{#3}{}{}}
\renewcommand{\pagedeclaration}[1]{\multirow[b]{\zzz}{*}{#1}}
\makenomenclature
\begin{document}
\nomenclature{a}{\lipsum[1]}
\nomenclature{b}{\lipsum[2]}
\printnomenclature[3cm]
\end{document}

与 makeindex 和 makeindex-Style-File nomentbl.ist 一起使用,

actual '@'
quote '%'
delim_0   ""
delim_1   ""
delim_2   ""
item_0    ""
delim_t   " \\\\\n"
line_max  1000
heading_prefix   "\\multicolumn{3}{@{}l}{\\nomgroup{"
heading_suffix   "}} \\\\\n\\nopagebreak\\\\*[-3mm]\n\\nopagebreak{}"
headings_flag       1
group_skip        "\\\\*[-3mm]"
preamble "\n\\begin{thenomenclature}\n%
\\begin{xltabular}{\\linewidth}{@{}lL<{\\endgraf\\xdef\\zzz{\\the\\prevgraf}}@{}l@{}l@{}r@{}}\n%
\\textbf{Symbol} & \\textbf{Description} & & & \\textbf{Page} \\\\*[-4mm]\n%
\\hline \\\\*[-2mm] \n"%
postamble "\n\\end{xltabular}\n\n\\end{thenomenclature}\n"
keyword "\\nomenclatureentry"
\endinput

结果是

在此处输入图片描述

答案1

  • 离题:使用xltabular而不是`longtable,你将可以更简单地控制列宽
  • 使用\multirow[b]{<number of lines in adjacent cell(s)>}{*}{bottom} 您可以实现您想要的目标,但是这个解决方案需要手动调整:计算中间单元格的行数:
\documentclass{scrbook}
\usepackage{longtable, multirow, xltabular}
\newcolumntype{L}{>{\raggedright\arraybackslash}X}
\usepackage{lipsum}

\begin{document}
    \begin{xltabular}{\linewidth}{l|L|r}
Column 1 & Column 2     & Column 3          \\ \hline
top      & \lipsum[1]   & \multirow[b]{15}{*}{bottom}
    \end{xltabular}
\end{document}

在此处输入图片描述

\documentclass{scrbook}
\usepackage{longtable, multirow, xltabular}
\newcolumntype{L}{>{\raggedright\arraybackslash}X}
\usepackage{lipsum}

\begin{document}
    \begin{xltabular}{\linewidth}{l|L<{\endgraf\xdef\zzz{\the\prevgraf}}|r}
Column 1 & Column 2     & Column 3          \\ \hline
top      & \lipsum[1]   & \multirow[b]{\zzz}{*}{bottom}
    \end{xltabular}
\end{document}

相关内容