如何将整数的每一位数字装箱?

如何将整数的每一位数字装箱?

用于将数字(例如 123)装箱的 LaTeX 命令是什么:


|1|2|3|

我在一本书中看到过它,但在我使用的 TeXnicCenter 中却找不到它。

答案1

我不知道有任何软件包可以提供这样的宏,但是这可以很容易地完成:

\documentclass{article}


\newcommand*{\boxednumber}[1]{%
    \expandafter\readdigit\the\numexpr#1\relax\relax
}
\newcommand*{\readdigit}[1]{%
    \ifx\relax#1\else
        \boxeddigit{#1}%
        \expandafter\readdigit
    \fi
}
% Format macro used for every digit, adjust to your liking:
\newcommand*{\boxeddigit}[1]{\fbox{#1}\hspace{-\fboxrule}}

\begin{document}

\boxednumber{123}

\boxednumber{\thepage}

\end{document}

图像

也可以看看制作 \textcircled 数字的好方法?有关数字格式的一些提示。但是它实际上适用于圆圈而不是方框。

答案2

\documentclass[12pt,a4paper]{scrartcl}
\usepackage[T1]{fontenc}
\makeatletter
\def\BoxNumbers#1{|\BoxNumbers@i#1|\@nil}
\def\BoxNumbers@i#1#2|\@nil{%
  #1|\ifx\relax#2\relax\else\BoxNumbers@i#2|\@nil\fi}
\makeatother
\begin{document}

\BoxNumbers{123} \BoxNumbers{123789}

\end{document}

在此处输入图片描述

答案3

马丁主题的变奏:

\makeatletter
\def\boxnumber#1{\mbox{\toks@={\@gobble}\@boxnumber#1\relax\the\toks@}}
\def\@boxnumber#1{\ifx#1\relax % end
  \else
    \toks@=\expandafter{\the\toks@\@numbersep#1}%
    \expandafter\@boxnumber
  \fi}
\def\@numbersep{\kern1pt\vrule\kern1pt}
\makeatother

这里\boxnumber{123}将给出(大约)

1|2|3

相关内容