答案1
这不是一个好代码,但它可能有用
\documentclass{article}
\usepackage{mathtools}
\begin{document}
\[
\overset{\underbrace{p \to F}}{\quad\left.\begin{matrix}F'\\ \uparrow\\ p'\end{matrix}\right\}}
\underbrace{F''\leftarrow p''}_{\quad\left.\begin{matrix}F'''\\ \uparrow\\ p'''\end{matrix}\right\}\displaystyle\mathrlap{\dots}}
\]
\end{document}
基本上,我将公式分为两部分:左侧部分是一个垂直矩阵,其顶部用 放置了带有下括号的项\overset
。右侧部分只是使用\underbrace
并将垂直矩阵放在其下方。(这里可能有人用过\underset
。)
答案2
使用 tikz (decorations.pathreplacing 库)
\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{decorations.pathreplacing}
% define horizontal and vertical braces
\newcommand{\horbrace}[4][->]{
\node (#2)[right of=#3]{$#2$};
\draw[#1](#2)--(#3);
\draw [decorate,decoration={brace,amplitude=5pt},thick]
(#2.south east) -- (#3.south west) node(#4) [black,midway,below=5pt] {$#4$};}
\newcommand{\vertbrace}[3]{
\node (#2)[below of=#1]{$#2$};
\draw[->](#2)--(#1);
\draw [decorate,decoration={brace,amplitude=5pt},thick]
(#1.north east) -- (#2.south east) node(#3) [black,midway,right=5pt] {$#3$};}
\begin{document}
\begin{tikzpicture}[>=stealth,node distance=1.5cm]
\node (P){$P$};
\horbrace[<-]{F}{P}{F'}
\vertbrace{F'}{P'}{F''}
\horbrace{P''}{F''}{F'''}
\vertbrace{F'''}{P'''}{...}
\end{tikzpicture}
\end{document}
输出
答案3
这可以在 Tikz 中完成。
\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{decorations.pathreplacing, positioning, calc}
\begin{document}
\begin{tikzpicture}[blue]
\node (A) {$\bf{P} \rightarrow F$};
\node (C) [below=of A] {$\bf{P'}$};
\node (B) [below=of A, xshift=3mm, yshift=10mm] {$\bf{F'}$};
\node (D) [xshift=15mm] at ($(A)!0.5!(C)$) {$\bf{F''} \leftarrow P''$};
\node (E) [below=of D,yshift=9mm] {$\bf{F'''}$};
\node (F) [below=of E] {$\bf{P'''}$};
\node (G) [xshift=7mm] at ($(E)!0.5!(F)$) {...};
\node (inv1) [right=of B, xshift=-12mm, yshift=0mm]{};
\node (inv2) [right=of C, xshift=-12mm, yshift=0mm]{};
\draw[decorate,decoration={brace,mirror}] (A.south west) -- (A.south east);
\draw[decorate,decoration={brace,mirror}] (D.south west) -- (D.south east);
\draw[decorate,decoration={brace}] (E.east) -- (F.east);
\draw[decorate,decoration={brace}] (inv1.north) |- (inv2.north);
\draw [shorten >=2mm, ->](C) -- (A);
\draw [->] (F) -- (E);
\end{tikzpicture}
\end{document}
另一种可能的输出更加有条理。
\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{decorations.pathreplacing, positioning, calc}
\begin{document}
\begin{tikzpicture}[red]
%create nodes
\node (A) {$\bf{P} \rightarrow F$};
\node (B) [below=of A,yshift=9mm] {$\bf{F'}$};
\node (C) [below=of B] {$\bf{P'}$};
\node (D) [xshift=13mm] at ($(A)!0.5!(C)$) {$\bf{F''} \leftarrow P''$};
\node (E) [below=of D,yshift=9mm] {$\bf{F'''}$};
\node (F) [below=of E] {$\bf{P'''}$};
\node (G) [xshift=7mm] at ($(E)!0.5!(F)$) {...};
%connect nodes
\draw[decorate,decoration={brace,mirror}] (A.south west) -- (A.south east);
\draw[decorate,decoration={brace,mirror}] (D.south west) -- (D.south east);
\draw[decorate,decoration={brace}] (E.east) -- (F.east);
\draw[decorate,decoration={brace}] (B.east) -- (C.east);
\draw [->] (C) -- (B);
\draw [->] (F) -- (E);
\end{tikzpicture}
\end{document}