我正在做:
\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}
结果: