![在 Metapost 和 ConTeXt 中获取页面边缘坐标](https://linux22.com/image/451220/%E5%9C%A8%20Metapost%20%E5%92%8C%20ConTeXt%20%E4%B8%AD%E8%8E%B7%E5%8F%96%E9%A1%B5%E9%9D%A2%E8%BE%B9%E7%BC%98%E5%9D%90%E6%A0%87.png)
我使用 TikZ 为我的项目编写了几个宏。其中几个需要注意页面边缘和边距。例如,这是我编写的一个小宏,用于从当前位置到段落边缘绘制矩形。它所依赖的一个关键 TikZ 功能是能够获取页面边缘的坐标之一,current page.west
:
\documentclass[a4paper]{memoir}
\usepackage{tikz}
\usetikzlibrary{calc}
\newcommand\myline{%
\begin{tikzpicture}[remember picture, overlay]%
\fill let \p1 = (current page.west) in
(0, 0) rectangle (\x1 + \textwidth + \spinemargin, 0.5em);
\end{tikzpicture}%
}%
\begin{document}
Lorem ipsum dolor sit amet, consectetur adipiscing elit,
sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris
nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in
reprehenderit in voluptate velit esse cillum dolore
eu fugiat nulla pariatur.\myline
Sed ut perspiciatis unde omnis iste natus error sit voluptatem
accusantium doloremque laudantium, totam rem aperiam, eaque
ipsa quae ab illo inventore veritatis et quasi architecto beatae
vitae dicta sunt explicabo.\myline
\end{document}
我想将我的一些项目移植到 ConTeXt,但我一直无法用 MetaPost 复制该功能。我遇到过一些例子,其中可以引用边缘,但随后你放弃了当前位置。
PD 可能有针对这个具体示例的库,但我想使用 MetaPost 来实现最大的灵活性,因为以后我必须移植更复杂的图形,例如指向边注的箭头等。