显示《易经》的 64 个卦象(使用 Unicode 范围 4DC0 到 4DFF)

显示《易经》的 64 个卦象(使用 Unicode 范围 4DC0 到 4DFF)

我正在写一本书,需要包含 Unicode 字符的范围4DC0-4DFF展示中国《易经》的卦象 http://en.wikipedia.org/wiki/I_Ching

我使用过各种软件包,也阅读过社区中有关如何使用 Unicode 的所有问题。我是一个初学者在 LaTeX 中。

我的环境:MikTeX,带有 TeXnicCenter 和选项 XeLaTeX,Windows 8。我将文档保存为 UTF-8。

只是一条评论(它已经解决了: : 我可以使用 CJK 包显示所有中文字符吗?

这里有一个例子。但是如何在 LaTeX 中显示每个卦象呢?

http://en.wikipedia.org/wiki/I_Ching_hexagram_01

请提供适用于我所述环境的完整示例。请不要写类似以下内容的内容“做这个”或者“用它。”

希望理解和帮助。

下面是我正在使用的包的一个示例

\documentclass[a4paper,12pt,twoside,openright]{book}
\usepackage[T1]{fontenc}
\usepackage[brazil,portuguese]{babel}
\usepackage{lmodern}    % Type1-font for non-english texts and characters
\usepackage{graphicx}   % For loading graphic files
\usepackage{amssymb, amsmath, pxfonts}  % permite simbolos matemáticos
\usepackage{ae}
\usepackage{aecompl}
\usepackage{fontspec}
%----------------------------------------------
% Unicode environment
%----------------------------------------------
\usepackage{autofe}
\usepackage{ucs}
\usepackage{newunicodechar}
\usepackage[utf8x]{inputenc}
\usepackage[unicode=true]{hyperref}
\hypersetup{unicode=true}
\usepackage{cmap}
\usepackage{CJKutf8}
\DeclareUnicodeCharacter{4DC0}{\hex1}
\newunicodechar{4DC2}{\hex2}
\catcode"4DC0=\qian
%----------------------------------------------
\begin{document}

$hex1$    $hex2$
\qian
\unichar{4DC0}
\char"4DC0
Hexagram \hex1

\end{document}

答案1

一般而言,ucs和包inputenc不能与 XeLaTeX 以及一起使用,但最后一个可能有其用途;永远不要加载和:它们已经过时了。fontencaeaecompl

CJKutf8CJK包是包和带选项inputenc的包的混合utf8。它也不用于 XeLaTeX。

您不需要任何 CJK 包即可打印某些字形:只需找到具有这些字形的字体即可。在我的系统上,我发现了 DejaVu Sans。因此,我定义了一个宏,该宏将字形的编号作为参数(从 0 到 63,如果您愿意,可以从 1 开始)。

出于某种原因,显然是由于如何xeCJK决定什么是中文,什么不是中文,人们必须声明字体两次:对于六卦,必须用 来声明\newCJKfontfamily,对于三卦,必须用 来声明\newfontfamily(或者\newfontface对于不需要根据上下文改变形状的字体来说,这样做更有效率)。

\documentclass{article}
\usepackage{fontspec}
\usepackage{xeCJK}

\setmainfont{Times New Roman}
\setCJKmainfont{LiSong Pro} % or another font supporting Chinese

\newCJKfontfamily{\dejavusanszh}{DejaVu Sans} % this font has the required glyphs
\newfontface{\dejavusans}{DejaVu Sans} % this font has the required glyphs

\newcommand{\iching}[1]{{\dejavusanszh\char\numexpr"4DC0+#1}}
\newcommand{\trigram}[1]{{\dejavusans\char\numexpr"2630+#1}}

\begin{document}

Yì Jīng 易經 - Hex: \iching{8} \trigram{7}

\trigram{0} \trigram{1} \trigram{2} \trigram{3}
\trigram{4} \trigram{5} \trigram{6} \trigram{7}


\iching{0}
\iching{1}
\iching{2}
\iching{3}
\iching{4}
\iching{5}
\iching{6}
\iching{7}

\iching{8}
\iching{9}
\iching{10}
\iching{11}
\iching{12}
\iching{13}
\iching{14}
\iching{15}

\iching{16}
\iching{17}
\iching{18}
\iching{19}
\iching{20}
\iching{21}
\iching{22}
\iching{23}

\iching{24}
\iching{25}
\iching{26}
\iching{27}
\iching{28}
\iching{29}
\iching{20}
\iching{31}

\iching{32}
\iching{33}
\iching{34}
\iching{35}
\iching{36}
\iching{37}
\iching{38}
\iching{39}

\iching{40}
\iching{41}
\iching{42}
\iching{43}
\iching{44}
\iching{45}
\iching{46}
\iching{47}

\iching{48}
\iching{49}
\iching{50}
\iching{51}
\iching{52}
\iching{53}
\iching{54}
\iching{55}

\iching{56}
\iching{57}
\iching{58}
\iching{59}
\iching{60}
\iching{61}
\iching{62}
\iching{63}

\end{document}

在此处输入图片描述

另一种方法是将易经卦象符号声明为非 CJK 字符xeCJK

\documentclass{article}

\usepackage{xeCJK}
\xeCJKsetcharclass{"4DC0}{"4DFF}{0} % set Yijing Hexagrams Symbols as non-CJK characters

\setmainfont{Times New Roman}
\setCJKmainfont{LiSong Pro} % or another font supporting Chinese

\newfontface{\dejavusans}{DejaVu Sans} % this font has the required glyphs

\newcommand{\iching}[1]{{\dejavusans\char\numexpr"4DC0+#1}}
\newcommand{\trigram}[1]{{\dejavusans\char\numexpr"2630+#1}}

\begin{document}

Yì Jīng 易經 - Hex: \iching{8} \trigram{7}
......

\end{document}

答案2

您正在加载许多无法工作或与 xelatex 冲突的包。要获取字形,您可以使用类似这样的代码,但您必须先找到合适的字体。

\documentclass{book}
\usepackage[brazil]{babel}
\usepackage{fontspec}

\begin{document}
{\fontspec{UnicodeBMPFallback.ttf} % replace by a real font with the glyphs
 ^^^^4dc0
 \char"4DC0}

\end{document}

相关内容