“Langage pour les programmes non Unicode” et export cyrillique au format pdf

3

Grâce au commentaire de Szabolcs sur cette question, j'ai trouvé un moyen de convertir correctement les Exportsymboles cyrilliques de Mathematica en PDF. Nous avons juste besoin de définir une variable à l'échelle du système communément appelée système local (ou langue pour les applications non Unicode ) en anglais américain, comme décrit ici :

  1. Ouvrez les Options régionales et linguistiques dans le Panneau de configuration .

  2. Sous l' onglet Avancé , sous Langue pour les programmes non Unicode , sélectionnez Anglais (US) .

Cette approche a peu de limitations en termes de convivialité:

  • Seul un administrateur peut définir la valeur des paramètres régionaux du système.
  • La définition des paramètres régionaux du système nécessite un redémarrage du système.
  • Un seul paramètre régional du système peut être défini à la fois.

Malheureusement, ce paramètre affecte non seulement Mathematica , mais tous les programmes non Unicode utilisés sur l'ordinateur, y compris certains composants de Windows. En conséquence, ces programmes ne fonctionnent pas correctement et, dans certains cas, le fait de changer cette option peut même provoquer un BSOD . Par exemple, l'interpréteur de ligne de commande cmd.exe de la version localisée de Windows après la définition du système local en anglais se présente comme suit: cmd.exe

Pour Windows Server 2003 et Windows XP, Microsoft a développé l' utilitaire Microsoft AppLocale destiné à permettre l'exécution d'applications non-unicode sans modifier les paramètres régionaux du système (merci au programmeur Windows pour la référence). Mais je n'ai pas réussi à le faire fonctionner pour Mathematica .

Est-il possible de définir les paramètres régionaux du système individuellement pour Mathematica afin d'obtenir le cyrillique correct Exportau format PDF?

MODIFIER

Le fichier MathLink exécutable PDF.exe se trouve dans le répertoire . \ SystemFiles \ Converters \ Binaries \ Windows . Nous devrions probablement définir les paramètres régionaux du système en anglais américain précisément pour cet exécutable?

PS J'utilise Windows XP SP3 localisé.

Alexey Popkov
la source
Si cela ne vous apporte pas de solution, essayez d’interroger SuperUser (ou d’indicateur de migration), car cela concerne moins Mathematica .
Mr.Wizard
@ Mr.Wizard Vous avez probablement raison, je vais le signaler pour la migration sur SuperUser.
Alexey Popkov
Si vous exécutez une invite de commande mode con cp, quelle page de codes est-elle rapportée? Ce doit être 866pour le russe.
bytebuster
@bytebuster Oui, je comprends 866.
Alexey Popkov
Ensuite, vous avez deux éléments à vérifier: (1) Les tables de conversion de page de codes, contrôlées par l’ Advancedonglet; (2) Les substitutions de polices telles que "Arial,0"="Arial,204"et "Arial"="Arial,204" sont manquantes dans le registre.
bytebuster

Réponses:

1

Il semble que le problème puisse être résolu en définissant la valeur explicite de l’ CharacterEncodingoption globale FE (vérifiée avec MMa 8.0.4 et 9.0.0):

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

Une manière équivalente (sans changer les paramètres d’entités globales):

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

Au lieu d' "UTF8"un peut définir "UTF-8"ou "ASCII"avec le même effet. L'inconvénient de cette approche est que toutes les lettres non anglaises sont décrites.

Alexey Popkov
la source