我的整个文档都充满了引号,例如“这”. 这是我的错误,采用了
"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}