这是这个水平对齐正确吗?简而言之,我想将文本打印100 µm
在比例尺上,使其视觉上居中。这样做的问题是数字1
具有与数字相同的宽边界框5
(可能是为了简化数字材料的对齐),因此边界框比字符本身占用更多空间。因此,水平居中关闭。
是否有数字变体,其1
边界框更紧密、更像“文本内”?我可以轻松构建一个吗?
答案1
是否存在数字 1 的变体,其边界框更紧密、更像“文本内”?
听起来您正在寻找按比例间隔的数字,而不是通常的固定间隔的数字。
我可以轻松构建一个吗?
这取决于您使用的字体和 LaTeX 编译器。如果您使用 XeLaTeX 或 LuaLaTeX(而不是默认的 pdfLaTeX)来编译文档,您的任务就相当容易完成。比较下面的第一张和第二张 tikz 图片;切换到按比例间隔的数字的效果1
肯定是可见的,但它相当微妙。
为了获得最佳视觉效果,您可能实际上想要切换到所谓的“旧式”数字;请参见下面的第三张 tikz 图片。
% !TEX TS-program = lualatex
% or: !TEX TS-program = xelatex
\documentclass{article}
\usepackage{fontspec}
% Set the default font (fixed-width lining-type numerals):
\setmainfont{Latin Modern Roman}
% Same font family, but with proportionally-spaced numerals:
\newfontfamily\LMPropNums{Latin Modern Roman}[Numbers={Proportional}]
% Same font family, but with oldstyle numerals:
\newfontfamily\LMOldStyle{Latin Modern Roman}[Numbers=OldStyle]
\newcommand\POne{{\LMPropNums 1}} % just the numeral "1"
\usepackage{tikz}
\usepackage{siunitx}
\begin{document}
\begin{tabular}{@{}ll@{}}
111 & fixed spaced \\
\LMPropNums 111 & proportionally spaced \\
000 & fixed spaced \\
\LMPropNums 000 & proportionally spaced
\end{tabular}
\begin{tikzpicture}
\draw (0, 0)
node (image){\includegraphics[width=1.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}
% Use a proportionally-spaced digit "1":
\begin{tikzpicture}
\draw (0, 0)
node (image){\includegraphics[width=1.1cm]{example-image} };
\draw[red, x={(image.south east)}, y={(image.north west)}] (0.5, 0.5)
node (text){\POne00\,\si{\micro\meter} };
\end{tikzpicture}
% Switch to old-style numerals:
{\LMOldStyle
\begin{tikzpicture}
\draw (0, 0)
node (image){\includegraphics[width=1.1cm]{example-image} };
\draw[red, x={(image.south east)}, y={(image.north west)}] (0.5, 0.5)
node (text){100\,\si{\micro\meter} };
\end{tikzpicture}}
\end{document}