如何在Sphinx中让HTML显示本地TOC,LaTeX构建时隐藏{contents}
如何让Markdown中的本地目录仅在HTML显示,LaTeXPDF中隐藏
我在setup_macos.md里用{contents}生成的本地目录,只想要在HTML页面显示,LaTeXPDF构建时不出现,现有代码如下:
当前代码
index.rst
====================================== MyTitle ====================================== .. raw:: latex \section*{MyTitle} Some text .. toctree:: :hidden: :titlesonly: :caption: Setup setup_macos
setup_macos.md
```{contents} On this page:
macOS setup
In this tutorial...
## 解决办法 直接用MyST-Parser提供的`{only}`条件指令,把生成目录的代码包裹起来,指定仅对HTML输出生效: 修改后的`setup_macos.md`: ```md ```{only} html ```{contents} On this page:
# macOS setup In this tutorial...
原理很简单:{only} html会告诉Sphinx,只有当输出格式是HTML时才渲染里面的内容,LaTeXPDF构建时会自动跳过这段代码,完美实现你要的效果。
如果你的项目还在使用旧版的m2r2解析器,也可以用raw指令分别处理HTML和LaTeX:
.. raw:: html ```{contents} On this page:
.. raw:: latex
% LaTeX会忽略这段注释,相当于不生成目录
不过更推荐用MyST的`{only}`指令,语法更简洁,也符合现在Sphinx Markdown的主流用法。 内容的提问来源于stack exchange,提问作者crockeea
相关产品推荐
相关产品推荐

