将自定义引号环境括在 csquotes 的引号中

将自定义引号环境括在 csquotes 的引号中

我使用以下aquote环境来创建引文,同时将作者姓名放在引文的右下角(在 beamer 中)。使用此宏是因为如果上一行有空格的话,作者姓名可以“挤进”上一行的空格中。

我的 latex 技能有限。是否可以重新定义此环境以 \enquote{} 引用中的文本?我不知道该怎么做。

\documentclass{beamer}

\usepackage[style=british]{csquotes}

\def\signed #1{{\leavevmode\unskip\nobreak\hfil\penalty50\hskip1em
  \hbox{}\nobreak\hfill #1%
  \parfillskip=0pt \finalhyphendemerits=0 \endgraf}}

\newsavebox\mybox
\newenvironment{aquote}[1]
  {\savebox\mybox{#1}\begin{quote}}
  {\vspace*{1mm}\signed{\usebox\mybox}\end{quote}}

\begin{document}

\begin{frame}
      Example:
      \begin{aquote}{Author Name}
      This is an example with some text that goes across more than one line.    
      \end{aquote}

\end{frame}

\end{document}

我使用的这个宏基于此网站上发布的用于文章的原始宏,但经过了轻微定制以与 beamer 配合使用。如果我能在此网站上找到原始示例,我会在下面提供链接。

在此处输入图片描述

答案1

这是一个您可能需要根据您的字体进行调整的解决方案(\hspace)。

示例报价

\documentclass{beamer}

\usepackage[style=british]{csquotes}

\def\signed #1{{\leavevmode\unskip\nobreak\hfil\penalty50\hskip1em
  \hbox{}\nobreak\hfill #1%
  \parfillskip=0pt \finalhyphendemerits=0 \endgraf}}

\newsavebox\mybox
\newenvironment{aquote}[1]
  {\savebox\mybox{#1}\begin{quote}\openautoquote\hspace*{-.7ex}}
  {\unskip\closeautoquote\vspace*{1mm}\signed{\usebox\mybox}\end{quote}}

\begin{document}

\begin{frame}
      Example:
      \begin{aquote}{Author Name}
      This is an example with some text that goes across more than one line.    
      \end{aquote}

\end{frame}

\end{document}

相关内容