Typst中show-set规则优先级疑问:bibliography规则为何未生效?
Typst中show规则的优先级逻辑解析
我们需要移除参考文献(bibliography)的首行缩进,在全局段落规则之后添加了针对bibliography的段落样式设置,但全局的show par规则依然优先生效。以下是相关代码示例:
文档代码
#show par: set par(first-line-indent: 1.8em) #lorem(30) #lorem(30) #show bibliography: set par(first-line-indent: 0pt) #bibliography( "literature.bib", title: "References", style: "chicago-author-date", full: true )
参考文献文件(literature.bib)
@article{bruederle2018, title = {Nighttime Lights as a Proxy for Human Development at the Local Level}, author = {Bruederle, Anna and Hodler, Roland}, date = {2018-09-05}, journaltitle = {PLOS ONE}, shortjournal = {PLoS ONE}, volume = {13}, number = {9}, pages = {e0202231}, doi = {10.1371/journal.pone.0202231} } @article{easterly2003, title = {Tropics, Germs, and Crops: How Endowments Influence Economic Development}, shorttitle = {Tropics, Germs, and Crops}, author = {Easterly, William and Levine, Ross}, date = {2003-01-01}, journaltitle = {Journal of Monetary Economics}, shortjournal = {Journal of Monetary Economics}, volume = {50}, number = {1}, pages = {3--39}, doi = {10.1016/S0304-3932(02)00200-3}, keywords = {Economic development,Geography,Institutions} }
优先级逻辑说明
Typst中show规则的优先级并非由书写顺序决定,而是基于规则的匹配精度与作用层级:
- 全局的
show par: set par(...)是直接匹配所有par元素的规则,属于元素级的全局规则,优先级更高。 show bibliography: set par(...)本质是在bibliography容器的上下文中设置段落的默认参数,属于父元素传递的上下文样式,优先级低于直接针对par元素的全局规则。
当渲染参考文献内的段落时,Typst会先应用直接针对par的全局规则,再处理上下文的默认参数,因此全局规则的首行缩进设置会覆盖bibliography上下文的设置。
内容的提问来源于stack exchange,提问作者dufei
相关产品推荐
相关产品推荐

