我有一个带有制表符环境的表格。我不希望表格超过一定宽度,但制表符环境似乎忽略了这一点。因此,虽然在第 5 行插入大量“blas”会导致 blas 分布在几行上(这是我想要的),但第 2 行制表符环境中的 blas 会使表格变宽(我想避免这种情况)。
如何在表格环境中使用制表符环境,同时保留表格的设定宽度?
提前感谢任何回复!
我的代码:
\documentclass{article}
\usepackage{graphicx}
\begin{document}
\begin{tabular}{|l|p{7cm}|}
\hline
1 & xxx \\ \hline
2 &
\begin{tabbing}
xxx:\hspace{6mm} \= \textbullet \hspace{0.01mm} bla bla bla bla bla bla bla bla bla bla bla bla \\
\> \textbullet \hspace{0.01mm} xxx\\
\> \textbullet \hspace{0.01mm} xxx\\
xxx: \> \textbullet \hspace{0.01mm} xxx\\
\> \textbullet \hspace{0.01mm} xxx\\
xxx: \> \textbullet \hspace{0.01mm} xxx\\
\> \textbullet \hspace{0.01mm} xxx\\
xxx: \> \textbullet \hspace{0.01mm} xxx\\
\> \textbullet \hspace{0.01mm} xxx\\
\end{tabbing}
\\ \hline
3 & xxx \\ \hline
4 & xxx\\ \hline
5 & bla blabla blabla bla bla bla bla bla bla bla bla bla\\ \hline
6 & xxx\\ \hline
7 & xxx\\
\hline
\end{tabular}
\end{document}
答案1
您可以使用 atabular
代替tabbing
。
\documentclass{article}
\usepackage{graphicx}
%\usepackage{array}
\usepackage{calc}
\newlength{\mylen}
\setlength{\mylen}{\widthof{\textbullet}}
\begin{document}
\begin{tabular}{|l|p{7cm}|}
\hline
1 & xxx \\ \hline
2 &
\begin{tabular}[t]{@{}p{1cm}p{\mylen}p{\dimexpr6cm-\mylen-5\tabcolsep\relax}}
xxx & \textbullet & bla bla bla bla bla bla bla bla bla bla bla bla \\
& \textbullet & xxx\\
& \textbullet & xxx\\
xxx: & \textbullet & xxx\\
& \textbullet & xxx\\
xxx: & \textbullet & xxx\\
& \textbullet & xxx\\
xxx: & \textbullet & xxx\\
& \textbullet & xxx\\
\end{tabular}
\\ \hline
3 & xxx \\ \hline
4 & xxx\\ \hline
5 & bla blabla blabla bla bla bla bla bla bla bla bla bla\\ \hline
6 & xxx\\ \hline
7 & xxx\\
\hline
\end{tabular}
\end{document}
\begin{tabular}[t]{@{}p{1cm}p{\mylen}p{\dimexpr6cm-\mylen-5\tabcolsep\relax}}
方法
表格有三列,第一列宽 1cm,第二列宽 1cm \mylen
,第三列 \dimexpr6cm-\mylen-5\tabcolsep\relax
宽 1cm。\mylen
等于 的宽度\textbullet
, \dimexpr6cm-\mylen-5\tabcolsep\relax
为7cm -1cm-\mylen-5\tabcolsep
(第三列剩余的可用宽度)。因为有三列,所以我们有 6 个\tabcolsep
s,其中第一列使用 设为零@{}
。\tabcolsep
是列内容与其边框之间的间隔。
希望清楚。