表格* 右边框放错位置

表格* 右边框放错位置

我知道这个问题听起来可能很愚蠢,但我对 LaTeX 还只是个初学者。

\begin{table}[H]
    \centering
    \begin{tabular*}{\textwidth}{|c|}
        \hline                                
        \begin{tabular}[c]{@{}l@{}}           
        \textbf{\textbf{Description sommaire}}:        
    \end{tabular} 
    \\ \hline
    \end{tabular*}
\end{table}

我正在尝试将表格强制放入页面宽度。我曾经{tabular*}这样做过,而且成功了。但现在我遇到了边框问题。左边框显示正常,但右边框显示错误。

在此处输入图片描述

我的表格只有一列,我想让右边框位于表格的右端。我该怎么做?

答案1

tabular*具有特殊的语法,必须遵循该语法才能利用其将表格扩展到整个文本宽度的功能。以下是所需的语法:

\begin{table}[htbp]
    \centering
    \begin{tabular*}{\textwidth}{|c|@{\extracolsep{\fill}}c|}
        \hline                                          
        \textbf{\textbf{Description sommaire}}: &  \\ \hline
    \end{tabular*}
\end{table}

在此处输入图片描述

否则,只需使用更常见的tabularx环境(我推荐):

\begin{table}[htbp]
    \centering
    \begin{tabularx}{\textwidth}{|c|X|}
        \hline                                          
        \textbf{\textbf{Description sommaire}}: &  \\ \hline
    \end{tabularx}
\end{table}

这给出了相同的结果,并且还附加了文本换行作为奖励。

答案2

您是否想制作一个类似框架部分的标题?

因为这样,制作一个浮动元素(a table)就是最糟糕的想法了。这会将标题移到任何地方。尽管[H]您可以选择让浮动元素不浮动,但table环境仍然是完全不必要的。也许您使用它来避免表格缩进并添加垂直空格,但是不用浮动元素可以更好地解决这个问题(分别使用\noindent和一些垂直间距命令\bigskip,或者设置\parindent为 0pt 和\parskip更多)。

嵌套表格也没有意义。一个(简单)表格就足够了,或者一个框架框(\fbox{})可以占用行宽减去框架框使用的空间,作为 \makebox\parbox或迷你页面环境,可以在部分重新定义中,或者使用一个非常可配置的装箱包作为mdframedtcolorbox,或者简单地写一些 \vrules 和 \hrules,而不制作任何框。

示例显示了众多备选方案中的 5 个。请选择您满意的方案。

姆韦

\documentclass{article}
% Padding of \fbox{} 
\setlength\fboxsep{.5em}

% Some dummy text between solutions, just to see the layout 
\def\loreipsum{Lorem ipsum dolor sit amet, consectetur adipiscing    
elit. Fusce elit lectus, dapibus eget pellentesque eu, ultricies 
vel turpis. Cras quis convallis nibh.}

% for solution 2 only
\makeatletter
\newcommand\fsection{\@startsection{section}{1}{\z@}%
{1em}{1em}{\bfseries\framedbox}}
\makeatother
\newcommand*\framedbox[1]{\noindent%
\fbox{\parbox{\dimexpr\columnwidth-2\fboxsep}{#1}}}

% for solution 5 only
\usepackage{mdframed}


\begin{document}

\loreipsum

% solution 1
\bigskip\hrule
\noindent
\vrule height 12pt depth 6pt width 0.4pt 
{ \bfseries Description sommaire}\hfill\vrule
\hrule\bigskip

\loreipsum

% solution 2
\fsection*{Description sommaire} 

\loreipsum

% solution 3
\bigskip
\noindent\fbox{\makebox[\dimexpr\linewidth-2\fboxsep-2\fboxrule][l]
{\textbf{Description sommaire}}}\bigskip

\loreipsum

% solution 4
\bigskip
{\renewcommand\arraystretch{1.4}\setlength\tabcolsep{.5em}
\noindent\begin{tabular}%
{|p{\dimexpr\linewidth-2\tabcolsep-2\arrayrulewidth}|}\hline
\textbf{Description sommaire} \\\hline
\end{tabular}}
\bigskip

\loreipsum

% solution 5
\begin{mdframed} 
\textbf{Description sommaire}: 
\end{mdframed}

\loreipsum

\end{document}

相关内容