borda direita tabular* mal colocada

borda direita tabular* mal colocada

Eu sei que isso pode parecer uma pergunta estúpida, mas sou um iniciante em 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}

Estou tentando forçar uma tabela na largura da página. Eu usei {tabular*}para isso e funcionou. Mas agora tenho um problema com fronteiras. A borda esquerda é exibida normalmente, porém a borda direita é mal reproduzida.

insira a descrição da imagem aqui

Minha tabela tem apenas uma coluna e quero que a borda direita fique na extremidade direita da tabela. Como eu posso fazer isso?

Responder1

tabular*possui uma sintaxe especial que deve ser seguida para aproveitar sua capacidade de expandir a tabela para toda a largura do texto. Aqui está a sintaxe necessária:

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

insira a descrição da imagem aqui

Caso contrário, basta usar o ambiente mais comum tabularx(que recomendo):

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

isso dá o mesmo resultado, além de quebra automática de texto como bônus.

Responder2

Você está tentando criar um título semelhante a uma seção emoldurada?

Porque então fazer um float (a table) é a pior ideia possível. Isso pode deslocar o título para qualquer lugar. Embora com [H]a opção você faça com que o float não flutue, ainda assim um tableambiente é completamente desnecessário. Pode ser que você esteja usando-o para evitar o recuo da tabela e adicionar espaços verticais, mas isso pode ser resolvido melhor sem um float (respectivamente, com \noindentalgum comando de espaçamento vertical como \bigskip, ou talvez definido \parindentcomo 0pt e \parskipum pouco mais).

Tabulares aninhados também não fazem sentido. Basta um tabular (simples), ou uma caixa emoldurada ( \fbox{}) que pode ocupar a largura da linha menos o espaço usado pela caixa emoldurada, como um ambiente \makebox, a \parbox, ou minipágina, pode estar em uma redefinição de seção ou alternativamente, use um pacote de boxe muito configurável como mdframedou tcolorbox, ou simplesmente escreva alguns \vrules e \hrules por aí, sem fazer nenhuma caixa.

O exemplo mostra 5 das muitas alternativas. Use aquele que te faz feliz.

eu

\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}

informação relacionada