\placeongrid 和 \moveongrid 在 ConTeXt 中不起作用

\placeongrid 和 \moveongrid 在 ConTeXt 中不起作用

我正在尝试使用 ConTeXt 中的网格功能,但某些命令不知何故无法被编译器识别。

每当我尝试使用命令 \placeongrid或时\moveongrid,编译器都会退出并显示一条错误消息,例如:

l.27 \moveongrid [both] ? >Exit code: -1073741510

grid=yes 选项运行\setuplayout良好,但这不是我打算使用的。

我同时拥有 TeXLive 2012 包和 ConTeXt Standalone(版本 2012.10.17),两个发行版都产生相同的错误消息。

一个问题是,当我尝试更新我的 ConTeXt 独立文件时,我收到一条消息说

The program can't start because kpathsea611.dll is missing from your computer. Try reinstalling the program to fix this problem.

我想知道这是否与问题有关。顺便说一句,我在 Win7-x64 系统上。

答案1

该命令\moveongrid特定于 MkII,并且已 在 MkIV 中被移除。它曾经是一个相当低级的命令,其他人喜欢在此基础\placeongrid 上构建。由于大多数网格功能已在 Lua 中重新实现,作为 巨大的回调\moveongrid在 TeX 端缺少等效项。但是,有一个相对低级的对应项\snaptogrid,用户宏(例如环境\startlinecorrection)依赖它。

\snaptogrid接收\hbox\vbox作为强制参数(由创建的自定义框\newbox不会剪切它)。可选的第一个参数决定捕捉方法。如果缺少它,则默认为全局活动方法。一个简短的示例演示了三种可用的方法:

\useMPlibrary [dum]
\setuppapersize [A6]
\showgrid
\setuplayout [grid=yes] %% set the global snap method

\def \makedummy {
  %% create a dummy figure with a vsize that is not a multiple of the
  %% leading
  \externalfigure [dummy] [height=\dimexpr4.25\lineheight]%
}

\starttext
  \input ward \par

  method: default
  \snaptogrid\vbox{\makedummy} \par
  \input ward \par

  method: top
  \snaptogrid [top] \vbox{\makedummy} \par
  \input ward \par

  method: line
  \snaptogrid [line] \vbox{\makedummy} \par
  \input ward \par
\stoptext

排版结果

默认方法是yes(别名:normalstandard)。有关可用方法的详尽列表,请参阅 维基百科

相关内容