如何在“多语言”词汇表条目的名称中将假名与 CJK 放在一起?

如何在“多语言”词汇表条目的名称中将假名与 CJK 放在一起?

在发现如何混合词汇表和首字母缩略词系统之后(看这里)以及如何将假名/汉字与 pdfLaTeX 一起使用(看这里),我试图将两者混合在一起,以创建一种词典,其中包含对象的名称、罗马字(使用我们的字母表)、括号中的假名/汉字,然后是描述,必要时还可以附带图片。

这两个包和命令配合得很好,但是,如果您尝试在词汇表条目(使用相关命令)的“名称”中放入一些假名/汉字,它不起作用。但是,如果在描述中,就没有问题。

这是一个运行良好的例子:

\documentclass[12pt,a4paper,oneside]{book}
\usepackage[francais]{babel}
\usepackage[utf8]{inputenc}
\usepackage{CJKutf8,pinyin} % Enables TeX to generate (a) East Asian glyphs and (b) their pronunciations.
\usepackage[overlap,CJK]{ruby} % Simple method for generating sub- and super-textual pronunciation keys (Pīnyīn, kana, etc.)
\usepackage[T1]{fontenc}
\usepackage[svgnames]{xcolor}
\usepackage{graphicx}
\usepackage{enumitem}
\usepackage{url}
\usepackage[pdftex]{thumbpdf}
\usepackage[pdftex,
    breaklinks = true,
    bookmarksnumbered = true,
    colorlinks = true,
    linkcolor = bleuvert,
    bookmarks = true,
    pdfpagemode = UseOutlines,
    pdfstartview = FitH,
    pdfpagelayout = OneColumn,
    urlcolor = darkpink,
    ]{hyperref}
\usepackage{index}
\usepackage[acronym]{glossaries}
\makeglossaries
%
\author{Julien}
\title{Test8}
\date{Dernière compilation le \today}
%
\newcommand{\kana}[1]{\begin{CJK*}{UTF8}{gbsn}#1\end{CJK*}}
\newcommand{\kanji}[1]{\begin{CJK*}{UTF8}{bkai}#1\end{CJK*}}
%
\definecolor{vertfonce}{cmyk}{0.775,0,0.775,0.35}
\definecolor{red_relevant}{cmyk}{0.0,1.7,3.2,0.55}
\definecolor{bleuvert}{cmyk}{2.875,0.105,0.365,0.2}
\definecolor{darkpink}{cmyk}{0,0.25,0.175,0.45}
%
\newglossaryentry{Test}{name={Obon}, description={\kana{お}\kanji{盆}}}
%
\begin{document}
%
\thispagestyle{empty}
\maketitle
%
\frontmatter
%
\tableofcontents
%
\printglossary[type=acronym]
%
\mainmatter
%
\part{Introduction}
%
\chapter{Test}
%
\gls{Test}
%
\appendix
%
\part{Annexe}
%
\chapter{Les index}
%
\printglossary[style=list]
%
\end{document}

(抱歉看起来太丑了……)请注意,我的问题是,我不想在描述中使用日文字符,而是想将它们放在名称中,如下所示:

\newglossaryentry{Test}{name={Obon (\kana{お}\kanji{盆})}, description={This is ...}}

任何想法?

=>\unexpanded{}是解决方案,感谢 egreg 的回答。

答案1

这是与扩展时间有关的问题。如果角色在场内,那么让命令更强大似乎可以解决这个问题description

\usepackage{etoolbox}
\newrobustcmd{\kana}[1]{\begin{CJK*}{UTF8}{gbsn}#1\end{CJK*}}
\newrobustcmd{\kanji}[1]{\begin{CJK*}{UTF8}{bkai}#1\end{CJK*}}

然而,当他们在现场时,这并不能解决问题name;在这种情况下,这个技巧有效:

\newglossaryentry{Test}{
  name={Obon \unexpanded{\kana{お}\kanji{盆}}},
  description={Something}
}

相关内容