使自定义表格全宽

使自定义表格全宽

我有这个代码这个问题David Carlisle 回答。
我不完全明白它在做什么。我希望两个表都是全宽的。
下面是一个最小示例,其中我希望第一个表是全宽的。第二个表正常运行。

\documentclass[10pt,a4paper,oneside,onecolumn,openany]{report}

\usepackage{tabulary}
\usepackage{tabularx}
\usepackage{ltablex}
\usepackage{ragged2e}
\usepackage{longtable}

\usepackage[showframe]{geometry}

\makeatletter

\def\ltabulary{%
\def\endfirsthead{\\}%
\def\endhead{\\}%
\def\endfoot{\\}%
\def\endlastfoot{\\}%
\def\tabulary{%
\def\TY@final{%
\def\endfirsthead{\LT@end@hd@ft\LT@firsthead}%
\def\endhead{\LT@end@hd@ft\LT@head}%
\def\endfoot{\LT@end@hd@ft\LT@foot}%
\def\endlastfoot{\LT@end@hd@ft\LT@lastfoot}%
\longtable}%
\let\endTY@final\endlongtable
\TY@tabular}%
\tabulary}

\def\endltabulary{\endtabulary}

\makeatother

\begin{document}



\hspace*{0pt}\tymin=50pt\tymax=400pt\begin{ltabulary}{\textwidth}{|L|L|} \hline

\rule{0pt}{4mm}\textbf{\hspace*{0pt}Fuz} & \textbf{\hspace*{0pt}Baz} \\ \hline

\rule{0pt}{4mm}A & B \\ \hline
\rule{0pt}{4mm}C & D \\ \hline

\end{ltabulary}


\hspace*{0pt}\tymin=50pt\tymax=400pt\begin{ltabulary}{\textwidth}{|L|L|} \hline

\rule{0pt}{4mm}\textbf{\hspace*{0pt}Fuz} & \textbf{\hspace*{0pt}Baz} \\ \hline

\rule{0pt}{4mm}AAAAAAAAAA & BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB \\ \hline
\rule{0pt}{4mm}C & D \\ \hline

\end{ltabulary}

\end{document}

输出:

在此处输入图片描述

谢谢。

答案1

在此处输入图片描述

只是因为当时这似乎是个好主意,TY 永远不会拉伸表格,如果它的自然宽度小于目标宽度,则将其设置为自然大小。

在代码中没有简单的方法可以改变该设计选择,因此,如果发生这种情况,但您想要强制目标宽度,最简单的方法是向单元格添加一个空格(或多或少任意)以使自然单元格宽度更宽(空格无论如何都会在段落末尾被删除,因此确切的数量不是太重要。我在这里只给了 B 宽度,但如果您想拉伸两列,您也可以向 A 添加一些宽度。

因此在第一个表中,使用

\rule{0pt}{4mm}A & B\hspace{\textwidth} \\ \hline

答案2

在此处输入图片描述

\documentclass{article}
\usepackage{tabularx,ragged2e,booktabs,lipsum}
\newcommand\mydesc[2]{#1 & #2 \\ \addlinespace}
\begin{document}
    
    \noindent % <-- may be omitted if `\parindent` is equal to 0pt
    \begin{tabularx}{\textwidth}{@{} w{l}{0.5\textwidth} >{\RaggedRight}X @{}}
        \toprule
        \multicolumn{1}{c}{\textbf{Fuz}}& \multicolumn{1}{c}{\textbf{Baz}}\\
        \midrule
        {Lorem}&{\lipsum[1][1-4]}\\
        \midrule
        {Ipsum}&{\lipsum[2][1-3]}\\
        \bottomrule
    \end{tabularx}
X\hrulefill X
\end{document} 

相关内容