3

Благодаря комментарию Сабольча к этому вопросу, я нашел способ правильно Export символы кириллицы из Mathematica в PDF. Нам просто нужно установить общесистемную переменную, обычно называемую системной локальной (или язык для не-Unicode-приложений), на американский английский, как описано здесь:

  1. Откройте « Язык и региональные стандарты» на панели управления.

  2. На вкладке « Дополнительно » в разделе « Язык» для программ, не поддерживающих Юникод, выберите английский (США).

Этот подход имеет несколько ограничений юзабилити:

  • Только администратор может установить значение системного языка.
  • Установка языкового стандарта системы требует перезагрузки системы.
  • Только одна системная локаль может быть установлена одновременно.

К сожалению, этот параметр влияет не только на Mathematica, но и на любую не-Unicode-программу, которая используется на компьютере, включая некоторые компоненты самой Windows. В результате эти программы работают некорректно, и в некоторых случаях изменение этой опции может даже вызвать BSOD. Например, интерпретатор командной строки cmd.exe в локализованной версии Windows после установки локальной системы на английский выглядит следующим образом:cmd.exe

Для Windows Server 2003 и Windows XP Microsoft разработала служебную программу Microsoft AppLocale, которая предназначена для запуска приложений, не поддерживающих Юникод, без изменения языкового стандарта системы (спасибо программисту Windows за ссылку). Но мне не удалось заставить его работать на Mathematica.

Можно ли установить системный языковой стандарт для Mathematica индивидуально, чтобы получить правильный Export кириллицы в PDF?

РЕДАКТИРОВАТЬ

В каталоге находится исполняемый файл PDF.exe MathLink .\SystemFiles\Converters\Binaries\ каталог Windows . Возможно, нам следует установить системный языковой стандарт US English именно для этого исполняемого файла?

PS Я использую локализованную Windows XP SP3.

1 ответ1

1

Похоже, что проблему можно решить, установив явное значение глобальной опции FE для CharacterEncoding (проверено с помощью MMa 8.0.4 и 9.0.0):

SetOptions[$FrontEnd, CharacterEncoding -> "UTF8"];
Export["test.pdf", "кириллический текст"]

Эквивалентный способ (без изменения глобальных настроек FE):

Export["test.pdf", 
 Style["кириллический текст", CharacterEncoding -> "UTF8"]]

Вместо "UTF8" можно установить "UTF-8" или "ASCII" с тем же эффектом. Недостатком этого подхода является то, что все неанглийские буквы выделены.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .