\psElectricfield
仅接受空格分隔值的坐标,如下所示。例如,(-1,0) 处的 -0.1 单位电荷写为[-0.1 -1 0]
。我尝试用 PS 符号书写,但仍然不起作用。
\documentclass{article}
\pagestyle{empty}
\usepackage{pst-electricfield,multido}
\def\M{2}
\begin{document}
\multido{\i=0+30}{12}{%
\begin{pspicture*}(-\M,-\M)(\M,\M)
\psElectricfield
[
Q={[-0.1 -1 0][-0.1 1 0][0.1 !\i sin 2 mul \i cos 2 mul]}
]
\end{pspicture*}\newpage}
\end{document}
对于仅接受空格分隔值的宏,如何表达极坐标?
答案1
\documentclass{article}
\pagestyle{empty}\parindent=0pt
\usepackage{pst-electricfield,multido}
\def\M{2}
\begin{document}
\multido{\i=0+30}{12}{%
\begin{pspicture*}(-\M,-\M)(\M,\M)
\psElectricfield[Q={
[-0.1 -1 0]
[-0.1 1 0]
[0.1 \i\space sin 2 mul
\i\space cos 2 mul]}]
\end{pspicture*} }
\end{document}
您必须使用{\i}
或者否则\i\space
以下空格会丢失,并且您会得到错误的 PostScript 条目,就像10sin
缺少空格一样(被 TeX“吃掉”)
答案2
基于 Herbert 的解决方案,我\pstVerb
对其进行了补充,以便将代码分成几行,这些代码在发布到狭窄的 HTML 页面时经常需要用到。
\documentclass{article}
\pagestyle{empty}\parindent=0pt
\usepackage{pst-electricfield,multido}
\def\M{2}
\begin{document}
\multido{\i=0+30}{12}{%
\begin{pspicture*}[showgrid](-\M,-\M)(\M,\M)
\pstVerb{/xx \i\space sin 2 mul def}%
\pstVerb{/yy \i\space cos 2 mul def}%
\psElectricfield
[
Q={[-0.1 -1 0][-0.1 1 0][0.1 xx yy]}
]
\end{pspicture*} }
\end{document}