![如何确定 ConTeXt 中的当前字体样式?](https://linux22.com/image/325972/%E5%A6%82%E4%BD%95%E7%A1%AE%E5%AE%9A%20ConTeXt%20%E4%B8%AD%E7%9A%84%E5%BD%93%E5%89%8D%E5%AD%97%E4%BD%93%E6%A0%B7%E5%BC%8F%EF%BC%9F.png)
我想定义一个在不同的字体系列中表现不同的宏。如何确定 ConTeXt 中使用的当前字体系列?有类似\f@family
变量的东西吗?
答案1
ConTeXt 有两个轴字体定义:字体样式(衬线、无衬线和电传打字机)和替代字体(普通、粗体、斜体、粗体斜体、倾斜、粗体倾斜和小写)。请参阅维基百科了解详情。
预定义字体样式和替代项是font-pre.mkiv
使用宏\definefontstyle
和定义的\definefontalternative
。宏\fontstyle
和\fontalternative
提供当前字体样式和替代项。因此,您可以在测试中使用这些的组合。例如:
\define[1]\Test
{\NC #1 Sample \NC #1 \fontalternative \NC #1 \fontstyle \NC \NR}
\starttext
\startTABLE[frame=off,offset=0.5em, align=middle]
\NC \NC Alternative \NC Style \NC \NR
\Test{\rm}
\Test{\it}
\Test{\sl}
\Test{\it}
\Test{\bf}
\Test{\bi}
\Test{\ss}
\Test{\ssit}
\Test{\sssl}
\Test{\ssbf}
\Test{\ssbi}
\Test{\normal}
\Test{\italic}
\Test{\slanted}
\Test{\bold}
\Test{\bolditalic}
\Test{\sans}
\Test{\sansbold}
\stopTABLE
\stoptext
这使