табличный* правая граница смещена

табличный* правая граница смещена

Я знаю, что это может показаться глупым вопросом, но я новичок в 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

Вы пытаетесь создать заголовок, похожий на рамку для раздела?

Потому что тогда сделать float (a table) — худшая идея из возможных. Это может сместить заголовок куда угодно. Хотя с помощью [H]опции вы делаете так, чтобы float не плавал, все равно tableокружение совершенно не нужно. Может быть, вы используете его, чтобы избежать отступов таблицы и добавить вертикальные пробелы, но это можно решить лучше без float (соответственно, с помощью \noindentи некоторой команды вертикального интервала как \bigskip, или, может быть, установить \parindent0pt и \parskipеще немного).

Вложенные табличные элементы также не имеют смысла. Достаточно одного (простого) табличного элемента или рамочного блока ( \fbox{}), который может занимать ширину строки за вычетом пространства, используемого рамочным блоком, как \makebox, \parboxили окружение мини-страницы, может быть в переопределении раздела или, в качестве альтернативы, использовать очень настраиваемый пакет боксов как mdframedили tcolorbox, или просто написать несколько \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}

Связанный контент