简短的问题是: 如何比较两个包含西里尔字母的宏?
\ifx
比较两个拉丁字符串并不困难
\def\contentsnameinlanguage{Contents}
\ifx\contentsname\contentsnameinlanguage 1 \else 0 \fi % 1
但是如果我想对西里尔字符串执行同样的事情该怎么办?
\def\contentsnameinlanguage{Зміст}
\ifx\contentsname\contentsnameinlanguage 1 \else 0 \fi %
在这种情况下,我也想收到 1。
完整 MWE:
\documentclass{article}
\usepackage[T2A,T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english,ukrainian]{babel}
\begin{document}
\selectlanguage{english}
\def\contentsnameinlanguage{Contents}
\ifx\contentsname\contentsnameinlanguage 1 \else 0 \fi % 1
\meaning\contentsname
\selectlanguage{ukrainian}
\def\contentsnameinlanguage{Зміст}
\ifx\contentsname\contentsnameinlanguage 1 \else 0 \fi % 0
\expandafter\meaning\contentsname
\end{document}