我如何知道当前的字体编码?我知道字体编码列表保存在
\cdp@list
宏中。最后一个元素\cdp@list
通常是有效编码,但这并不总是正确的;例如,\setlanguage
可能会切换当前编码。
实际上,我想区分 EU1 或 EU2 字体编码与非 Unicode 编码有效的情况。
答案1
该宏\f@encoding
总是扩展为当前编码:
\documentclass{article}
\usepackage[T2A,T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[russian,english]{babel}
\makeatletter
\newcommand{\printenc}{the current encoding is~\texttt{\f@encoding}}
\makeatother
\begin{document}
Text in English: \printenc
\foreignlanguage{russian}{Какой-то осмысленный текст: \printenc}
English again: \printenc
\begin{otherlanguage}{russian}
Какой-то осмысленный текст: \printenc
\end{otherlanguage}
\end{document}
就 XeLaTeX 和 LuaLaTeX 而言,编码应始终分别为EU1
或EU2
,除非您混合使用字体,但这并不推荐。