/gll 的第一行和 /glll 的第二行均设为斜体

/gll 的第一行和 /glll 的第二行均设为斜体

使用 gb4e 时,是否可以将 \let\eachwordone=\itshape 应用于每个 \gll,并将 \let\eachwordtwo=\itshape 应用于每个 \glll?换句话说,是否可以只将拉丁文字的短语斜体化,而不将非拉丁文字的原始文字(如果有)斜体化?

答案1

您可以使用etoolbox包将字体设置包含在\gll\glll命令中,而不是全局设置它们。此包提供了修改命令的命令\pretocmd,以便每次调用命令时都会执行提供的代码。

在下面的 MWE 中\def使用 而不是\let进行双重定义,以防止修补时出现错误。

代码:

\documentclass{article}
\usepackage{fontspec}
\setmainfont{DejaVu Serif}
\usepackage{gb4e}
\usepackage{etoolbox}
\pretocmd{\gll}{\def\eachwordone{\itshape}\def\eachwordtwo{\normalfont}}{}{}
\pretocmd{\glll}{\let\eachwordtwo\itshape}{}{}
\begin{document}
\begin{exe}
    \ex
    \glll καλά Χριστούγεννα\\
    kala christouiena\\
    good christmas\\
    \glt `merry Christmas'
    \ex
    \gll fijne Kerstdagen\\
    nice {christmas days}\\
    \glt `merry Christmas'
\end{exe}
\end{document}

结果:

在此处输入图片描述

相关内容