如何快速修复所有错误的引号?

如何快速修复所有错误的引号?

我的整个文档都充满了引号,例如“这”. 这是我的错误,采用了

"this"

代替

``this''

由于文档很长,有没有办法用宏或正则表达式来解决这个问题,而不是手动操作?我使用 TexStudio。

答案1

假设您可以使用 LuaLaTeX,以下解决方案可能会让您感兴趣。它设置了 (a) 一个名为 的 Lua 函数,fixquotes该函数执行非贪婪模式匹配和即时替换操作,以及 (b) 两个名为\FixquotesOn和的 LaTeX 实用程序宏\FixquotesOff,用于激活和停用 Lua 函数。必须满足的唯一假设是"字符总是成对出现,并且"字符的开始和结束实例不被输入流中的换行符分隔。希望您的代码能够轻松满足这些假设。

在此处输入图片描述

\documentclass{article}
\usepackage{luacode} % for "\luaexec" macro
%% Define a Lua function called "fixquotes":
\luaexec{function fixquotes ( s )
           return ( s:gsub ( '"(..-)"' , "``\%1''" ) )
         end}
%% Two utility macros to activate/deactivate the Lua function:
\newcommand\FixquotesOn{\directlua{luatexbase.add_to_callback (
   "process_input_buffer" , fixquotes , "fixquotes" )}}
\newcommand\FixquotesOff{\directlua{luatexbase.remove_from_callback (
   "process_input_buffer" , "fixquotes" )}}

\begin{document}
"this" "there" "that" "Who, me?" "Yes, you."

\FixquotesOn
"this" "there" "that" "Who, me?" "Yes, you."

\FixquotesOff
"this" "there" "that" "Who, me?" "Yes, you."
\end{document}

相关内容