自动将“abc”形式的引号转换为``abc''

自动将“abc”形式的引号转换为``abc''

``我最近发现 LaTeX 的开引号 ( ) 和闭引号 ( )的符号不同''。我一直写错了"abc"。我该如何将所有引号转换为``abc''?手动操作会花很长时间,因为我有很多引号。

答案1

的替代方案quotescsquotes来自 2011 年,而quotes是来自 1997 年……

\documentclass[english]{article}

\usepackage{babel}
\usepackage{csquotes}
\MakeOuterQuote{"}

\begin{document}
Hello "World"!
\end{document}

答案2

包裹csquotes除了上述提到的,还有更多优点。如果您使用命令\enquote{. . .},您可以嵌套多层引用,而 LaTeX 会保留正确的符号组合。您甚至可以设置本地化首选项,以便使用适合某种语言的正确符号。

例如,\enquote{\enquote{This is a quote within a quote}}将被呈现为:

“‘这是引言中的引言’”

(相邻符号之间有一条很窄的空间)。

但是如果你csquotes这样加载包(我通常这样做):

\usepackage[autostyle=false, style=british]{csquotes}

上述代码将呈现如下形式:

“这是引言中的引言”

有关更多详细信息,请参阅该包的文档(texdoc csquotes)。

答案3

有一个用于此的包:quotes。使用此包,"text"可以正确排版为``text''

答案4

编辑2鲍里斯提出的解决方案似乎是更简单的方法。

根据您使用的编辑器,您可以执行搜索和替换。您将搜索

_" 

(用空格替换下划线,它只是为了表达我的观点)然后将其替换为

_``

再次,下划线代表空格。

编辑

正如大卫·卡莱尔 (David Carlisle) 指出的那样,您还应该更改正确的引文,''以便获得正确的引文。

但是你必须考虑右引号后面的字符。我知道最好的办法就是尝试考虑所有可能性(我能想到 4 个可能的情况)

"_ %your quote is followed by a white space
". %your quote is followed by a period
", %your quote is followed by a comma
"! %your quote is followed by an exclamation mark

然后将它们分别替换为各自的版本

''_

ETC。

编辑3MWE 带报价包

% !TEX encoding = UTF-8 Unicode

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{quotes}

\begin{document}
\noindent "test" \\
``test''
\end{document}

相关内容