我知道这个问题听起来可能很愚蠢,但我对 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
或迷你页面环境,可以在部分重新定义中,或者使用一个非常可配置的装箱包作为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}