我正在写一章关于 Unicode 的内容。我使用 LaTeXfancyvrb
和inputenc
,这样我就可以毫无问题地输入大多数 Unicode 字符。
问题:我想包含来自补充代码平面的字符。具体来说是 G 谱号。以下是我想要的代码:
\begin{Verbatim}
>>> cleff=u"\U0001D11E"
>>> len(cleff)
2
>>> type(cleff)
<type 'unicode'>
>>> cleff[0]
u'\ud834'
>>> cleff[1]
u'\udd1e'
>>> import sys
>>> sys.stdout.write(cleff.encode('utf-8')+"\n")
答案1
如果您要排版许多特殊的 unicode 字符,请不要使用inputenc
,而应该使用带有 unicode 字体的 XeLaTeX 或 LuaLaTeX。
此外,你的字体应该有这个符号。我没有任何包含 U+1D11E 的字体。因此我无法给你一个真实的例子。
或者,您可以转而使用 LaTeX 来排版符号或添加图形。您不必使用 XeTeX 或 LuaTeX。而且您不必为符号使用任何字体 — 这并不重要。
由于我几乎找不到 G-Cleff 的字体,所以这种方法更为实用。
例子:
\documentclass{article}
\usepackage{fancyvrb}
\font\musixfont="musix11" at 7pt
\newcommand\cleff{{\musixfont G}} % G-Cleff symbol from MusixTeX fonts
\begin{document}
\begin{Verbatim}[commandchars=\$\{\}]
>>> cleff=u"\U0001D11E"
>>> len(cleff)
2
>>> type(cleff)
<type 'unicode'>
>>> cleff[0]
u'\ud834'
>>> cleff[1]
u'\udd1e'
>>> import sys
>>> sys.stdout.write(cleff.encode('utf-8')+"\n")
$cleff
>>>
\end{Verbatim}
\end{document}