主要是为了这样做,我正在用 ConTeXt 写一个演示文稿。我认为定义开始-停止是分割幻灯片的好方法。所以我有类似的东西:
\definestartstop[Slide][after={\break}]
...
\startSlide
\subject{Title}
\subsubject{Subtitle}
\stopSlide
我的问题是,鉴于每张幻灯片都有一个标题和一个副标题,有没有办法将\subject
和包装\subsubject
在中\definestartstop
并在开始-停止时提供值?
我还没有找到任何与此相关的内容,而且我知道 start-stop 不接受参数,那么你该如何做这样的事情呢?如果我处理问题的方式不对,那么 ConTeXt 的方法是什么?
答案1
我建议简单地使用幻灯片的内置分段宏。
使用 ,\definehead
您可以创建新的分段命令,这些命令可以单独设置样式并根据需要修改行为。如果您使用 MkIV 分段样式,则可以提供第二个参数,该参数可以通过 访问
\structureuservariable{…}
。这是一个非常简单的幻灯片模板,演示了该功能。
\useMPlibrary [dum] %% only for the screenshot
\setuppapersize [S6]
\setupbodyfont [sans,18pt]
\setupheadertexts [{\getmarking [slide] — \getmarking [subtitle]}]
\setupheader [style=bigbodyfont]
\definemarking [subtitle]
\setuplayout
[height=.8\paperheight,
width=middle,
topspace=.15\paperwidth]
\definehead
[slide] [subsection]
[page=yes, placehead=empty,insidesection=\doSubtitle]
\starttexdefinition doSubtitle
\marking [subtitle] {\structureuservariable{subtitle}}
\stoptexdefinition
\starttext
\startslide [title=Foo] [subtitle=a subtitle]
\input ward
\stopslide
\startslide [title=Bar] [subtitle=another subtitle]
\placesidebyside
{\externalfigure [dummy] [width=.5\textwidth]}
{\externalfigure [dummy] [width=.5\textwidth]}
\stopslide
\stoptext
还可以看看 Aditya 的一步一步的指导教程使用 ConTeXt 创建幻灯片。
实际回答您的问题:您可以使用
\dosingleempty
一个参数\dodoubleempty
、两个参数等来创建带有参数的命令。这是一个宏的示例\TwoArgs
,它仅在参数周围打印括号。
\def\TwoArgs
{\dodoubleempty\doTwoArgs}
\def\doTwoArgs[#1][#2]%%
{(#1) (#2)}
更多信息wiki - 带有可选参数的命令