
Ich weiß, dass das als Frage vielleicht dumm klingt, aber ich bin ein absoluter LaTeX-Anfänger.
\begin{table}[H]
\centering
\begin{tabular*}{\textwidth}{|c|}
\hline
\begin{tabular}[c]{@{}l@{}}
\textbf{\textbf{Description sommaire}}:
\end{tabular}
\\ \hline
\end{tabular*}
\end{table}
Ich versuche, eine Tabelle auf die Seitenbreite zu zwingen. Ich habe {tabular*}
das verwendet und es hat funktioniert. Aber jetzt habe ich ein Problem mit den Rändern. Der linke Rand wird normal angezeigt, der rechte jedoch falsch dargestellt.
Meine Tabelle hat nur eine Spalte und ich möchte, dass der rechte Rahmen am rechten Ende der Tabelle ist. Wie kann ich das erreichen?
Antwort1
tabular*
hat eine spezielle Syntax, die befolgt werden muss, um die Möglichkeit zu nutzen, die Tabelle auf die gesamte Textbreite auszudehnen. Hier ist die erforderliche Syntax:
\begin{table}[htbp]
\centering
\begin{tabular*}{\textwidth}{|c|@{\extracolsep{\fill}}c|}
\hline
\textbf{\textbf{Description sommaire}}: & \\ \hline
\end{tabular*}
\end{table}
Andernfalls verwenden Sie einfach die gebräuchlichere tabularx
Umgebung (die ich empfehle):
\begin{table}[htbp]
\centering
\begin{tabularx}{\textwidth}{|c|X|}
\hline
\textbf{\textbf{Description sommaire}}: & \\ \hline
\end{tabularx}
\end{table}
Dies ergibt das gleiche Ergebnis plus Textumbruch als Bonus.
Antwort2
Versuchen Sie, einen gerahmten, absatzähnlichen Titel zu erstellen?
Denn dann ist ein Float (a table
) die schlechteste Idee überhaupt. Dadurch kann der Titel beliebig verschoben werden. Obwohl [H]
Sie mit der Option dafür sorgen, dass der Float nicht schwebt, table
ist eine Umgebung dennoch völlig unnötig. Vielleicht verwenden Sie sie, um Einrückungen der Tabelle zu vermeiden und vertikale Leerzeichen hinzuzufügen, aber das lässt sich besser ohne Float lösen (bzw. mit \noindent
und einem vertikalen Abstandsbefehl wie \bigskip
, oder vielleicht \parindent
auf 0pt und \parskip
etwas mehr setzen).
Verschachtelte Tabellen machen auch keinen Sinn. Eine (einfache) Tabelle reicht aus oder eine gerahmte Box ( \fbox{}
), die die Zeilenbreite abzüglich des von der gerahmten Box verwendeten Platzes einnehmen kann, wie eine \makebox
, eine \parbox
oder eine Minipage-Umgebung, möglicherweise in einer Abschnittsneudefinition oder alternativ in einem sehr konfigurierbaren Boxing-Paket wie mdframed
oder tcolorbox
, oder schreiben Sie einfach einige \vrules und \hrules herum, ohne eine Box zu erstellen.
Das Beispiel zeigt 5 von vielen Alternativen. Nutze die, die dir Freude macht.
\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}