我正在编写一个Python脚本,它使用reStructuredText语法获取多个文本文件,并使用Docutil创建一个单独的LaTeX文件。一切都很好,除了Docutils创建了很多我不需要的额外语法。
例如,通过一个简单的小节,Docutils将写成
\subsection*{\phantomsection%
About%
\addcontentsline{toc}{subsection}{About}%
\label{about}%当我只需要
\subsection{About}我已经看到Pandoc没有创建那么多额外的语法,但是它不支持CSV表,所以我不能在我的项目中使用它。
我已经检查了所有的docutils设置,但我真的找不到任何选项来限制输出。有没有办法让Docutils只创建我想要的语法?
发布于 2012-04-25 00:41:21
根据我的评论,应该可以子类化docutils.writers.latex2e.Writer和docutils.writers.latex2e.LaTeXTranslator来定制docutils LaTeX编写器的输出,其方式类似于描述如何定制this编写器的this博客帖子。然而,纵观docutils.writers.latex2e.LaTeXTranslator,这看起来要比HTML编写器复杂得多。
另一种方法是只修改这些类。要获得您想要的输出,只需执行以下操作(注意,这是针对docutils 0.8.1的):
path/to/docutils/writers/latex2epath/to/docutils/writers/latex2e/__init__.py目录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.Writer和docutils.writers.latex2e.LaTeXTranslator子类化,这样您就可以从将来版本的docutils中对这些类所做的任何更改中受益。上面的方法可以工作,但在未来的版本中可能需要更改。
https://stackoverflow.com/questions/9824271
复制相似问题