在发现如何混合词汇表和首字母缩略词系统之后(看这里)以及如何将假名/汉字与 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}
}