我在 PSTricks 中有以下 MWE,显示一个矩形:
\documentclass[pstricks, border=12pt]{standalone}
\usepackage{pst-node}
\usepackage{siunitx}
\begin{document}
\begin{pspicture}[showgrid=true](5,5)
\psframe(4,4)
\end{pspicture}
\end{document}
我想要删除右侧由坐标 (4,1) 和 (4,3) 跨越的部分。实现此目的的最简单方法是什么?我当然可以叠加一条白线,但这似乎是错误的方法。
答案1
“正确”的方法是绘制一条折线:
\psline(4,1)(4,0)(0,0)(0,4)(4,4)(4,3)
如果你想填充该区域,请使用:
\psframe*[linecolor=cyan!40](4,4)
\psline(4,1)(4,0)(0,0)(0,4)(4,4)(4,3)
答案2
这只是 PSTricks 的另一个答案。但是填充区域的边界经过了线的中间,linewidth=5\pslinewidth
例如,您可以通过更改 轻松看到它。
\documentclass[pstricks,border=12pt]{standalone}
\begin{document}
\begin{pspicture}(4,4)
\pscustom[fillstyle=solid,fillcolor=gray]
{
\psline(4,3)(4,4)(0,4)(0,0)(4,0)(4,1)
}
\end{pspicture}
\end{document}
显然,上述代码等同于下面的代码(基于下面 Herbert 的令人惊讶的评论)。
\documentclass[pstricks,border=12pt]{standalone}
\begin{document}
\begin{pspicture}(4,4)
\psline[fillstyle=solid,fillcolor=gray](4,3)(4,4)(0,4)(0,0)(4,0)(4,1)
\end{pspicture}
\end{document}
或者采用下面这种过度的解决方案。
\documentclass[pstricks,border=12pt]{standalone}
\begin{document}
\begin{pspicture}(4,4)
\pscustom
{
\psline(4,3)(4,4)(0,4)(0,0)(4,0)(4,1)
\gsave
\closepath
\fill[fillstyle=solid,fillcolor=gray]
\grestore
}
\end{pspicture}
\end{document}