使用 Tikz 去除浮点数并计算

使用 Tikz 去除浮点数并计算

向那些了不起的人致敬,

我想你会理解我与 MWE 所面临的悲惨问题:

\documentclass{article}
\input{tikz}

\begin{document}

\begin{tikzpicture}
  \draw [->,>=latex] (-.5,0) -- (5.5,0);
  \draw [->,>=latex] (0,-.5) -- (0,5.5);

  \foreach \x in {0,1,2,...,5}
  {
    \foreach \y [evaluate = \y as \s using {(\x+\y)*(\x+\y+1)/2+\y}] in {0,1,...,5}
    {
      \draw (\x,\y)  node{$\s$};
    } ;
  } ;
\end{tikzpicture}

\end{document}

得出以下结论:

在此处输入图片描述

你们中最敏锐的人可能已经认出了康托多项式的例证。

如您所见,“评估”的结果以浮点显示,如果您能告诉我如何消除它,我将非常高兴和感激。

提前向大家表示感谢!

答案1

默认行为\pgfmathprintnumber给出整数结果

\draw (\x,\y)  node{$\pgfmathprintnumber{\s}$};

在此处输入图片描述

笔记:

  • 我用 它替换了\input使用\usepackage{}LaTeX 导入包的通常方法。

  • 我消除了额外的,;因为这些导致

    Missing character: There is no ; in font nullfont!
    

代码:

\documentclass{article}
\usepackage{tikz}

\begin{document}

\begin{tikzpicture}
  \draw [->,>=latex] (-.5,0) -- (5.5,0);
  \draw [->,>=latex] (0,-.5) -- (0,5.5);

  \foreach \x in {0,1,2,...,5}
  {
    \foreach \y [evaluate = \y as \s using {(\x+\y)*(\x+\y+1)/2+\y}] in {0,1,...,5}
    {
      \draw (\x,\y)  node{$\pgfmathprintnumber{\s}$};
    }
  }
\end{tikzpicture}
\end{document}

相关内容