Cet alignement horizontal est-il correct?

Nov 03 2020

Je dessine sur une figure et je suis surpris que ce qui suit ne semble pas centré, visuellement:

\documentclass{article}
\usepackage{mwe}
\usepackage{tikz}
\usepackage{siunitx}
\begin{document}
\begin{tikzpicture}
    \draw (0, 0)
    node (image) { \includegraphics[width=1cm]{example-image} };

    \draw[red, x={(image.south east)}, y={(image.north west)}] (0.5, 0.5)
    node (text) { \SI{100}{\micro\meter} };
\end{tikzpicture}
\end{document}

Remarquez comment le texte rouge s'étend sur le bord droit de l'image, alors qu'il ne se trouve pas sur la gauche:

Le remplacement \SI{100}{\micro\meter}par ---------semble indiquer que le code TikZ est correct:

Suis-je trop pointilleux ici, ou est-ce que l'alignement avec le siunitxcontenu est incorrect?

Réponses

1 SimonDispa Nov 05 2020 at 22:16

Cela semble être un effet optique entre la 1taille de police et 10 points. Echanger 100 pour 500 tout semble normal (à l'œil). De même en agrandissant ou en diminuant la taille de la police. Je ne sais pas si siunitxon modifie l'espace entre les nombres et les unités. La composition \SI{500}{}ou \SI{500}{}le milieu 0semble parfaitement centré. Comparez également le résultat en omettant d' SIutiliser {100 \textmu m}.

\documentclass{article}

\usepackage{mwe}
\usepackage{tikz}
\usepackage{siunitx}

\begin{document}
    
default size font
    
\begin{tikzpicture}
    \draw (0, 0)
    node (image) { \includegraphics[width=1cm]{example-image} };
    
    \draw[red, x={(image.south east)}, y={(image.north west)}] (0.5, 0.5)
    node (text) {\SI{100}{\micro\meter}};
\end{tikzpicture}


\begin{tikzpicture}
    \draw (0, 0)
    node (image) { \includegraphics[width=1cm]{example-image} };
    
    \draw[red, x={(image.south east)}, y={(image.north west)}] (0.5, 0.5)
    node (text) {\SI{500}{\micro\meter}};
\end{tikzpicture}

without SI

    \begin{tikzpicture}
\draw (0, 0)
node (image) { \includegraphics[width=1cm]{example-image} };

\draw[red, x={(image.south east)}, y={(image.north west)}] (0.5, 0.5)
node (text) {100 \textmu m };
\end{tikzpicture}


\begin{tikzpicture}
\draw (0, 0)
node (image) { \includegraphics[width=1cm]{example-image} };

\draw[red, x={(image.south east)}, y={(image.north west)}] (0.5, 0.5)
node (text) {500 \textmu m};
\end{tikzpicture}


{\large%
larger font
    
\begin{tikzpicture}
    \draw (0, 0)
    node (image) { \includegraphics[width=1cm]{example-image} };
    
    \draw[red, x={(image.south east)}, y={(image.north west)}] (0.5, 0.5)
    node (text) { \SI{100}{\micro\meter} };
\end{tikzpicture}
}

{\small%
smaller font
    
\begin{tikzpicture}
    \draw (0, 0)
    node (image) { \includegraphics[width=1cm]{example-image} };
    
    \draw[red, x={(image.south east)}, y={(image.north west)}] (0.5, 0.5)
    node (text) { \SI{100}{\micro\meter} };
\end{tikzpicture}
}   

\end{document}

MISE À JOUR

En fait, le nombre 1est très différent des autres (et de la lettre l!) En termes de sideberarings. Ceci est la sortie utilisant le programme fourni par Philipp Gesang.

Accès aux roulements latéraux dans LuaTeX

Les boîtes englobantes des nombres sont similaires entre elles. C'est la sortie de la réponse de Yiannis Lazarides à

Boîte englobante pour chaque lettre

Donc, le nombre 1s'étend vraiment à gauche de l'image! C'est juste une coïncidence qu'à 10pt la bordure gauche de l'image, elle se trouve juste sur l'encre.