我有以下内容:
\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}