如何建立日语-英语词汇表?

如何建立日语-英语词汇表?

我正在使用 XeLaTex 撰写日本研究硕士论文,我想插入一个词汇表,每个项目显示 3 个元素:

  • 日语原文(汉字/假名)
  • 它的罗马字版本(romaji)
  • 其译文

它甚至不需要显示每个术语出现的页面。

到目前为止,我还没有使用这样的词汇表,我只想要一个可以用来定义日语术语及其翻译如何出现在正文中的函数,所以我只是创建了一个\nihongo这样的函数:

\documentclass[a4paper, 12pt]{article}

\usepackage{xunicode}
\usepackage{polyglossia}
\usepackage{xeCJK}

\setmainlanguage{french}
\setCJKmainfont{AozoraMinchoRegular.ttf}

\newcommand{\nihongo}[3]{\emph{#1} (#2, «~#3~»)}

\begin{document}   
The \nihongo{bakumatsu}{幕末}{end of the shogunate} era   
\end{document}

日语功能測試

但是,我怀疑我是否可以使用它来构建我需要的词汇表​​。如果我重新定义我的\nihongo函数,是否仍然可以?我应该改用glossaries包吗?如果是这样,我应该如何自定义它以使所有 3 个元素都出现在词汇表中?

答案1

由于您是根据罗马拼音版本进行排序的,因此这更容易。(两者都不makeindex支持xindy日语,因此您只能使用bib2gls按照汉字/假名进行排序。

我没有你的字体,所以我不得不替换它以使示例能够编译,所以只需将其改回来即可。

\documentclass[a4paper, 12pt]{article}

\usepackage{xunicode}
\usepackage{polyglossia}
\usepackage{xeCJK}
\usepackage[style=index]{glossaries}

\setmainlanguage{english}
\setCJKmainfont{Source Han Sans CN}

\newcommand{\nihongo}[3]{\emph{#1} (#2, «~#3~»)}

\makeglossaries

%syntax: \newterm[options]{romaji}{original}{translation}
\newcommand{\newterm}[4][]{%
  \newglossaryentry{#2}{%
    name={#2},% romanized version
    symbol={#3},% original
    first={\protect\nihongo{#2}{#3}{#4}},% first use
    description={#4},% translation
    #1% extra options
  }%
}

\newterm{bakumatsu}{幕末}{end of the shogunate}

\begin{document}   
The \gls{bakumatsu} era.

Next use: \gls{bakumatsu}.

\printglossaries
\end{document}

如果调用该文档myDoc.tex则构建过程如下:

xelatex myDoc
makeglossaries myDoc
xelatex myDoc

文件图像

这定义了一个名为的命令\newterm,该命令定义了一个词汇表条目,其中name字段设置为罗马化版本,symbol字段设置为原始字段,字段description设置为翻译。每个条目都有一个唯一的标识标签,不能包含任何特殊字符。由于您使用的是 XeLaTeX,因此标签中的任何扩展字符都不会有问题,因此在这种情况下,标签可以与字段相同name

可以使用包选项来抑制翻译后的点nopostdot,并且可以使用包选项来隐藏页码nonumberlist

\usepackage[style=index,nopostdot,nonumberlist]{glossaries}

index样式插入symbol括号中。并非所有样式都会检查此字段。(请参阅词汇表提供的所有样式以概览所有预定义样式。

如果您不知道如何运行,makeglossaries请尝试添加automake

\usepackage[style=index,nopostdot,nonumberlist,automake]{glossaries}

如果您需要下一次使用,\gls{bakumatsu}那么\emph只需添加text字段:

\newcommand{\newterm}[4][]{%
  \newglossaryentry{#2}{%
    name={#2},% romanized version
    symbol={#3},% original
    first={\protect\nihongo{#2}{#3}{#4}},% first use
    text={\emph{#2}},% next use
    description={#4},% translation
    #1% extra options
  }%
}

最好只在序言中定义术语,但如果您确实需要在环境中定义术语,请使用document扩展包。这要求词汇表位于文档末尾。(参考书目是否出现在后面并不重要,只要后面没有参考文献即可。)glossaries-extradocdef=restricted\gls\printglossaries

\documentclass[a4paper, 12pt]{article}

\usepackage{xunicode}
\usepackage{polyglossia}
\usepackage{xeCJK}
\usepackage[style=index,nonumberlist,docdef=restricted]{glossaries-extra}

\setmainlanguage{english}
\setCJKmainfont{Source Han Sans CN}

\newcommand{\nihongo}[3]{\emph{#1} (#2, «~#3~»)}

\makeglossaries

%syntax: \newterm[options]{romaji}{original}{translation}
\newcommand{\newterm}[4][]{%
  \newglossaryentry{#2}{%
    name={#2},% romanized version
    symbol={#3},% original
    first={\protect\nihongo{#2}{#3}{#4}},% first use
    text={\emph{#2}},% next use
    description={#4},% translation
    #1% extra options
  }%
}

\newcommand{\provideanduseterm}[4][]{%
 \ifglsentryexists{#2}{}{\newterm[#1]{#2}{#3}{#4}}%
 \gls{#2}%
}

\begin{document}   
The \provideanduseterm{bakumatsu}{幕末}{end of the shogunate} era.  

Next use: \gls{bakumatsu}.

\printglossaries
\end{document}

一般来说,最简单的方法是在序言中定义术语。

这是另一种方法,它假设罗马化版本始终需要\emph在文档中进行格式化(但不要在词汇表中进行格式化):

\documentclass[a4paper, 12pt]{article}

\usepackage{xunicode}
\usepackage{polyglossia}
\usepackage{xeCJK}
\usepackage[style=index,nonumberlist]{glossaries-extra}

\setmainlanguage{english}
\setCJKmainfont{Source Han Sans CN}

\makeglossaries

%syntax: \newterm[options]{romaji}{original}{translation}
\newcommand{\newterm}[4][]{%
  \newglossaryentry{#2}{%
    name={#2},% romanized version
    symbol={#3},% original
    description={#4},% translation
    #1% extra options
  }%
}

\newcommand{\glsxtrpostlinkgeneral}{%
  \ifdefempty\glscustomtext
  {%
    \glsxtrifwasfirstuse
    {%
      \ifglshassymbol{\glslabel}{\space(\glsaccesssymbol{\glslabel},
        «~\glsaccessdesc{\glslabel}~»)}{}%
    }%
    {}%
  }%
  {}%
}

% use \emph in the document (but not in the glossary)
\renewcommand*{\glsxtrregularfont}[1]{\emph{#1}}

\newterm{bakumatsu}{幕末}{end of the shogunate}

\begin{document}   
The \gls{bakumatsu} era.  

Next use: \gls{bakumatsu}.

\printglossaries
\end{document}

文件图像

这使得使用诸如\glspl(使用复数形式)的命令变得更加容易。

如果需要在章节标题或说明中使用该术语,请\glsfmttext使用glossaries-extra

\section{The \glsfmttext{bakumatsu} era.}

或者\glsentrytext只使用基础glossaries包:

\section{The \glsentrytext{bakumatsu} era.}

相关内容