У меня есть следующий код:
\starttext
\startMPpage
def drawtest(expr i) = %i is not used here
draw btex dummy etex shifted (0,0);
draw btex foo etex shifted (1.5cm,0);
draw btex bar etex shifted (3cm,0);
enddef;
drawtest(5);
\stopMPpage
\stoptext
И рисует следующее:
Что здесь происходит?
Я запускаю код с помощью context thefile.tex
. Версия:
mtx-context | ConTeXt Process Management 1.03
mtx-context |
mtx-context | main context file: /home/xxx/context/tex/texmf-context/tex/context/base/mkiv/context.mkiv
mtx-context | current version: 2019.07.16 18:23
Я воспроизвожу проблему, запустив ее с помощью ConTeXt live (https://live.contextgarden.net/).
решение1
Проблема в btex ... etex
том, что эти элементы обрабатываются асинхронно в ConTeXt. Вердикт из списка рассылки — использовать textext
вместо btex ... etex
. Проблему с базовой линией можно решить, используя d
суффикс , где d
обозначает глубину, я полагаю.
(Спасибо, Алан!)
\starttext
\startMPpage
def drawtest(expr i) = %i is not used here
draw textext.d("dummy") shifted (0,0);
draw textext.d("foo") shifted (1.5cm,0);
draw textext.d("bar") shifted (3cm,0);
enddef;
drawtest(5);
\stopMPpage
\stoptext