将数字分为两部分下划线;数学模式

将数字分为两部分下划线;数学模式

我正在尝试对二进制数字进行如下解释:

  10111101
  '--''---'
    B   D

为了显示二进制和十六进制的对应关系,但使用两次下括号命令:

\underbrace{1011}_B\underbrace{1101}_D

显然,我得到了两个不同的“词”:

  1011 1101
  '--' '---'
    B    D

我该如何解决这个问题?

答案1

\underbrace is defined infontmath.ltx`(LaTeX 数学内核的一部分)如下(缩短):

\def\underbrace#1{\mathop{...}\limits}

该构造定义为数学运算符 ( \mathop)。这样,下限可以很容易地指定为下标。但 TeX 会在两个\mathop原子之间添加一个很窄的空间。

可以通过添加负数细空格 来删​​除此空格\!。或者可以将整个下括号结构放入花括号(子公式)中。然后它将成为普通的数学原子(\mathord),其中 TeX 不会在它们之间添加空格。

下面的例子显示了这两种方法的区别:

\documentclass{article}

\begin{document}
\[
  a
  \underbrace{1011}_B
  \!
  \underbrace{1101}_D
  b
\]
\[
  a
  {\underbrace{1011}_B}
  {\underbrace{1101}_D}
  b
\]
\end{document}

结果

答案2

我建议使用tikzmark

在此处输入图片描述

传递给的参数\InsertUnderBrace为:

  • [#1]tikz 绘图选项,

  • [#2]tikz 括号选项,

  • {#3}左边的名字\tikzmark

  • {#4}权利名称\tikzmark

  • {#5}放置在括号下方的文本。

笔记:

  • 这确实需要两次运行。第一次确定位置,第二次进行绘图。

  • 这使用\InsertUnderBrace来自不对称过度支撑

代码:

\documentclass{article}
\usepackage{amsmath}
\usepackage{xparse}
\usepackage{tikz}
\usetikzlibrary{calc}
\usetikzlibrary{decorations.pathreplacing}

\newcommand{\tikzmark}[1]{\tikz[overlay,remember picture] \node (#1) {};}

% Tweak these as necessary
\newcommand*{\BraceAmplitude}{0.4em}%
\newcommand*{\BraceAspect}{0.5}% 
\newcommand*{\VerticalOffset}{0.4ex}%  
\newcommand*{\HorizontalOffset}{0.0em}% 


\NewDocumentCommand{\InsertUnderBrace}{%
    O{} % #1 = draw options
    O{} % #2 = optional brace options
    m   % #3 = left tikzmark
    m   % #4 = right tikzmark
    m   % #5 = text to place underbrace
}{%
    \begin{tikzpicture}[overlay,remember picture]
\draw [decoration={brace, amplitude=\BraceAmplitude, aspect=\BraceAspect, #2}, decorate, thick, draw=blue, text=black, #1]
        ($(#4)+(\HorizontalOffset,-\VerticalOffset)$) -- 
        ($(#3)+(-\HorizontalOffset,-\VerticalOffset)$)
        node [below=\VerticalOffset, midway] {#5};
    \end{tikzpicture}%
}%


\begin{document}
$\tikzmark{Left Mark} 1011 \tikzmark{Middle Mark} 1101 \tikzmark{Right Mark}$ 
\InsertUnderBrace[blue]{Left Mark}{Middle Mark}{B}%
\InsertUnderBrace[red]{Middle Mark}{Right Mark}{D}%
\end{document}

相关内容