How to format a LaTeX string in python?(如何在 python 中格式化 LaTeX 字符串?)

本文介绍了如何在 python 中格式化 LaTeX 字符串?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在编写一个应用程序,其部分功能是生成 LaTeX CV,所以我发现自己遇到了这样的字符串

I'm writing an application, part of whose functionality is to generate LaTeX CVs, so I find myself in a situation where I have strings like

egin{document}
	itle{Papers by AUTHOR}
author{}
date{}
maketitle
egin{enumerate}

%%   LIST OF PAPERS
%%   Please comment out anything between here and the
%%   first item
%%   Please send any updates or corrections to the list to
%%   XXXEMAIL???XXX

%usepackage[pdftex, ...

我想用动态信息填充,例如一个电子邮件地址.由于 LaTeX 本身的格式,带有 {email} 语法的 .format 将不起作用,也不会使用带有 %(email)s 语法的字典.特别是,像egin{document}"(LaTeX 中的命令)这样的字符串应该保持原样,而不是从 .format 中替换,并且像%%"(LaTeX 中的注释)这样的字符串也应该是左,没有从填充字典中替换.这样做的合理方法是什么?

which I would like to populate with dynamic information, e.g. an email address. Due to the format of LaTeX itself, .format with the {email} syntax won't work, and neither will using a dictionary with the %(email)s syntax. in particular, strings like "egin{document}" (a command in LaTeX) should be left literally as they are, without replacement from .format, and strings like "%%" (a comment in LaTeX) should also be left, without replacement from a populating dictionary. What's a reasonable way to do this?

推荐答案

为什么这行不通?

>>> output = r'author{{email}}'.format(email='user@example.org')
>>> print output
author{email}

编辑:使用双花括号转义"只有 LaTeX 理解的文字花括号:

edit: Use double curly braces to "escape" literal curly braces that only LaTeX understands:

>>> output = r'egin{{document}} ... author{{{email}}}'.format(
... email='user@example.org')
>>> print output
egin{document} ... author{user@example.org}

这篇关于如何在 python 中格式化 LaTeX 字符串?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!