TeX - LaTeX Asked by Aria on December 21, 2020
On page 61/1318 TikZ manual there is an example which I simplify and change it a little bit to create the following picture:
Here is my code:
documentclass{standalone}
usepackage{tikz}
usetikzlibrary {arrows.meta}
usetikzlibrary {decorations.pathmorphing}
begin{document}
begin{tikzpicture}
%draw [->,-to, thick, decorate,
draw [shorten >=1mm,-to, thick, decorate, red,
decoration={snake,amplitude=.4mm,segment length=2mm, pre=moveto, pre length=1mm, post length=2mm}]
(0,0) -- (3,0)
node [above=1mm,align=center,midway, text width=3 cm]
{
replacement of\
the textcolor{black}{capacity}\
by textcolor{black}{two places}
};
draw [|-|] (2.8,0) -- (3,0);
draw [|-|] (0,0) -- (.1,0);
end{tikzpicture}
end{document}
I have these questions:
-to
do?pre=moveto
do?post length=2mm
according to the measurement using draw [|-|] (2.8,0) -- (3,0);
it looks post length is shorter.shorten >=1mm
is applied where and how it works with pre and post lengths?It is customary here that there is only one question at a time. Nevertheless, I will answer only the first two questions, and I urge you to ask the other question again, which alone deserves further development.
-to
do?In TikZ and pgf Manual for version 1.18, on page 322, we learn that -to
is an arrow.
Looking at its shape, we can see that it is the Computer Modern Rightarrow as shown on page 207 of the 3.1.5b manual. I quote:
Instead of a
<arrow tip kind name>
, you may also provide the name of a so-called shorthand. Shorthands look like normal arrow tip kind names and, indeed, you will often be using shorthands without noticing that you do. The idea is that instead of, say, Computer Modern Rightarrow you might wish to just write Rightarrow or perhaps just To or even just >.
pre=moveto
do?When you decorate a path, you can have the decoration start a little later to start by drawing a straight line on a few millimetres and then decorate it properly. moveto means to go to a certain place without drawing or colouring, it's a move. Here pre=moveto, pre length=1mm
specifies that the first millimetre nothing will be drawn, the decoration does nothing and nothing will be drawn the first millimetre of the path.
Correct answer by AndréC on December 21, 2020
documentclass{article}
usepackage{tikz}
usetikzlibrary{decorations.pathmorphing}
begin{document}
begin{tikzpicture}[nodes={font=smallttfamily, black, right}]
draw[thick, red] (0, 0) -- (3, 0)
node {1.1 init with "thick, red"};
draw[thick, red, shorten >=1mm, yshift=-.5cm]
(0, 0) -- (3, 0)
node {1.2 add "shorten >=1mm"};
draw[|-|, yshift=-.4cm] (2.9, 0) -- node[above, font=tiny] {1mm} (3, 0);
draw[thick, red, shorten >=1mm, -to, yshift=-1cm]
(0, 0) -- (3, 0)
node {1.3 add arrow "-to"};
begin{scope}[yshift=-2cm]
draw[thick, red] (0, 0) -- (3, 0)
node {2.1 the same as 1.1};
draw[thick, red, decorate,
decoration={snake},
yshift=-.5cm,
] (0, 0) -- (3, 0)
node {2.2 add "decorate, decoration={snake}"};
draw[thick, red, decorate,
decoration={snake, amplitude=.4mm, segment length=2mm},
yshift=-1cm,
] (0, 0) -- (3, 0)
node {2.3 add "decoration={..., amplitude=.4mm, segment length=2mm}"};
draw[thick, red, decorate,
decoration={
snake, amplitude=.4mm, segment length=2mm,
pre length=1mm, post length=2mm
},
yshift=-1.5cm,
] (0, 0) -- (3, 0)
node {2.4 add "decoration={..., pre length=1mm, post length=2mm}"};
draw[|-|, yshift=-1.4cm] (0, 0) -- node[above, font=tiny] {1mm} (.1, 0);
draw[|-|, yshift=-1.4cm] (2.8, 0) -- node[above, font=tiny] {2mm} (3, 0);
draw[thick, red, decorate,
decoration={
snake, amplitude=.4mm, segment length=2mm,
pre length=1mm, post length=2mm, pre=moveto
},
yshift=-2.0cm,
] (0, 0) -- (3, 0)
node {2.5 add "decoration={..., pre=moveto}"};
draw[|-|, yshift=-1.9cm] (0, 0) -- node[above, font=tiny] {1mm} (.1, 0);
end{scope}
begin{scope}[yshift=-5cm]
draw[thick, red, shorten >=1mm, -to, decorate,
decoration={
snake, amplitude=.4mm, segment length=2mm,
}
] (0, 0) -- (3, 0)
node {3.1 combine 1.3 and 2.3, not good};
defx{ }
draw[thick, red, shorten >=5mm, -to, decorate,
decoration={
snake, amplitude=.4mm, segment length=2mm,
},
yshift=-.5cm,
] (0, 0) -- (3, 0)
node[yshift=-.6cm, align=left] {
3.2 combine 1.3 and 2.3 and \
x use "shorten >=5mm" to show the real problem:\
x decoration is not shortened and a line is drawn \
x from real end (3, 0) to shortened end (2.5, 0).
};
draw[|-|, yshift=-.4cm] (2.5, 0) -- node[above, font=tiny] {5mm} (3, 0);
draw[thick, red, shorten >=5mm, -to, decorate,
decoration={
snake, amplitude=.4mm, segment length=2mm,
post length=6mm, pre=moveto
},
yshift=-2.2cm,
] (0, 0) -- (3, 0)
node {3.2' add "decoration={..., post length=6mm, pre=moveto}", ok};
draw[thick, red, shorten >=1mm, -to, decorate,
decoration={
snake, amplitude=.4mm, segment length=2mm,
pre length=1mm, post length=2mm, pre=moveto
},
yshift=-2.7cm
] (0, 0) -- (3, 0)
node {3.3 combine 1.3 and 2.5, ok};
draw[|-|, yshift=-2.6cm] (2.9, 0) -- node[above, font=tiny] {1mm} (3, 0);
end{scope}
end{tikzpicture}
end{document}
Answered by muzimuzhi Z on December 21, 2020
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP