
Estoy tratando de descubrir la mejor manera de agregar barras de escala a mis imágenes, como en estas maravillosas imágenes de copos de nieve (la imagen en tamaño completo es un poco grande, pero es el mejor ejemplo de lo que estoy tratando de hacer):
Una posibilidad sería insertar las barras de escala usando un programa diferente. Sin embargo, quiero asegurarme de que el texto sea agradable y nítido, en lugar de guardarlo como parte de una imagen rasterizada. Además, si inserto las barras de escala de antemano, el texto cambiará de tamaño cuando LaTeX escale las imágenes.
Hasta ahora no he podido encontrar ningún comando o paquete existente que facilite esto. Me gustaría poder especificar el tamaño real de la imagen y calcular el tamaño de la barra de escala.
Si tengo que escribir mi propia macro, creo que comenzaré con lapaquete de imagen superior
¿Voy en la dirección correcta?
EDITAR 2:
Después de familiarizarme con TikZ, aquí está la macro que se me ocurrió:
\usepackage{tikz}
\usepackage{siunitx}
% Inserts a scale bar into an image
% Optional argument 1: the colour of the bar and text
% Argument 2: an \includegraphics command
% Argument 3: the real world width of the image
% Argument 4: the length of the scale bar
% Argument 5: the units in which the scale bar is measured
\newcommand{\scalebar}[5][white]{
\begin{tikzpicture}
\draw (0,0) node[anchor=south west,inner sep=0] (image) { #2 };
\begin{scope}[x={(image.south east)},y={(image.north west)}]
\fill [#1] (0.05,0.2cm) rectangle (#4/#3+0.05,0.4cm);
\draw [#1] (0.05,0.4cm) node[anchor=south west] { \SI{#4}{#5} };
\end{scope}
\end{tikzpicture}
}
Estoy usando una combinación de unidades aquí (cm y fracciones del tamaño de la imagen). Siento que este aspecto podría ser un poco más elegante, pero lo que tengo ahora es suficiente para mis propósitos.
Respuesta1
Ajusté un poco tu macro para agregar un fondo transparente para cuando el texto se vuelva difícil de leer:
\newcommand{\scalebarbackground}[6][white]{
\begin{tikzpicture}
\node[anchor=south west,inner sep=0] (image) { #2 };
\begin{scope}[x={(image.south east)},y={(image.north west)}]
\fill [fill=blue, fill opacity=0.5] (0.04,1.3em) rectangle (#5*#4/#3+0.04,0.1em);
\draw [#1, line width=0.2em] (0.04,1.2em) -- node[below,inner sep=0.1em, font=\footnotesize] {\SI{#5}{#6}} (#5*#4/#3+0.04,1.2em);
\end{scope}
\end{tikzpicture}
}
La barra de escala resultante se ve así:
Consulte mi esencia para obtener más información y una barra de escala sin fondo:https://gist.github.com/rbnvrw/00312251b756f6b48084#file-latexscalebars-md
Respuesta2
encontréIPEser una buena herramienta para esto.
ipelets -> insertar imagen.
Luego agregue el texto y guárdelo como eps o pdf.