Respuesta1
Aquí tienes una forma de hacerlo con Tikz
.
Ideas básicas:
- dibuja algunas líneas
- Pon algunas
\node
s para las etiquetas a continuación. \draw
algunos caminos decorados arriba- recordar
coordinate
las relevantes para apoyar estas acciones - defina
/.style
s a medida que avanza para simplificar el código y realizar cambios de parámetros en un solo lugar - probar un enfoque equilibrado, que no es demasiado difícil de seguir como principiante Y usar algunas características de ruta para obtener un código más agradable
Líneas:
Digamos el primero.
\draw[bar] (0,0) coordinate (A) -- (1.5,0) coordinate (B) node[a]{$a$};
Piense en dibujar una línea simple, primero en coordenadas absolutas:
\draw (0,0) -- (1.5,0);
Debido a que Tikz
se trata de rutas, que terminan con un punto y coma ;
, podríamos agregar un nodo y eliminarlo \
antes de que finalice la ruta. Entonces este pone un nodo con texto (etiqueta) después de haber llegado a (1.5,0); acepta texto con cierto estilo a
, es decir, en modo matemático $a$
:
\draw (0,0) -- (1.5,0) node[a]{$a$};
Coloque la información de estilo para la línea al frente Y déjela en la sección de estilo al principio para especificar en detalle qué dibujar aquí:
\draw[bar] (0,0) -- (1.5,0) node[a]{$a$};
Finalmente agregue la \coordinate
declaración en la ruta, para recordar ciertas ubicaciones, Y suéltela \
porque todavía está en la misma ruta para dibujar. Ahí tienes:
\draw[bar] (0,0) coordinate (A) -- (1.5,0) coordinate (B) node[a]{$a$};
Los otros caminos se hacen similares, usando una combinación de movimientos relativos --++(1.5,0)
, coordenadas absolutas y usando conocimiento sobre el ancho mínimo de esos nodos que se han definido aquí como 5 mm. Sin duda, esto se puede hacer de forma más sistemática.
Etiquetas a continuación:
% ~~~ labels below ~~~~~~~~~~
\node[mth] at (A) {$1$};
\node[mth] at ([xshift=-2.5mm]C) {$f(i) + 1$};
Esto es bastante sencillo. La primera línea coloca el texto $1$
en la posición recordada (A)
, usando estilo mth
, lo que desplaza ese texto un poco hacia abajo en la dirección y.
El segundo es muy similar, además de alguna complicación que introduce al poner el nodo como $a$
lo hice yo. Entonces, una forma de corregir la posición es usarla (C)
y desplazarla un poco hacia atrás (la mitad del ancho mínimo):
([xshift=-2.5mm]C)
.
Overbrace:
% ~~~ labels above ~~~~
\draw[decorate,blue] ([ys]A) -- ([ys]B) node[alf]{$\alpha$};
\draw[decorate,blue] ([ys]D) -- ([ys]E) node[alf]{$\alpha$};
Combina conceptos anteriores, mientras usa decorate
, que es proporcionado por la biblioteca tikz decorations.pathreplacing
:
- dibuja un camino desde arriba (A) hasta arriba (B)
- lo reemplaza por un aparato ortopédico
- en azul
- poniendo un nodo a mitad de camino y un poco arriba para $\alpha$.
Bloque de estilo:
\begin{tikzpicture}[
a/.style={anchor=west,minimum width=5mm}, % for the node containing "a"
bar/.style={{Bar[]}-{Bar[]}}, % start- and end-tipps as Bars
bar2/.style={-{Bar[]}}, % only end-tipp as bar
mth/.style={yshift=-5mm}, % for placing the math-labels
decoration=brace, % the overbrace
alf/.style={midway,yshift=3mm}, % placing \alpha there
ys/.style={yshift=5mm}, % shortcut for these yshifts
]
Al menos para mí, esta parte se desarrolla a medida que avanzo, por ejemplo, así:
- recordar la parte de la línea descrita anteriormente
- poner opciones de estilo útiles directamente para
draw
ynode
- ¿son demasiado largos? ¿O los necesitaré al menos dos veces?
- luego muévelos aquí, con algunos nombres útiles
- Luego podría ajustar fácilmente todos esos cambios de etiquetas, etc. aquí mismo.
Código:
\documentclass[10pt,border=3mm,tikz]{standalone}
\usetikzlibrary{arrows.meta}
\usetikzlibrary{decorations.pathreplacing}
\begin{document}
\begin{tikzpicture}[
a/.style={anchor=west,minimum width=5mm}, % for the node containing "a"
bar/.style={{Bar[]}-{Bar[]}}, % start- and end-tipps as Bars
bar2/.style={-{Bar[]}}, % only end-tipp as bar
mth/.style={yshift=-5mm}, % for placing the math-labels
decoration=brace, % the overbrace
alf/.style={midway,yshift=3mm}, % placing \alpha there
ys/.style={yshift=5mm}, % shortcut for these yshifts
]
% ~~~ lines ~~~~~~~~~~~~
\draw[bar] (0,0) coordinate (A) -- (1.5,0) coordinate (B) node[a]{$a$};
\draw[bar] (2,0) coordinate (C) -- (3.5,0) coordinate (D);
\draw[bar2](3.5,0) --++(1.5,0) coordinate (E) node[a]{$a$};
\draw[bar] (5.5,0) --++(1.5,0) node[a]{$P$};
% ~~~ labels below ~~~~~~~~~~
\node[mth] at (A) {$1$};
\node[mth] at ([xshift=-2.5mm]C) {$f(i) + 1$};
\node[mth] at (D) {$i - f(i) + 1$};
\node[mth] at ([xshift=+2.5mm]E) {$i + 1$};
% ~~~ labels above ~~~~
\draw[decorate,blue] ([ys]A) -- ([ys]B) node[alf]{$\alpha$};
\draw[decorate,blue] ([ys]D) -- ([ys]E) node[alf]{$\alpha$};
\end{tikzpicture}
\end{document}