带自动引号的多段语​​音

带自动引号的多段语​​音

我想知道我是否可以在演讲中设置段落分隔符并自动显示引号。这将有助于将长文本从英国风格转换为美国风格。我希望文本显示如下,使 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包含更复杂的代码, 可能会被覆盖,导致引用不适用。但是,对于常规文本来说,它应该是相对安全的。

相关内容