使用 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}
结果: