“Idioma para programas não-Unicode” e Cirílico Exportar para pdf

3

Graças ao comentário do Szabolcs para esta pergunta, eu encontrei uma maneira de Export símbolos cirílicos de Mathematica para PDF corretamente. Nós só precisamos definir uma variável de todo o sistema comumente chamada de sistema local (ou idioma para aplicativos não-Unicode ) para inglês dos EUA, conforme descrito aqui :

  1. Open Regional and Language Options in Control Panel.

  2. On the Advanced tab, under Language for non-Unicode programs, select English (US).

This approach has few usability limitations:

  • Only an administrator has the ability of setting the system locale value.
  • Setting the system locale requires a system reboot.
  • Only one system locale can be set at a time.

Infelizmente, essa configuração afeta não apenas o Mathematica , mas todo programa não-Unicode que é usado no computador, incluindo alguns componentes do próprio Windows. Como resultado, esses programas funcionam incorretamente e, em alguns casos, a alteração dessa opção pode até causar uma BSOD . Por exemplo, o interpretador de linha de comando cmd.exe na versão localizada do Windows depois de definir o local do sistema para o inglês é o seguinte:

ParaoWindowsServer2003eoWindowsXPAMicrosoftdesenvolveuo Utilitário Microsoft AppLocale que se destina a permitir a execução de aplicativos não-unicode sem alterar a localidade do sistema (obrigado programador Windows para a referência) . Mas não consegui que funcionasse para o Mathematica .

É possível definir a localidade do sistema individualmente para Mathematica para obter o cirílico correto Export em PDF?

EDITAR

Existe o executável PDF.exe MathLink no diretório . \ SystemFiles \ Converters \ Binaries \ Windows . Provavelmente devemos definir o sistema locale US English precisamente para este executável?

P.S. Eu uso o Windows XP SP3 localizado.

    
por Alexey Popkov 31.07.2012 / 12:38

1 resposta

1

Parece que o problema pode ser resolvido definindo o valor explícito da opção CharacterEncoding FE global (verificada com o MMa 8.0.4 e 9.0.0):

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

Uma maneira equivalente (sem alterar as configurações globais de FE):

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

Em vez de "UTF8" , um pode definir "UTF-8" ou "ASCII" com o mesmo efeito. A desvantagem dessa abordagem é que todas as letras não inglesas são descritas.

    
por 30.11.2012 / 17:03