【问题标题】:Replace latex index syntax with restructured text index syntax用重组的文本索引语法替换乳胶索引语法
【发布时间】:2013-01-18 10:57:43
【问题描述】:

我正在使用 Pandoc 将文档从 LaTeX (XeTeX) 转换为 ReStructuredText。文档有大量索引条目,Pandoc 不处理索引。当 Pandoc 转换时,索引条目被删除,只留下条目的文本。因此,我需要一种将索引条目转换为 LaTeX 文件中的 ReST 语法的方法,然后 Pandoc 在转换时将它们剥离。在我的测试中,这种工作方式:Pandoc 保留了索引条目,但避开了反引号。我可以把那些去掉。这是我手动操作时的样子:

\index{Some index item}    # The LaTex entry
:index:`Some index item`   # Modified for ReST format (still in the LaTeX file)
:index:\`Some index item\` # Result after Pandoc conversion to ReST

我可以在最终的 ReST 文件中用适当的反引号替换最终的转义反引号。我似乎无法弄清楚如何为 LaTeX 文件中的替换创建一个可行的方法(Regex?)。欢迎提出建议(包括有关完成整个制作的更好方法的建议)。

【问题讨论】:

    标签: regex latex restructuredtext pandoc


    【解决方案1】:

    您似乎正在寻找与以下正则表达式匹配的条目

    ^\\index\{([^}]*)\}
    

    :index:`$1`
    

    其中$1 是对正则表达式的捕获组([^}]*) 的引用。

    您可以使用例如 shell 脚本或在文本编辑器中手动执行此过程来自动执行此过程。

    注意,上述正则表达式假定{} 内没有}

    【讨论】:

    • 感谢您的帮助。您的正则表达式完美运行。我越是深入研究,似乎我仍然必须手动处理其中一些索引条目。例如,正则表达式适用于独立的索引条目,但不适用于内联条目(当然,有几种索引变体,例如具有分段语法、强调和其他内容的索引变体)。所以,至少我有一个开始。再次感谢。
    • @rosslaird。上面的正则表达式假设每个索引条目都在一行的开头。如果不是这种情况,请删除前导 ^
    • 是的,我这样做了,并且捕获了更多的内联条目。现在棘手的事情是独立条目只有一个术语,而内联条目有重复的术语。所以我现在有很多版本的:index:'entry'entry。我正在研究如何提出一个正则表达式来删除第二个术语。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多