我正在尝试重新创建所附的图片。出于某种原因,我无法使用 draw 命令在两个垂直条之间使用三角形-三角形代码。我尝试了不同的组合,但运气不佳。这是我的 MWE。感谢您的时间和您提供的任何帮助。
\documentclass[tikz]{article}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\usetikzlibrary{hobby}
\usetikzlibrary{external}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usepgfplotslibrary{statistics}
\usetikzlibrary{arrows.meta}
\title{Basic Tikz Graphs}
\author{nbennett }
\date{February 2022}
\begin{document}
\maketitle
\begin{tikzpicture}[important line/.style={thick}]
\draw [opacity=1,important line] (-2,4) -- (2,4) -- (0,0) -- cycle;%big triangle
\draw [important line,fill=white,opacity=1] (0,4) circle (2cm and 0.4cm);%top of cone
\draw [fill=blue!20!white,opacity=1] (-1.49,2.98) -- (1.49,2.98) -- (0,0) -- cycle;
\draw [fill=blue!10!white,opacity=1,] (0,3) circle (1.49cm and 0.3cm);
\draw[dashed] (0,0) -- (0,4) --(2,4); %dashed lines
\draw (1,4.18) node{\scriptsize $ 2 $}; % number
\draw[dashed] (0,2.98) -- (1.49,2.98); %dashed line
\draw (0.745,3.12) node{\scriptsize $ r $};
\draw[|Triangle-Triangle|] (2.4,0) -- (2.4,4); %PROBLEM IS HERE
\draw[white, fill=white] (2.3,1.75) rectangle (2.5,2.25); %an empty box for the space in middle
\draw (2.4,2) node{\scriptsize $ 10 $}; %a number
\draw[|Triangle-Triangle|] (1.65,0) -- (1.65,2.98); %PROBLEM HERE TOO
\draw[white, fill=white] (1.65,1.29) rectangle (1.65,1.69);
\path(1.65,1.29)--(1.65,1.69)node[midway]{\scriptsize \(h\)};
\end{tikzpicture}
\end{document}
答案1
语法arrows
规格有点复杂。
其要点是,非单个字母的提示名称需要以选项结尾,即使它们是空的。
因此,使用
| Triangle[]-Triangle[] |
是指定箭头的正确方法。
但是,由于包含,因此]
您需要保护它免受选项解析器(查找]
)的影响:
\draw[{| Triangle[]-Triangle[] |}] …;
% or explicitly
\draw[arrows={| Triangle[]-Triangle[] |}] …;
特别>
钥匙可以用来使这变得更容易:
\draw[>=Triangle, |<->|] …;
也就是说,你总是可以指定自己的小费,比如
TriBar/.tip = {Triangle[] Bar[]}
稍后您可以使用它作为
\draw[TriBar-TriBar] …;
如果你经常在图片/范围内需要这个技巧,你可以再次使用
> = TriBar
然后只需<->
在路径上使用即可。
代码
\documentclass[tikz]{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
\begin{document}
\begin{tikzpicture}[important line/.style={thick}]
\draw [opacity=1,important line] (-2,4) -- (2,4) -- (0,0) -- cycle;%big triangle
\draw [important line,fill=white,opacity=1] (0,4) circle (2cm and 0.4cm);%top of cone
\draw [fill=blue!20!white,opacity=1] (-1.49,2.98) -- (1.49,2.98) -- (0,0) -- cycle;
\draw [fill=blue!10!white,opacity=1,] (0,3) circle (1.49cm and 0.3cm);
\draw[dashed] (0,0) -- (0,4) --(2,4); %dashed lines
\draw (1,4.18) node{\scriptsize $ 2 $}; % number
\draw[dashed] (0,2.98) -- (1.49,2.98); %dashed line
\draw (0.745,3.12) node{\scriptsize $ r $};
\draw[{| Triangle[]-Triangle[] |}] (2.4,0) -- (2.4,4); % ← !
\draw[white, fill=white] (2.3,1.75) rectangle (2.5,2.25); %an empty box for the space in middle
\draw (2.4,2) node{\scriptsize $ 10 $}; %a number
\draw[>=Triangle, |<->|] (1.65,0) -- (1.65,2.98); % ← !
\draw[white, fill=white] (1.65,1.29) rectangle (1.65,1.69);
\path(1.65,1.29)--(1.65,1.69)node[midway]{\scriptsize \(h\)};
\end{tikzpicture}
\end{document}