![如何比较两个包含西里尔字母的宏?](https://linux22.com/image/359004/%E5%A6%82%E4%BD%95%E6%AF%94%E8%BE%83%E4%B8%A4%E4%B8%AA%E5%8C%85%E5%90%AB%E8%A5%BF%E9%87%8C%E5%B0%94%E5%AD%97%E6%AF%8D%E7%9A%84%E5%AE%8F%EF%BC%9F.png)
简短的问题是: 如何比较两个包含西里尔字母的宏?
\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}