\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pst-circ}
\begin{document}
\begin{pspicture}[showgrid](4,4)
\pnodes
(0,2){A}
(4,2){B}
\resistor
[
intensitylabel=$i_1$,
intensitylabeloffset=.3,
tensionlabel=$v_1$,
tensionoffset=-.5,
tensionlabeloffset=-.8,
](A)(B){$R$}
\end{pspicture}
\end{document}
我想将上图改为下图。
如何将张力符号从箭头更改为一对加号和减号?
答案1
来自pst-circ.tex
http://texnik.dante.de/tex/generic/pst-circ/或者今天最新的 TeXLive 更新知道tensionstyle=pm
(默认为tensionstyle=line
)。应该适用于所有元素。
\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pst-circ}
\begin{document}
\begin{pspicture}[showgrid](4,4)
\pnodes(0,2){A}(4,2){B}
\resistor[
intensitylabel=$i_1$,
intensitylabeloffset=.3,
tensionlabel=$v_1$,
tensionoffset=-.5,
tensionlabeloffset=-.8,
tensionstyle=pm ](A)(B){$R$}
\end{pspicture}
\end{document}
答案2
以下 MWE 提供了一个带星号的版本,\resistor
其中设置了+
/-
而不是箭头:
\documentclass{article}
\usepackage{pst-circ}% http://ctan.org/pkg/pst-circ
\makeatletter
\let\@oldresistor\resistor
\def\resistor{\@ifstar\@newresistor\@oldresistor}
\def\@newresistor{\@ifnextchar[\@newresistor@i{\@newresistor@i[]}}
\def\@newresistor@i[#1](#2)(#3)#4{{%
\def\pst@tension##1##2{%
\psset{linestyle=none}% Remove lines
\ifPst@tension
\pcline[arrows=-,fillstyle=none,%linestyle=none,
offset=\psk@tension@offset](##1)(dipole@1)
\ncput[npos=.9]{\pnode{tension@1}}
\pcline[arrows=-,fillstyle=none,%linestyle=none,
offset=-\psk@tension@offset](##2)(dipole@2)
\ncput[npos=.9]{\pnode{tension@2}}
\ifPst@directconvention
\ifPst@Dconvention
\rput{0}(tension@1){$\scriptstyle-$}\rput{0}(tension@2){$\scriptstyle+$}
\else
\rput{0}(tension@1){$\scriptstyle+$}\rput{0}(tension@2){$\scriptstyle-$}
\fi
\else
\ifPst@Dconvention
\rput{0}(tension@1){$\scriptstyle+$}\rput{0}(tension@2){$\scriptstyle-$}
\else
\rput{0}(tension@1){$\scriptstyle-$}\rput{0}(tension@2){$\scriptstyle+$}
\fi
\fi
\pcline[arrows=-,linestyle=none,fillstyle=none,%
offset=\psk@tension@label@offset](dipole@1)(dipole@2)
\ncput[nrot=\psk@label@angle]{%
\csname\psk@tension@labelcolor\endcsname\psk@tension@label}
\fi
}
\@oldresistor[#1](#2)(#3){#4}%
}}
\makeatother
\begin{document}
\begin{pspicture}[showgrid](4,4)
\pnodes
(0,2){A}
(4,2){B}
\resistor*
[
intensitylabel=$i_1$,
intensitylabeloffset=.3,
tensionlabel=$v_1$,
tensionoffset=-.5,
tensionlabeloffset=-.8,
](A)(B){$R$}
\end{pspicture}
\end{document}
该宏\pst@tension
负责绘制 下方的箭头和标签\resistor
。它已被更改为使用 放置 移动线端点的位置(以前使用 放置 位于A
/B
和电阻边缘之间的中间位置npos=.5
)npos=.9
。此外,现在不再使用箭头绘制线,而是在相应的“张力”端\rput
绘制+
/ 。 的整个定义保持不变,因此它应该可以与其他选项/定义(包括方向变化)一起使用。-
\pst@tension