我想知道我是否可以在演讲中设置段落分隔符并自动显示引号。这将有助于将长文本从英国风格转换为美国风格。我希望文本显示如下,使 LaTeX 尽可能简单:
“这是一句引言,”他说,“但这可能吗?”
“我可以这么做吗?”
这是我目前所能获得的 MWE,但第二段开头没有引号:
\documentclass{article}
\usepackage[british]{babel}
\usepackage{csquotes}
\begin{document}
\enquote{This is a quote} he said. \enquote{But what is possible?
Can I do this}.
\end{document}
答案1
csquote
您可以使用's调整引用样式以适应所使用的语言\DeclareQuoteStyle
(在 中的原始内容中添加中间标记csquotes.def
):
\documentclass{article}
\usepackage[british]{babel}
\usepackage{csquotes}
\DeclareQuoteStyle[british]{english}
{\textquoteleft}
[\textquoteleft]% middle outer mark
{\textquoteright}
[0.05em]
{\textquotedblleft}
[\textquotedblleft]% middle inner mark
{\textquotedblright}
\begin{document}
\enquote{This is a quote} he said. \enquote{But what is possible?
Can I do this}.
\end{document}
答案2
一个简单的想法是使用 默认为每个段落添加左引号\everypar{`}
。
当然,这只需要在\enquote
命令中执行,因此您可以重新定义\enquote
为包含\everypar
。 的非星号版本在一行代码\enquote
中定义,因此您可以轻松地将该定义复制到您自己的文档中并进行更改。csquotes.sty
\documentclass{article}
\usepackage[british]{babel}
\usepackage{csquotes}
\makeatletter
\long\def\csq@quote@i#1#2#3{%
\csq@bqgroup#1\everypar{`}\csq@oqopen@i#3\csq@qclose@i{#2}}
\makeatother
\begin{document}
\enquote{This is a quote} he said. \enquote{But what is possible?
Can I do this}.
\end{document}
结果:
请注意,\everypar
在 LaTeX 中, 有很多用途,因此如果 的内容\enquote
包含更复杂的代码, 可能会被覆盖,导致引用不适用。但是,对于常规文本来说,它应该是相对安全的。