如何调整Sphinx与RinohType生成的代码文档PDF格式:解决类描述偏移至构造函数定义右侧问题
解决RinohType生成PDF时类描述显示在构造函数右侧的问题
我之前也踩过RinohType这个排版坑,类的描述挤在构造函数右边大概率是模板布局规则或者文档结构解析的问题,给你几个实操的解决方向:
检查并修改模板的类成员布局
RinohType的排版完全靠模板控制,默认模板可能把类成员的定义和描述设成了水平排列。你需要找到模板文件(通常是.rtt格式)里的Class样式配置,调整members的布局为垂直堆叠:Style Class: members: layout: vertical # 强制成员定义和描述垂直排列 label_width: 35% # 可选:固定成员定义的宽度,避免描述被挤压如果用的是Sphinx配套的RinohType模板,找
sphinx_rtd.rtt或者你自定义的模板文件修改即可。调整docstring解析的结构输出
要是你结合Sphinx生成文档,可能是Sphinx的autodoc插件把类的描述和构造函数签名合并成了同一行的inline元素。可以修改Sphinx配置或者模板里的描述样式,强制描述换行:Style desc_content: display: block margin_top: 8pt # 给描述和定义之间加一点间距这个样式会让类的描述部分以块级元素显示,自动换行到构造函数下方。
自定义类成员模板片段
如果默认模板的配置不够灵活,你可以直接重写类成员的模板片段,明确把签名和描述分成两行:Template ClassMember: content: - Paragraph(member.signature, style='desc_signature') - Paragraph(member.description, style='desc_content')把这段代码加到你的自定义模板里,就能完全控制类成员的排版结构。
调试文档节点结构
要是以上方法都没效果,可以先导出docutils生成的XML文档(比如用sphinx-build -b xml),看看类和构造函数的节点是不是被错误地放在了同一层级的inline元素里,这样能快速定位是解析还是排版的问题。
内容的提问来源于stack exchange,提问作者Thomas K
相关产品推荐
相关产品推荐

