我目前正在做一些离散数学作业,涉及十进制、二进制、八进制和十六进制之间的转换。教授向我们展示了首先从十进制转换为二进制,然后使用位分组转换为八进制和十六进制的方法。示例:
32 base 10 = 100000 base 2
100 000
4 0
= 40 base 8
现在我想在 LaTeX 中演示类似的东西。但是,我似乎无法正确设置格式。有人能给我指出正确的方向吗?
编辑
这就是我尝试的
\begin{align*}
\texttt{100000101010} \\
\texttt{1001 0001 1011} \\
\texttt{ 9 1 B} \\
2331_{10} = \mathtt{91B_{16}}
\end{align*}
基本上我只希望第三个 \texttt 中的数字与其上方行中分组的最后一位数字对齐
答案1
看来,使用 verbatim 环境将是简单的解决方案:
\begin{verbatim}
100000101010
1001 0001 1011
9 1 B
\end{verbatim}
\[
2331_{10} = \mathtt{91B_{16}}
\]
上述代码的结果就像begin{verbatim} ... \end{verbatim}
现在看起来的和下面给出的方程之间的代码一样。
答案2
以下是另一个常规选项align
:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{align*}
32 \text{ base } 10 &= 100000 \text{ base } 2 \\
&\phantom{{}={}} 100\,000 \\
&\phantom{{}={}} 4\phantom{00\,}0 \\
&= 40 \text{ base } 8 \\
32_{10} &= 100000_2 \\
&\phantom{{}={}} 100\,000 \\
&\phantom{{}={}} 4\phantom{00\,}0 \\
&= 40_8
\end{align*}
\end{document}
答案3
大批
您可以将array
与array
包一起使用来设置列的格式。要获取数学模式下的打字机字体,很遗憾,您必须使用已弃用的\tt
命令。
\documentclass{article}
\usepackage{mathtools,array}
\begin{document}
\begin{equation*}
\begin{array}{>{\tt}r@{}>{{}}c<{{}}*{3}{@{}>{\tt}r}}
& & 1000 & 0010 & 1010 \\
& & 1001 & 0001 & 1011 \\
& & 9 & 1 & B \\
2331_{10} &=& 91B_{16} \\
\end{array}
\end{equation*}
\end{document}
表格
正如@egreg 在评论中所建议的那样,您还可以使用 以文本模式排版整个内容tabular
。
\documentclass{article}
\begin{document}
\begin{centering}
\ttfamily
\begin{tabular}{r@{\ }c@{\ }*{3}{r@{}}}
& & 1000 & 0010 & 1010 \\
& & 1001 & 0001 & 1011 \\
& & 9 & 1 & B \\
2331\textsubscript{10} &=& 91B\textsubscript{16} \\
\end{tabular}
\end{centering}
\end{document}
活跃角色
对于超级简单的语法,您可以使_
换行符处于活动状态。
\documentclass{article}
\usepackage{varwidth}
\newenvironment{bitalign}
{\begin{center}\begin{varwidth}{\textwidth}
\ttfamily \parindent=0pt \obeyspaces \obeylines
\begingroup\lccode`~=`\^^M
\lowercase{\endgroup\def~}{\par\leavevmode}
\catcode`_=13 \begingroup\lccode`~=`_
\lowercase{\endgroup\def~}{\textsubscript}}
{\end{varwidth}\end{center}}
\begin{document}
\begin{bitalign}
100000101010
100100011011
9 1 B
2331_{10} = 91B_{16}
\end{bitalign}
\end{document}