自定义数字周围圆的直径

自定义数字周围圆的直径

下面的代码给出了在 cricle 中显示数字的一个很好的解决方案,但是 最好能够控制圆的大小。为什么?在下面的例子中,你会看到圆圈中的三个数字在相同的上下文中看起来并不好看:在同一个段落中或在一个列表中,如下面的代码所示。

因此,我希望我们使用第一个可选参数来执行以下操作:

  1. 如果第一个可选参数为 0,则圆的直径为当前自动的直径。
  2. 如果第一个可选参数是一个自然数 n <> 0,那么圆的直径是字符宽度的 n 倍。
  3. 在其他情况下,必须引发一个错误。

这是要修改的代码...

% Source : http://tex.stackexchange.com/questions/7032/good-way-to-make-pgftextcircled-numbers

\documentclass{article}
    \usepackage{enumitem}
    \usepackage{tikz}

    \newcommand{\pgftextcircled}[2][0]{
        \setbox0=\hbox{#2}%
        \dimen0\wd0%
        \divide\dimen0 by 2%
        \begin{tikzpicture}[baseline=(a.base)]%
            \useasboundingbox (-\the\dimen0,0pt) rectangle (\the\dimen0,1pt);
            \node[
                circle,
                draw,
                outer sep=0pt,
                inner sep=0.1ex
            ] (a) {#2};
        \end{tikzpicture}
    }

\begin{document}

\begin{description}
    \item[Automatic width :] \pgftextcircled{0} , \pgftextcircled{63} , \pgftextcircled{733}
    \item[Width = 2 :]       \pgftextcircled[2]{0} , \pgftextcircled[2]{63} , \pgftextcircled[2]{733}
    \item[Width = 3 :]       \pgftextcircled[3]{0} , \pgftextcircled[3]{63} , \pgftextcircled[3]{733}
\end{description}

Lets' try in one list :

\begin{enumerate}[label=\protect{\pgftextcircled[2]{\arabic*}}]
    \item Item n°1
    \item Item n°2
    \item Item n°3
    \item Item n°4
    \item Item n°5
    \item Item n°6
    \item Item n°7
    \item Item n°8
    \item Item n°9
    \item Item n°10
    \item Item n°11
    \item Item n°12
\end{enumerate}

\end{document}

答案1

例如尝试一下:

\documentclass{article}
\usepackage{enumitem}
\usepackage{tikz}
\newbox\nodebox
\newcommand\pgftextcircled[2][0]{%
    \ifnum#1=0 \setbox\nodebox\hbox{#2}%
    \else \setbox\nodebox\hbox{0}\wd\nodebox\dimexpr\wd\nodebox*#1\relax
    \fi
    \begin{tikzpicture}[baseline=(a.base)]%
        \node[draw,circle,outer sep=0pt,inner sep=0.5pt](a){\hbox to\wd\nodebox{\hss#2\hss}};
    \end{tikzpicture}%
}

\begin{document}

\begin{description}
    \item[Automatic width :] \pgftextcircled{1} , \pgftextcircled{63} , \pgftextcircled{733}
    \item[Width = 2 :]       \pgftextcircled[2]{0} , \pgftextcircled[2]{63} , \pgftextcircled[2]{733}
    \item[Width = 3 :]       \pgftextcircled[3]{0} , \pgftextcircled[3]{63} , \pgftextcircled[3]{733}
\end{description}

\begin{enumerate}[label=\protect{\pgftextcircled[2]{\arabic*}}]
    \item Item n°1
    \item Item n°2
    \item Item n°3
    \item Item n°4
    \item Item n°5
    \item Item n°6
    \item Item n°7
    \item Item n°8
    \item Item n°9
    \item Item n°10
    \item Item n°11
    \item Item n°12
\end{enumerate}
\end{document}

相关内容