调整表格的列宽

调整表格的列宽

我正在做:

\documentclass{article}
\newcommand\htext[1]{\texttt{0x\MakeLowercase{#1}}}

\begin{document}
\begin{table}[h]
\centering
\begin{tabular}{|l|l|l|l|l|l|l|}
\hline
\htext{FFFFFFFFFFFFFFFFF} & \htext{FFFFFFFFFFFFFFFFF} & \htext{FFFFFFFFFFFFFFFFF} &  &  &  &  \\
 \hline
\end{tabular}
\end{table}
\end{document}

空的 4 列将有非常类似的内容。现在,请注意,Overfull \hbox发生了错误。

我如何调整每列的宽度,以便将每个\htext{...}条目分成多行(我不想减小字体大小)?设置之类的操作p{2in}没有帮助(因为它只是创建了一个与其他条目重叠的单元格条目)。

答案1

这是一个解决方案,改编自我在堆栈溢出:我定义了一个\hyphenatestring宏,它接受字符串,将其转换为小写,并使其“可在任何地方使用连字符”。此宏可在字体更改命令中使用:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{tabularx}

\makeatletter
\def\hyphenatestring#1{\xHyphen@te#1$\unskip}
\def\xHyphen@te{\@ifnextchar${\@gobble}{\sw@p{\hskip 0pt plus 1pt\xHyphen@te}}}
\def\sw@p#1#2{\MakeLowercase{{#2}}#1}%\texttt
\makeatother

\newcommand\htexttt[1]{\texttt{\hyphenatestring{0x#1}}}
\newcommand\htextsf[1]{\textsf{\hyphenatestring{0x#1}}}

\begin{document}

\begin{table}[h]
\centering
\begin{tabularx}{\linewidth}{|*{7}{X|}}
\hline
\htexttt{AAAAAAAAAAAAAAAAA}&  & \textbf{\htextsf{CCCCCCCCCCCCCCCCC}} &  & \textit{\htexttt{FFFFFFFFFFFFFFFFF}}{} &  &  \\
 \hline
\end{tabularx}
\end{table}

\end{document} 

在此处输入图片描述

答案2

借用,您可以定义一个命令在每个字符后插入连字符。

\usepackage{xparse}

\NewDocumentCommand{\splitlist}{>{\SplitList{}}m}
 {\ProcessList{#1}{\addabreak}\unskip}
\newcommand{\addabreak}[1]{#1\-}

此后,您可以重新定义命令以使用此功能:

\newcommand\htext[1]{\texttt{0x\MakeLowercase{\splitlist{#1}}}}

然后调整列宽直到满足你的需要:

\documentclass{article}
\usepackage{xparse}

\NewDocumentCommand{\splitlist}{>{\SplitList{}}m}
 {\ProcessList{#1}{\addabreak}\unskip}
\newcommand{\addabreak}[1]{#1\-}

\newcommand\htext[1]{\texttt{0x\MakeLowercase{\splitlist{#1}}}}

\begin{document}
\begin{table}[h]
\centering
\begin{tabular}{|p{0.11\textwidth}|p{0.11\textwidth}|p{0.11\textwidth}|%
p{0.11\textwidth}|p{0.11\textwidth}|p{0.11\textwidth}|p{0.11\textwidth}|}
\hline
\htext{FFFFFFFFFFFFFFFFF} & \htext{FFFFFFFFFFFFFFFFF} &
\htext{FFFFFFFFFFFFFFFFF} & \htext{FFFFFFFFFFFFFFFFF} &
\htext{FFFFFFFFFFFFFFFFF} & \htext{FFFFFFFFFFFFFFFFF} &
\htext{FFFFFFFFFFFFFFFFF} \\
 \hline
\end{tabular}
\end{table}
\end{document}

结果:

平均能量损失

相关内容