
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.
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}
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 table
ambiente é 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 \noindent
algum comando de espaçamento vertical como \bigskip
, ou talvez definido \parindent
como 0pt e \parskip
um 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 mdframed
ou 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.
\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}