以下代码呈现了具有三个顶点和三个边的图形。(没什么特别的。)在第一个顶点和第二个顶点之间,我想传达可能还有n - 1
更多顶点。第二个“显示”的顶点实际上可能是第 n 个顶点。我在使用该\underbrace
命令时收到错误消息。我在节点命令中使用它。我认为这在节点命令中是允许的。可以\mathrlap
在节点命令中使用吗?其中任何一个都应该在数学模式下编码吗?
我可能想在括号下写一段更长的文字 - 比如“这里可能还有 $n+1$ 个顶点,但这是我知道的,也是你自己发现的。”我该如何将其排版成两行或三行?
在图中,当连续“显示”顶点之间可能有更多图形时,关于它们之间的边的约定是什么?我是否在每个顶点上绘制边的一部分?我是否在两个“显示”顶点之间的中间排版椭圆?我是否在“显示”顶点之间排版一对椭圆 - 每个顶点旁边一个椭圆?
\documentclass{amsart}
\usepackage{amsmath}
\usepackage{mathtools} %Loads amsmath
\usepackage{tikz}
\usetikzlibrary{calc,intersections}
\begin{document}
\begin{tikzpicture}
\path (0,0) coordinate (vertex_1) (3,0) coordinate (vertex_n) (5,0) coordinate (vertex_n+1);
\draw[fill] (vertex_1) circle (1.5pt);
\draw[fill] (vertex_n) circle (1.5pt);
\draw[fill] (vertex_n+1) circle (1.5pt);
\draw (vertex_1) -- ($(vertex_1) +(0.75,0)$);
\draw (vertex_n) -- ($(vertex_n) +(-0.75,0)$) -- (vertex_n+1);
\coordinate (midpoint) at ($($(vertex_1) +(0.75,0)$)!0.5!($(vertex_n) +(-0.75,0)$)$);
\coordinate (brace) at ($(midpoint) +(0,-0.75)$);
%\node at (brace){\mathrlap{\underbrace{\phantom{n + 1\text{ more vertices}}}_{text}}};
\end{tikzpicture}
\end{document}
答案1
在第一个顶点和第二个顶点之间,我想表示可能还有 n - 1 个顶点。第二个“显示”的顶点实际上可能是第 n 个顶点。我使用 \underbrace 命令时收到错误消息。我在节点命令中使用它。我认为这在节点命令中是允许的。\mathrlap 可以在节点命令中使用吗?其中任何一个都应该在数学模式下编码吗?
您需要将\underbrace
等放入数学模式中才能使其工作(我不知道这是否是预期的输出)
\documentclass{amsart}
\usepackage{amsmath}
\usepackage{mathtools} %Loads amsmath
\usepackage{tikz}
\usetikzlibrary{calc,intersections}
\begin{document}
\begin{tikzpicture}
\path (0,0) coordinate (vertex_1) (3,0) coordinate (vertex_n) (5,0) coordinate (vertex_n+1);
\draw[fill] (vertex_1) circle (1.5pt);
\draw[fill] (vertex_n) circle (1.5pt);
\draw[fill] (vertex_n+1) circle (1.5pt);
\draw (vertex_1) -- ($(vertex_1) +(0.75,0)$);
\draw (vertex_n) -- ($(vertex_n) +(-0.75,0)$) -- (vertex_n+1);
\coordinate (midpoint) at ($($(vertex_1) +(0.75,0)$)!0.5!($(vertex_n) +(-0.75,0)$)$);
\coordinate (brace) at ($(midpoint) +(0,-0.75)$);
\node at (brace){$\mathrlap{\underbrace{\phantom{n + 1\text{ more vertices}}}_{text}}$};
\end{tikzpicture}
\end{document}
我可能想在括号下写一段更长的文字 - 比如“这里可能还有 $n+1$ 个顶点,但这是我知道的,也是你自己发现的。”我该如何将其排版成两行或三行?
我推荐的具有自动换行功能的版本:
\documentclass[margin=2mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc,intersections}
\begin{document}
\begin{tikzpicture}
\path (0,0) coordinate (vertex_1) (3,0) coordinate (vertex_n) (5,0) coordinate (vertex_n+1);
\draw[fill] (vertex_1) circle (1.5pt);
\draw[fill] (vertex_n) circle (1.5pt);
\draw[fill] (vertex_n+1) circle (1.5pt);
\draw (vertex_1) -- ($(vertex_1) +(0.75,0)$);
\draw (vertex_n) -- ($(vertex_n) +(-0.75,0)$) -- (vertex_n+1);
\coordinate (midpoint) at ($($(vertex_1) +(0.75,0)$)!0.5!($(vertex_n) +(-0.75,0)$)$);
\node (x) at (midpoint) {$\cdots$};
\node[draw,font=\footnotesize,text width=3cm] (callout) at (2,-2) {$n+1$ more vertices may be here but that is for me to know and you to find out.};
\draw[->] (callout) -- (x);
\end{tikzpicture}
\end{document}
或者手动换行:
\documentclass[margin=2mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc,intersections}
\begin{document}
\begin{tikzpicture}
\path (0,0) coordinate (vertex_1) (3,0) coordinate (vertex_n) (5,0) coordinate (vertex_n+1);
\draw[fill] (vertex_1) circle (1.5pt);
\draw[fill] (vertex_n) circle (1.5pt);
\draw[fill] (vertex_n+1) circle (1.5pt);
\draw (vertex_1) -- ($(vertex_1) +(0.75,0)$);
\draw (vertex_n) -- ($(vertex_n) +(-0.75,0)$) -- (vertex_n+1);
\coordinate (midpoint) at ($($(vertex_1) +(0.75,0)$)!0.5!($(vertex_n) +(-0.75,0)$)$);
\node (x) at (midpoint) {$\cdots$};
\node[draw,font=\footnotesize,align=center] (callout) at (2,-2) {$n+1$ more vertices may\\be here but that is for me to\\know and you to find out.};
\draw[->] (callout) -- (x);
\end{tikzpicture}
\end{document}
在图中,当连续“显示”顶点之间可能有更多图形时,关于它们之间的边的约定是什么?我是否在每个顶点上绘制边的一部分?我是否在两个“显示”顶点之间的中间排版椭圆?我是否在“显示”顶点之间排版一对椭圆 - 每个顶点旁边一个椭圆?
该问题不属于帮助中心定义的 TeX、LaTeX 或相关排版系统的范围。
答案2
\documentclass{amsart}
\usepackage{amsmath}
\usepackage{mathtools} %Loads amsmath
\usepackage{tikz}
\usetikzlibrary{calc,intersections}
\begin{document}
\begin{tikzpicture}
\path (0,0) coordinate (vertex_1) (3,0) coordinate (vertex_n) (5,0) coordinate (vertex_n+1);
\draw[fill] (vertex_1) circle (1.5pt);
\draw[fill] (vertex_n) circle (1.5pt);
\draw[fill] (vertex_n+1) circle (1.5pt);
\draw (vertex_1) -- ($(vertex_1) +(0.75,0)$);
\draw (vertex_n) -- ($(vertex_n) +(-0.75,0)$) -- (vertex_n+1);
\coordinate (midpoint) at ($(vertex_1)!0.5!(vertex_n)$);
\coordinate (center_of_brace) at ($(midpoint) +(0,-0.75)$);
\node[font=\footnotesize, anchor=north, inner sep=0, align=center] at (center_of_brace){\mbox{$n + 1$ more} \\
{\mbox{vertices}}};
\end{tikzpicture}
\end{document}