这是将 unicode 放入非 UTF-8 源的最佳方法吗?

这是将 unicode 放入非 UTF-8 源的最佳方法吗?

我想把下面这句话写进一本书里。

Khabarovsk (Russian: Хабаровск)
is located 30 kilometers (19 mi) 
from the Chinese border.

源不是 UTF-8,我也没有选择将其设为 UTF-8。我想以一种可靠的方式输入俄文字符,这样当文件在不同人之间传输时就不会失真,所以我只能使用 ASCII。

我已经输入了以下内容:

Khabarovsk (Russian: \char"0425 \char"0430 \char"0431 \char"0430 
\char"0440 \char"043E \char"0432 \char"0441 \char"043A )
is located 30 kilometers (19 mi) 
from the Chinese border.

这在 XeLaTeX 中有效(我正在使用)。这真的是将这些 Unicode 字符代码点输入 LaTeX 源代码的最佳方法吗?

是否有一种标准方法来指定适用于所有版本的 LaTeX 的 Unicode 字符?如果没有,有没有关于为什么没有这样的标准符号的评论?我只是想了解这一切是怎么回事。

结论:

让我在下面扩展 David Carlisle 给出的出色答案。插入符号符号如下:

Khabarovsk (Russian: 
^^^^0425^^^^0430^^^^0431^^^^0430^^^^0440^^^^043e^^^^0432^^^^0441^^^^043a)
is located 30 kilometers (19 mi) 
from the Chinese border.

这种做法非常优越,原因如下:

  1. \char 形式在命令后“吃掉”一个空格(TeX 通常这样做),这意味着如果您想要一个空格,您必须做一些特殊的事情,例如添加一个额外的斜线空格(标准 TeX 命令行为)。插入符号符号与字符完全相同:在它们之间放置一个空格,该空格的作用就像字符之间的空格一样。
  2. 此转换在初始解析级别完成,这意味着这些字符可用于 TeX 中的任何内容,包括命令的拼写。它们只是代表输入流中的字符以用于任何目的。
  3. David 暗示 \char 符号可能在字体中选取一个代码点。我想大多数字体都使用 Unicode,所以这可能是也可能不是问题,但无论如何,使用插入符号都允许所有以下逻辑处理该字符,就像您将该字符输入到源文件中一样。
  4. 符号稍微紧凑一些:8 个字符而不是 10 个。

唯一需要注意的是:十六进制数字必须使用小写字母。我不确定,但我认为这只适用于 XeTeX 及其变体。

请参阅博客文章中的进一步讨论向 LaTeX 文档添加 Unicode 字符

答案1

最好使用^^^^043a来生成字符标记,而不是使用 来\char"043A访问字体位置的不可扩展原语。字符标记可用于更多上下文(例如写入目录),并且通常比 的限制更少\char

符号^^^^(和\char"043A)可以在luatex 或 xetex 中起作用,但在无法访问上述插槽的 pdftex 中均不起作用。"FF要在 pdftex 中自然使用 unicode,您确实需要使用 utf8 编码和inputenc

相关内容