我可以改变数字 1 的边界框吗?

我可以改变数字 1 的边界框吗?

这是这个水平对齐正确吗?简而言之,我想将文本打印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}

相关内容