如何使用 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
(如\\
评论中建议的 - )。