“ ภาษาสำหรับโปรแกรมที่ไม่ใช่ Unicode” และ Cyrillic Export เป็น pdf


3

ขอบคุณที่แสดงความคิดเห็น Szabolcs ' สำหรับคำถามนี้ฉันได้พบวิธีExportสัญลักษณ์ Cyrillic จากMathematicaเป็น PDF อย่างถูกต้อง เราเพียงแค่ต้องตั้งค่าตัวแปรทั้งระบบโดยทั่วไปเรียกว่าระบบโลคัล (หรือภาษาสำหรับแอปพลิเคชันที่ไม่ใช่ Unicode ) เป็นภาษาอังกฤษแบบสหรัฐอเมริกาตามที่อธิบายไว้ที่นี่ :

  1. เปิดตัวเลือกภูมิภาคและภาษาในแผงควบคุม

  2. ในขั้นสูงแท็บภายใต้ภาษาสำหรับโปรแกรมที่ไม่ใช่ Unicodeเลือกภาษาอังกฤษ (สหรัฐอเมริกา)

วิธีการนี้มีข้อ จำกัด ในการใช้งานน้อย:

  • เฉพาะผู้ดูแลระบบเท่านั้นที่มีความสามารถในการตั้งค่าระบบภาษา
  • การตั้งค่าโลแคลของระบบจำเป็นต้องรีบูตระบบ
  • สามารถตั้งค่าระบบได้ครั้งละหนึ่งระบบเท่านั้น

น่าเสียดายที่การตั้งค่านี้ไม่เพียงส่งผลกระทบต่อMathematicaเท่านั้นแต่ทุกโปรแกรมที่ไม่ใช่ Unicode ที่ใช้ในคอมพิวเตอร์รวมถึงส่วนประกอบบางอย่างของ Windows เอง เป็นผลให้โปรแกรมเหล่านี้ทำงานไม่ถูกต้องและในบางกรณีการเปลี่ยนแปลงตัวเลือกนี้ยังสามารถทำให้เกิดBSOD ตัวอย่างเช่นตัวแปลบรรทัดคำสั่งcmd.exeบน Windows ที่แปลเป็นภาษาท้องถิ่นหลังจากตั้งค่าระบบภายในเป็นภาษาอังกฤษแล้วจะมีลักษณะดังนี้: cmd.exe

สำหรับ Windows Server 2003 และ Windows XP Microsoft ได้พัฒนาMicrosoft AppLocale Utilityซึ่งมีวัตถุประสงค์เพื่ออนุญาตให้เรียกใช้แอพพลิเคชั่นที่ไม่ใช่ยูนิโค้ดโดยไม่ต้องเปลี่ยนภาษาของระบบ (ขอบคุณโปรแกรมเมอร์ Windowsสำหรับการอ้างอิง) แต่ฉันไม่สามารถทำงานให้กับMathematicaได้

เป็นไปได้ไหมที่จะตั้งค่าตำแหน่งที่ตั้งของระบบสำหรับMathematicaเพื่อรับ Cyrillic ที่ถูกต้องExportเป็น PDF?

แก้ไข

มีเป็นPDF.exe MathLinkปฏิบัติการใน. \ systemfiles \ แปลง \ Binaries \ Windowsไดเรกทอรี อาจเป็นไปได้ว่าเราควรตั้งค่าภาษาของระบบเป็นภาษาอังกฤษแบบสหรัฐฯสำหรับการปฏิบัติการนี้หรือไม่?

PS ฉันใช้ Windows XP SP3 ที่แปลแล้ว


หากยังไม่ได้รับการแก้ปัญหาที่คุณอาจลองถามใน SuperUser (หรือธงสำหรับการโยกย้าย) เช่นนี้เป็นน้อยเกี่ยวกับMathematica
Mr.Wizard

@ Mr.Wizard อาจเป็นไปได้ว่าคุณถูกต้องฉันจะตั้งค่าสถานะนี้สำหรับการย้ายข้อมูลใน SuperUser
Alexey Popkov

จากพรอมต์คำสั่งถ้าคุณเรียกใช้mode con cpเพจรหัสใดที่รายงาน มันจะต้องเป็น866ของรัสเซีย
bytebuster

@bytebuster ใช่ฉันเข้าใจ866แล้ว
Alexey Popkov

จากนั้นคุณมีสองรายการที่ต้องตรวจสอบ: (1) ตารางการแปลงหน้ารหัสควบคุมผ่านAdvancedแท็บ; (2) การแทนที่แบบอักษรเช่น"Arial,0"="Arial,204"และ"Arial"="Arial,204" หายไปในรีจิสทรี
bytebuster

คำตอบ:


1

ดูเหมือนว่าปัญหาสามารถแก้ไขได้โดยการตั้งค่าที่ชัดเจนของCharacterEncodingตัวเลือก FE ทั่วโลก (ตรวจสอบกับ 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"มีผลกระทบเดียวกัน ข้อเสียเปรียบของวิธีการนี้คือตัวอักษรที่ไม่ใช่ภาษาอังกฤษทั้งหมดมีการระบุไว้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.