自动将 gb4e 中的 \glt 行括在 \enquote{} 中

自动将 gb4e 中的 \glt 行括在 \enquote{} 中

如何使用 csquotes 中的 \enquote{} 自动将 gb4e 行间注释中的 \glt (\trans) 行括在上下文感知引号中?

\documentclass{article}
\usepackage[english]{babel}
\usepackage{gb4e}
\usepackage{csquotes}
\begin{document}
\begin{exe}
    \ex 
    \gll Etwas fremdsprachiger Text \\
         some {foreign language-y} text \\
    \glt \enquote{Free translation.}
\end{exe}
\end{document}

我希望能够直接输入

\glt Free translation.

并将其渲染为

“Free translation.”

在生成的 PDF 中。

答案1

您可以重新定义\glt以捕获内容直到某个结束分隔符。下面我使用\end\end{exe}

在此处输入图片描述

\documentclass{article}
\usepackage[english]{babel}
\usepackage{gb4e}
\usepackage{csquotes}
\begin{document}
\begin{exe}
  \ex 
  \gll Etwas fremdsprachiger Text \\
       some {foreign language-y} text \\
  \glt \enquote{Free translation.}
\end{exe}

% Now redefine \glt to capture everything up to \end{exe}
\let\oldglt\glt
\long\def\glt #1 \end{\oldglt \enquote{#1}\end}

\begin{exe}
  \ex 
  \gll Etwas fremdsprachiger Text \\
       some {foreign language-y} text \\
  \glt Free translation.
\end{exe}

\end{document}

根据您的使用情况,还可以使用其他分隔符来捕获范围\enquote(如\\评论中建议的 - )。

相关内容