我正在考虑从 LaTeX 切换到 ConTeXt。我正在大量使用 LaTeX 来创建带有扩展版本的教学材料xsim
。有很多东西我需要移植,其中之一是一个宏,它会生成许多线条作为学生的书写区域。在 LaTeX 中,我只需使用 TikZ 和 画一条线\linewidth
,它会返回当前环境中的宽度(例如在itemize
环境中)。我尝试使用 ConTeXt / MetaPost(fun) 重新创建相同的行为,并且它与 配合良好,\textwidth
它会返回完整宽度,与当前环境无关。我在文档中找不到任何对 等效项的引用\linewidth
。是否有这样的命令或可能性来获取当前环境的 x 位置?
这是一个最小的例子,我需要用\the\textwidth
类似 的内容来替换它\the\linewidth
。还有其他问题,比如分隔符前文本的对齐,但这是我以后可能会解决的问题。
\setuppapersize[A4]
\setupbodyfont[modern,12pt]
\starttext
\startuseMPgraphic{line}
draw ((0cm,0cm)--(\the\textwidth,0cm)) ;
\stopuseMPgraphic
\startitemize
\item here we list the points,\break\useMPgraphic{line}
\item one after the other.
\stopitemize
\useMPgraphic{line}
\stopchapter
\stoptext
答案1
欢迎来到本网站。您可以执行以下操作:
\startuseMPgraphic{line}
numeric hsize ; hsize = \the \ifzeropt\localhsize \hsize \else \localhsize \fi;
draw (0cm,0cm) -- (hsize,0cm);
\stopuseMPgraphic
但我认为你尝试做的事情更容易用 来完成fillinrules
。我在下面给出了一个例子。在那里,我还删除了纸张的设置(默认为 A4)
\setupbodyfont[modern, 12pt]
\starttext
\startitemize
\item here we list the points,
\fillinrules[n=2]
\item one after the other.
\stopitemize
\fillinrules[n=3]
\stoptext
您可以阅读更多关于fillinrules
这里。