如下图所示,y 轴上的标签“4”妨碍了绘图。如何将其移到右侧?我尝试添加以下语句:
psyTick[ylabelPos=right](4){4}
但没有作用。
以下是完整代码:
\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pst-plot}
\begin{document}
\psset{xunit=2,
yunit=0.5,
linewidth=0.03,
tickwidth=0.03}
\begin{pspicture}(-1.775,-2)(1.775,6.8)
\psaxes[Dx=1,labels=x,xticksize=-4pt,Dy=2]{->}(0,0)(-1.77,0)(1.7,6.4)[$t$,0][$$,90]
\psyTick[ylabelPos=left](2){2}
\psyTick[ylabelPos=right](4){4}
\psline[linecolor=blue,linewidth=0.05](-1.7,0)(-1,0)(-1,4)(0,4)(0,2)(1,2)(1,0)(1.6,0)
\rput(-0.6,4.5){$x_1(-2(t-1))$}
\end{pspicture}
\end{document}
答案1
您必须调整\psyTick
工作方式,因为它目前不支持放置:
\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pst-plot}
\makeatletter
\def\psyTick@ii#1(#2)#3{{
\pst@killglue
\addbefore@par{arrows=-,linewidth=\psk@ytickwidth\pslinewidth}
\use@par
\psline(\pst@yticksizeB,#2)(\pst@yticksizeA,#2)
\expandafter\ifx\psk@ylabelPos\tw@ % 2=right
\rput[l]{#1}(! \psk@origin
\pst@number\pst@yticksizeB \pst@number\psylabelsep add
\pst@number\psxunit div #2){\psvlabel{#3}}\ignorespaces
\else
\expandafter\ifx\psk@ylabelPos\@ne % 1=axis
\rput{#1}(! \psk@origin
0 #2){\psvlabel{#3}}\ignorespaces
\else % \psk@ylabelPos=\z@ 0=left
\rput[r]{#1}(! \psk@origin
\pst@number\pst@yticksizeB \pst@number\psylabelsep add
\pst@number\psxunit div neg #2){\psvlabel{#3}}\ignorespaces
\fi\fi}}
\makeatother
\begin{document}
\psset{xunit=2,
yunit=0.5,
linewidth=0.03,
tickwidth=0.03}
\begin{pspicture}(-1.775,-2)(1.775,6.8)
\psaxes[Dx=1,labels=x,xticksize=-4pt,Dy=2]{->}(0,0)(-1.77,0)(1.7,6.4)[$t$,0][$$,90]
\psyTick[ylabelPos=l](2){2}
\psyTick[ylabelPos=a](3){3}
\psyTick[ylabelPos=r](4){4}
\psline[linecolor=blue,linewidth=0.05](-1.7,0)(-1,0)(-1,4)(0,4)(0,2)(1,2)(1,0)(1.6,0)
\rput(-0.6,4.5){$x_1(-2(t-1))$}
\end{pspicture}
\end{document}
它不再是固定/单个的\rput
,而是根据 的值进行调整,\psk@ylabelPos
以决定是否将标签放在l
左 ( \z@
)、r
右 ( \tw@
) 或a
轴 ( \@ne
) 上。
答案2
\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pst-plot}
\begin{document}
\psset{xunit=2,yunit=0.5,linewidth=0.03,tickwidth=0.03}
\begin{pspicture}(-1.775,-2)(1.775,6.8)
\psaxes[Dx=1,labels=x,xticksize=-4pt,Dy=2]{->}(0,0)(-1.77,0)(1.7,6.4)[$t$,0][,90]
\uput[180](0,2){2} \uput[0](0,4){4}
\psline[linecolor=blue,linewidth=0.05](-1.7,0)(-1,0)(-1,4)(0,4)(0,2)(1,2)(1,0)(1.6,0)
\rput(-0.6,4.5){$x_1(-2(t-1))$}
\end{pspicture}
\end{document}