写入文件时转义引号

写入文件时转义引号

当使用引号作为字符串的一部分时,通常需要对引号进行转义。我现在有一个My nice title存储在中的字符串\mytitle,我想从 LaTeX 中写入一个 JSON 文件,其内容为{title: "My nice title"}。这与书中的工作原理相同。

但是,当标题包含引号时,例如,The case "Johnny R." is cool.我必须转义标题中的引号,如{title: "The case \"Johnny R.\" is cool."}

所有 Javascript 库都有自动执行此操作的函数。但我该如何从 LaTeX 中执行这样的引号转义呢?

答案1

如果您使用的是 LuaTeX,则可以使用捆绑\luaescapestring函数。否则,您可以尝试\myescapestring使用 LaTeX3 实现的函数。

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{expl3}

\ExplSyntaxOn

\newcommand{\myescapestring}[1]{
  \tl_set:Nn \l_tmpa_tl {#1}
  \regex_replace_all:nnN {"} {\u{c_backslash_str}"} \l_tmpa_tl
  \tl_use:N \l_tmpa_tl
}

\ExplSyntaxOff

\begin{document}

\par\luaescapestring{this is "a string"}
\par\myescapestring{this is "a string"}

\end{document}

相关内容