我想从脚本生成内存页面,我认为 LaTeX 是构建漂亮 PDF 的完美工具。但是,我在表格环境中苦苦挣扎,我不知道如何设计以下模型(用 Illustrator 绘制)。
困难在于:
- 固定宽度的列和行(163 x 260 毫米桌子上的 32 x 32 个单元格阵列)
- 旋转顶部标题,无线条
- 粗体标题,无线条
- 表格边框比内部线条更粗
我目前所做的如下:
\documentclass[a4paper]{article}
\usepackage{array,graphicx}
\usepackage{calc}
\usepackage{booktabs}
\usepackage{geometry}
\usepackage{ifxetex}
\usepackage{booktabs}
\usepackage{pifont}
\usepackage{multirow}
\usepackage{helvet}
\newcommand*\rot{\rotatebox{90}}
\ifxetex
\usepackage{fontspec}
\setmonofont{Latin Modern Mono}
\else
\usepackage{lmodern}
\fi
\renewcommand{\familydefault}{\sfdefault}
\geometry{
a4paper,
total={170mm,240mm},
left=20mm,
top=10mm,
}
\newcolumntype{C}[1]{@{}>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\newcommand\Tstrut{\rule[0pt]{0pt}{0pt}}
\newcommand\Bstrut{\rule[0pt]{0pt}{0pt}}
\newcommand{\TBstrut}{}
\setlength\extrarowheight{0pt}
\begin{document}
\section*{PAGE 0x01000}
\newcommand\w{0.3cm}
\begin{tabular}{r|C{\w}|C{\w}|C{\w}|C{\w}|C{\w}|C{\w}|C{\w}|C{\w}|C{\w}|C{\w}|C{\w}|C{\w}|C{\w}|C{\w}|C{\w}|C{\w}|C{\w}|C{\w}|C{\w}|C{\w}|C{\w}|C{\w}|C{\w}|C{\w}|C{\w}|C{\w}|C{\w}|C{\w}|C{\w}|C{\w}|C{\w}|C{\w}|}
& \rot{\textbf{0x00}} & \rot{\textbf{0x00}} & \rot{\textbf{0x00}} & \rot{\textbf{0x00}} & \rot{\textbf{0x00}} & \rot{\textbf{0x00}} & \rot{\textbf{0x00}} & \rot{\textbf{0x00}}& \rot{\textbf{0x00}} & \rot{\textbf{0x00}} & \rot{\textbf{0x00}} & \rot{\textbf{0x00}} & \rot{\textbf{0x00}} & \rot{\textbf{0x00}} & \rot{\textbf{0x00}} & \rot{\textbf{0x00}}& \rot{\textbf{0x00}} & \rot{\textbf{0x00}} & \rot{\textbf{0x00}} & \rot{\textbf{0x00}} & \rot{\textbf{0x00}} & \rot{\textbf{0x00}} & \rot{\textbf{0x00}} & \rot{\textbf{0x00}}& \rot{\textbf{0x00}} & \rot{\textbf{0x00}} & \rot{\textbf{0x00}} & \rot{\textbf{0x00}} & \rot{\textbf{0x00}} & \rot{\textbf{0x00}} & \rot{\textbf{0x00}} & \rot{\textbf{0x00}}\\
\hline
\multirow{2}{*}{\textbf{0x00000}} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \TBstrut\\
& 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \TBstrut\\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \TBstrut\\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \TBstrut\\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \TBstrut\\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \TBstrut\\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \TBstrut\\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \TBstrut\\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \TBstrut\\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \TBstrut\\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \TBstrut\\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \TBstrut\\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \TBstrut\\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \TBstrut\\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \TBstrut\\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \TBstrut\\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \TBstrut\\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \TBstrut\\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \TBstrut\\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \TBstrut\\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \TBstrut\\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \TBstrut\\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \TBstrut\\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \TBstrut\\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \TBstrut\\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \TBstrut\\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \TBstrut\\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \TBstrut\\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \TBstrut\\
\hline
\end{tabular}
\end{document}
有没有简单的方法可以实现我想要的目标?
答案1
通过 (a) 从 a 切换tabular
到tabularx
环境,(b) 将 的值\tabcolsep
从 6pt(默认值)减小到 1pt,以及 (c) 将 的值减小\arrayrulewidth
到 0.25pt,即可只是可以将所有 33 列挤进可用空间。请注意,无需减小文本的字体大小。最后,我将值设置\extrarowheight
为2pt
。
\documentclass[a4paper]{article}
\usepackage{array,graphicx}
\newcommand*\rot{\rotatebox{90}}
\newcommand{\rt}[1]{\rot{\textbf{#1}}}
\usepackage{geometry}
\geometry{a4paper,total={170mm,240mm},left=20mm,top=10mm}
\usepackage{multirow}
\usepackage{helvet}
\renewcommand{\familydefault}{\sfdefault}
\usepackage{ifpdf}
\ifpdf
\usepackage{lmodern}
\else
\usepackage{fontspec}
\setmonofont{Latin Modern Mono}
\fi
\usepackage{tabularx}
\newcolumntype{C}{>{\centering\arraybackslash}X}
\begin{document}
\section*{PAGE 0x01000}
\setlength\extrarowheight{2pt} % default: 0pt
\setlength\arrayrulewidth{0.25pt} % default: 0.4pt
\setlength\tabcolsep{1pt} % default: 6pt
\begin{tabularx}{\textwidth}{@{} r |*{32}{C|} }
& \rt{0x00} & \rt{0x00} & \rt{0x00} & \rt{0x00}
& \rt{0x00} & \rt{0x00} & \rt{0x00} & \rt{0x00}
& \rt{0x00} & \rt{0x00} & \rt{0x00} & \rt{0x00}
& \rt{0x00} & \rt{0x00} & \rt{0x00} & \rt{0x00}
& \rt{0x00} & \rt{0x00} & \rt{0x00} & \rt{0x00}
& \rt{0x00} & \rt{0x00} & \rt{0x00} & \rt{0x00}
& \rt{0x00} & \rt{0x00} & \rt{0x00} & \rt{0x00}
& \rt{0x00} & \rt{0x00} & \rt{0x00} & \rt{0x00}\\
\hline
\multirow{2}{*}{\textbf{0x00000}} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \\
& 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \\
\hline
\textbf{0x00000} & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \\
\hline
\end{tabularx}
\end{document}
答案2
您的表格非常大,因此很难适应定义的\textwidth
,即表格内容应使用 \footnotesize
和\scriptsize
作为列标题的字体大小。对于简单的定义表格宽度以及单元格宽度,请选择tabularx
表格环境。
MWE 仅考虑XeLaTeX
引擎和Helvetica
缩放到 0.92 的字体。
编辑(1): 现在删除了旋转节点之间的垂直线以及第一列和第一列左(边框)线的水平线。
编辑(2):
现在已修正定义 时的小错误\rotheadsize
。到目前为止,它的测量被认为是字 0x00,它不是列标题中最长的。可以通过添加空格(而不是搜索最长的字)或查找最长的字(似乎是 0x04 和 0x6)来修复此问题。此修正允许使用字体大小\small
作为正文和列标题。使用此字体大小会使表格有点太宽,因此需要进一步减小\tabcolsep
(至 0pt)并在第一列和第二列之间添加小空间。此更改在代码中标记为% <---
。
编辑(3):对于外列和外行的粗体字体,字体定义更改为
\usepackage[scaled=0.92]{helvet}
\renewcommand{\familydefault}{\sfdefault}
\usepackage{fontspec}
\setmonofont{Latin Modern Mono}
(预计编译仅使用 XeLaTeX)
\documentclass[a4paper]{article}
\usepackage[total={170mm,240mm},
left=20mm,
top=10mm,
]{geometry}
\usepackage{array,graphicx}
\usepackage{rotating}
\usepackage{makecell, tabularx}
\renewcommand\theadfont{\small} % <---
\renewcommand\rotheadgape{}
\newcolumntype{C}{>{\centering\arraybackslash}X}
\newcommand\RH[1]{\multicolumn{1}{c}{\rothead{#1}}}
\usepackage{fontspec}
\usepackage[scaled=0.84]{helvet}
\renewcommand{\familydefault}{\sfdefault}
\usepackage{pifont}
\begin{document}
\section*{PAGE 0x01000}
\begingroup
\small % <---
\settowidth\rotheadsize{\theadfont 0x00 } % <---
\setlength\tabcolsep{0pt} % <---
\setcellgapes{2pt}
\makegapedcells
\begin{tabularx}{\linewidth}{@{} r!{\ \vrule width 0.6pt} % <---
*{31}{C|}C!{\vrule width 0.6pt}}
\RH{} & \RH{0x00} & \RH{0x01} & \RH{0x02} & \RH{0x03}
& \RH{0x04} & \RH{0x05} & \RH{0x06} & \RH{0x07}
& \RH{0x00} & \RH{0x01} & \RH{0x02} & \RH{0x03}
& \RH{0x04} & \RH{0x05} & \RH{0x06} & \RH{0x07}
& \RH{0x00} & \RH{0x01} & \RH{0x02} & \RH{0x03}
& \RH{0x04} & \RH{0x05} & \RH{0x06} & \RH{0x07}
& \RH{0x00} & \RH{0x01} & \RH{0x02} & \RH{0x03}
& \RH{0x04} & \RH{0x05} & \RH{0x06} & \RH{0x07}\\
\Xcline{2-33}{0.6pt}
0x00000 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03
& 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03
& 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \\
\cline{2-33}
0x00000 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03
& 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03
& 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \\
\cline{2-33}
0x00000 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03
& 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03
& 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \\
\cline{2-33}
0x00000 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03
& 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03
& 00 & 01 & 02 & 03 & 00 & 01 & 02 & 03 \\
\Xcline{2-33}{0.6pt}
\end{tabularx}
\endgroup
\end{document}