pst-electricfield:如何使用 multido 放置多个电荷

pst-electricfield:如何使用 multido 放置多个电荷

因此,我尝试通过 pst-electricfield 包放置多个电荷。手动操作效果很好,但我试图通过沿一条线放置许多电荷来模拟电容器。有没有办法产生 foreach 循环,这样我就不必逐个放置每个电荷?我尝试使用 multido 命令,但没有成功。(不可恢复的错误)

% !TeX program = xelatex
\documentclass{standalone}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{pst-all}
\usepackage{pst-electricfield}

\begin{document}
    \begin{pspicture*}(-4,-4)(4,4)
        \psElectricfield[Q={\multido{\y=1+1}{3}{[1 0 \y]}},linecolor=red]
    \end{pspicture*}
\end{document}

我正在考虑一种提前使用 foreach 循环来生成所有电荷和坐标的方法(例如 [1 0 \y])。如果我可以将所有这些表达式的输出存储在变量 \Q 中,我是否应该能够在 psElectricfield[Q={\Q}] 中使用它?有人知道我如何存储这样的列表吗?

答案1

您可以\Q 在宏之外定义:

\documentclass{standalone}
\usepackage{pst-electricfield}

\begin{document}
\def\q{[1 0 }
\def\Q{}
\multido{\iy=1+1}{3}{\xdef\Q{\Q\q \iy]}}

\begin{pspicture*}(-4,-4)(4,8)
\psElectricfield[Q=\Q,linecolor=red]
\end{pspicture*}
\end{document}

在此处输入图片描述

相关内容