使用类似 underbrace 的东西来显示进展的差异

使用类似 underbrace 的东西来显示进展的差异

在此处输入图片描述

我正在尝试制作上面手写图片中所示的内容。下括号似乎不起作用,因为您不能使用数字作为下括号的开头和结尾。有什么想法吗?

答案1

我会用蒂克兹 matrix of math nodes执行此操作。这些矩阵提供了一种显示“装饰”矩阵的好方法。在这种情况下,您的装饰是 s \underbrace。任何都\matrix of math nodes可以\underbrace在它下面放置一个,但棘手的是您需要\underbrace在几个不同的列之间放置一个。下面的代码定义了一个,pic用于\underbrace在具有给定标签的指定列之间放置一个。代码生成:

在此处输入图片描述

以下是完整的 MWE:

\documentclass[10pt,a4paper]{report}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{matrix,calc}
\newdimen\colL
\newdimen\colR

\tikzset{%
  pics/underbrace/.style args={#1,#2,#3}{%
    % a pic for putting an underbrace under certain columns
    % #1 = left column
    % #2 = right column index
    % #3 = label text
    code = {
       \pgfextractx\colL{\pgfpointanchor{M-1-#1}{south}}  % x-coords of columns
       \pgfextractx\colR{\pgfpointanchor{M-1-#2}{south}}
       % draw the delimiter with the correct width
       \node[rectangle, below delimiter={\}}, minimum width=\dimexpr\colR-\colL-1pt]
              at ($ (M-1-#1)!0.5!(M-1-#2) $){};
       % the label
       \node at ($ (M-1-#1.south)!0.5!(M-1-#2.south) $)[below=1mm]{$\scriptstyle #3$};
       }
   },
}

\begin{document}

  \begin{tikzpicture}[auto]
    \matrix (M)[matrix of math nodes,row sep=1cm,column sep=1mm]{
      x! & 2x! & 3x! & \ldots & (n-x-1)x! & (n-x)x! & (x+1)!\\
     };
     \pic{underbrace={1,2,2}};
     \pic{underbrace={2,3,\tfrac32}};
     \pic{underbrace={5,6,\tfrac{n-x}{n-x-1}}};
     \pic{underbrace={6,7,\tfrac{x+1}{n-x}}};
  \end{tikzpicture}

\end{document}

再解释几句:

  • 该命令\pic{underbrace={col1,col2,text}};有三个参数,分别是应该跨越的两列\underbrace和括号下方的文本。我已将行索引硬编码为 row 1。添加另一个参数以允许将下括号添加到任意行将非常简单。

  • (M)命令中的表示\matrix (M)矩阵的行和列可以称为M-<row index>-<column index>。因此第一行的条目是M-1-1M-1-2,...

  • 表示0.5($ (M-1-1.south)!0.5!(M-1-2.south) $)是位于两列中间的一个点12

相关内容