首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用docutils从reStructuredText创建最小LaTeX语法

使用docutils从reStructuredText创建最小LaTeX语法
EN

Stack Overflow用户
提问于 2012-03-22 22:27:42
回答 1查看 606关注 0票数 3

我正在编写一个Python脚本,它使用reStructuredText语法获取多个文本文件,并使用Docutil创建一个单独的LaTeX文件。一切都很好,除了Docutils创建了很多我不需要的额外语法。

例如,通过一个简单的小节,Docutils将写成

代码语言:javascript
复制
\subsection*{\phantomsection%
About%
\addcontentsline{toc}{subsection}{About}%
\label{about}%

当我只需要

代码语言:javascript
复制
\subsection{About}

我已经看到Pandoc没有创建那么多额外的语法,但是它不支持CSV表,所以我不能在我的项目中使用它。

我已经检查了所有的docutils设置,但我真的找不到任何选项来限制输出。有没有办法让Docutils只创建我想要的语法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-25 00:41:21

根据我的评论,应该可以子类化docutils.writers.latex2e.Writerdocutils.writers.latex2e.LaTeXTranslator来定制docutils LaTeX编写器的输出,其方式类似于描述如何定制this编写器的this博客帖子。然而,纵观docutils.writers.latex2e.LaTeXTranslator,这看起来要比HTML编写器复杂得多。

另一种方法是只修改这些类。要获得您想要的输出,只需执行以下操作(注意,这是针对docutils 0.8.1的):

  1. 按照以下方式备份path/to/docutils/writers/latex2e
  2. Modify path/to/docutils/writers/latex2e/__init__.py目录

代码语言:javascript
复制
1. in the method `LaTeXTranslator.visit_title` replace the line (line 2870)

pdfanchor锚点=‘\幻影部分%\n’

使用

pdfanchor锚点= '‘

2.在方法LaTeXTranslator.visit_title中,替换该行(第2878行)

Self.context.append(self.bookmark(节点)+ '}\n')

使用

self.context.append('}\n')

注意:如果可能的话,最好是将docutils.writers.latex2e.Writerdocutils.writers.latex2e.LaTeXTranslator子类化,这样您就可以从将来版本的docutils中对这些类所做的任何更改中受益。上面的方法可以工作,但在未来的版本中可能需要更改。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9824271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档