带长度寄存器的 pgf 列表

带长度寄存器的 pgf 列表

是否可以tikz使用长度寄存器生成列表?

举个例子:

\foreach \x in {0,1,...,6}

生成以下列表:“0,1,2,3,4,5,6”

但现在我想使用寄存器\pas和生成一个列表\largeur,即

\foreach \x in {0,\pas,...,\largeur}

但这不起作用。

平均能量损失

\documentclass{beamer}
\newlength{\slw}\setlength{\slw}{160mm}
\newlength{\slh}\setlength{\slh}{90mm}
\geometry{verbose,papersize={\slw,\slh}}

\mode<presentation>
\usetheme{metropolis}
\usepackage{tikz,pgffor}
\usetikzlibrary{calc}

\newlength\pas
\setlength\pas{10mm}

\begin{document}
\begin{frame}
  \begin{tikzpicture}
    \foreach \x in {0,\pas,...,\slw}
    {
      \node at (\x,0) {\x};
    }
\end{tikzpicture}
  \end{frame}
\end{document}

答案1

您可以使用例如https://tex.stackexchange.com/a/541869/36296转换为厘米

\documentclass[aspectratio=169]{beamer}

\mode<presentation>
\usetheme{moloch}% modern fork of the metropolis theme
\usepackage{tikz}
\usetikzlibrary{calc}

\newlength\pas
\setlength\pas{10mm}

% from https://tex.stackexchange.com/a/541869/36296
\NewExpandableDocumentCommand{\getlengthnumber}{O{pt}m}{%
  % #1 (optional, default pt), #2 = length
  \fpeval{(#2)/(1#1)}%
}

\begin{document}
\begin{frame}
  \begin{tikzpicture}
    \foreach \x in {0,\getlengthnumber[cm]{\pas},...,\getlengthnumber[cm]{\paperwidth}}
    {
      \node at (\x,0) {\x};
    }
\end{tikzpicture}
  \end{frame}
\end{document}

在此处输入图片描述

相关内容