Unicode 與 PdfLaTeX

Unicode 與 PdfLaTeX

我想讓 Alchemy 符號在 PdfLaTeX 中工作。我無法訪問 XeTeX 或 LuaTex,因為我在 iPad 上使用 Tex Writer。這是兩個最小的例子。

第一個有效。

    \documentclass{article}
    \usepackage[T1]{fontenc}
    \usepackage{textcomp}
    \usepackage[utf8x]{inputenc}

    \begin{document}
    \unichar{"00E4}
    \unichar{"20AC}
    \end{document}

這個不能編譯:

    \documentclass{article}
    \usepackage[T1]{fontenc}
    \usepackage{textcomp}
    \usepackage[utf8x]{inputenc}

    \begin{document}
    \unichar{"00E4}
    \unichar{"1F701}
    \end{document}

這是錯誤訊息:

l.9 \unichar{"1F701}

? 
! Emergency stop.
 ...                                              

l.9 \unichar{"1F701}

Unicode character 128769 = U+1F701:
ALCHEMICAL SYMBOL FOR AIR
Character is not defined in uni-*.def files.
Enter I! to define the glyph.

Here is how much of TeX's memory you used:
 1717 strings out of 493024
 24829 string characters out of 6124273
 70825 words of memory out of 5000000
 5308 multiletter control sequences out of 15000+600000
 4403 words of font info for 15 fonts, out of 8000000 for 9000
 1141 hyphenation exceptions out of 8191
 23i,0n,17p,304b,478s stack positions out of 5000i,500n,10000p,200000b,80000s
!  ==> Fatal error occurred, no output PDF file produced!

答案1

TeX 是一個排字機:它的工作是從字體中提取字形(形狀),並決定將它們放置在頁面上的位置。因此 TeX 需要獲得有關這些形狀的資訊。

為了解釋您的輸入,預設情況下 TeX 會單獨處理每個位元組。您\usepackage[utf8x]{inputenc}可以讓 TeX 知道它應該將位元組序列解釋為 Unicode 字符,如 UTF-8 編碼所指定的那樣。例如,當您輸入在文件中鍵入時,它會理​​解您的意思Unicode 字元 U+20AC(歐元符號),因為檔案將包含與該字元的 UTF-8 編碼相對應的位元組。這相當於手動輸入\unichar{"20AC}

但是僅僅了解您想要使用特定的 Unicode 字元還不夠:那又怎樣呢? TeX 仍然需要知道如何處理它。

例如:

  • ä U+00E4 帶分音符的拉丁小寫字母 A定義為texmf-dist/tex/latex/ucs/data/uni-0.def\"aTeX 知道如何做)
  • U+20AC 歐元標誌定義為texmf-dist/tex/latex/ucs/data/uni-32.defas \ifx\euro\undefined\texteuro\else\euro\fi,而它又是透過 TeX 中可用的字形以某種方式製成的

你想要的角色,U+1F701 空氣的煉金術符號

相關內容