如何确保 PostScript 中的线宽垂直和水平相同?

How to ensure line widths are the same vertically and horizontally in PostScript?

PostScript 中的线条宽度是根据用户的距离定义的 space。在我的用例中,设备的宽高比 space(例如 4:3)与用户的宽高比 space(例如 1:1)不同,这会导致设备中的线宽 space 在垂直和水平方向上不同。

如何使线宽与线的方向无关? setlinewidth 的 PostScript 语言参考手册提到,如果在 stroke 时有效的当前变换矩阵 (CTM) 指定 x 和 y 维度中不同因子的缩放,则线条的粗细可能会有所不同。

这是否意味着如果我在调用 stroke 之前在 x 和 y 维度上设置一个具有相同比例因子的 CTM,然后将 CTM 重置为 PostScript 文件中其他地方使用的值,则线宽将相同而无需影响其他什么?

是的。 stroke 将生成与 CTM 转换的笔形对应的路径轮廓。可以使用setmatrix为笔建立一致的均匀矩阵

matrix currentmatrix
  matrix identmatrix setmatrix
  stroke
setmatrix