我想在表格中对齐显示一些十六进制代码。这是我得到的:
\begin{table}[h]
\caption{Dirty table}
\centering
\begin{tabular}{p{6cm}|p{6cm}}
\textcolor{red}{0000 0000 0001 0000 0000 0000 3162 0005 0009 0000 1000 0000 0900 0000 0000 0000} 0014 0000 0000 0000 0000 usw.
&
\textcolor{red}{0000 0000 0001 0000 0000 0000 3162 0005 0009 0000 1000 0000 0900 0000 0000 0000} 001a 0000 0000 0000 0000 usw.
\end{tabular}
\label{tab:BitcoinCoreMobileSignatur}
\end{table}
如何正确对齐这些六角块?我尝试使用 siuntix 包
\begin{tabular}{S[table-column-width=6cm]|S[table-column-width=6cm]}
发现了一些其他变化这里。你有什么想法吗?
谢谢
答案1
您应该使用等宽字体。以下是 Inconsolata 字体:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{inconsolata}
\usepackage{xcolor,array}
\newlength{\hexcodewidth}
\begin{document}
\begin{table}[htp]
\centering
\caption{Dirty table}\label{tab:BitcoinCoreMobileSignatur}
\medskip
\ttfamily
\settowidth{\hexcodewidth}{0}% width of a character
\setlength{\hexcodewidth}{\dimexpr24\hexcodewidth+1em}% 24 characters per line
\setlength{\spaceskip}{\dimexpr1em/5}% five spaces
\begin{tabular}{p{\hexcodewidth}|p{\hexcodewidth}}
\textcolor{red}{%
0000 0000 0001 0000 0000 0000
3162 0005 0009 0000 1000 0000
0900 0000 0000 0000} 0014 0000
0000 0000 0000 usw.
&
\textcolor{red}{%
0000 0000 0001 0000 0000 0000
3162 0005 0009 0000 1000 0000
0900 0000 0000 0000} 001a 0000
0000 0000 0000 usw.
\end{tabular}
\end{table}
\end{document}
答案2
您可以使用等宽字体,或使用普通字体,但将每个十六进制数字设置在固定宽度的框中。
\documentclass{article}
\usepackage{color,array}
\settowidth{\dimen0}{1}
\def\z#1{\zz#1 !!!!}
\def\zz#1#2#3#4{%
\ifx!#1\unskip\else
\makebox[\dimen0]{#1}%
\makebox[\dimen0]{#2}%
\makebox[\dimen0]{#3}%
\makebox[\dimen0]{#4}%
\space
\expandafter\zz
\fi}
\newcolumntype{P}{>{\raggedright\arraybackslash}p}
\addtolength\textwidth{40pt}
\begin{document}
\begin{tabular}{P{6cm}|P{6cm}}
\textcolor{red}{0000 00ag 0001 0eef 0000 0000 3162 0005 0009 0000 1000 0000 0900 0000 0000 0000} 0014 0000 0000 0000 0000 usw.
&
\textcolor{red}{ccf0 fff1 0000 0000 0000 3162 0005 0009 0000 1000 0000 0900 0000 0000 0000} 001a 0000 0000 0000 0000 usw.
\end{tabular}
\bigskip
{\ttfamily
\begin{tabular}{P{6cm}|P{6cm}}
\textcolor{red}{0000 00ag 0001 0eef 0000 0000 3162 0005 0009 0000 1000 0000 0900 0000 0000 0000} 0014 0000 0000 0000 0000 usw.
&
\textcolor{red}{ccf0 fff1 0000 0000 0000 3162 0005 0009 0000 1000 0000 0900 0000 0000 0000} 001a 0000 0000 0000 0000 usw.
\end{tabular}}
\bigskip
\begin{tabular}{P{6cm}|P{6cm}}
\textcolor{red}{\z{0000 00ag 0001 0eef 0000 0000 3162 0005 0009 0000 1000 0000 0900 0000 0000 0000}}
\z{0014 0000 0000 0000 0000 usw.}
&
\textcolor{red}{\z{ccf0 fff1 0000 0000 0000 3162 0005 0009 0000 1000 0000 0900 0000 0000 0000}}
\z{001a 0000 0000 0000 0000 usw.}
\end{tabular}
\end{document}