ऑर्गन मोड से लेटेक्स का उपयोग करके यूनिकोड वर्णों को पीडीएफ में निर्यात करना


15

नमस्कार, Emacs के अच्छे लोग!

मुझे बफर फ़ाइल (org-mode) से यूनिकोड गणित प्रतीकों को पीडीएफ फाइल में निर्यात करने में परेशानी हो रही है।

1. समस्या विवरण:

प्रतीक यूनिकोड वर्ण के रूप में बफर करने के लिए डाला जाता है (के माध्यम से TEX इनपुट विधि या कंपनी-गणित )

यहाँ स्रोत कोड प्रदर्शन है:

#+TITLE: Unicode characters export test 
#+AUThor: 
#+date:
Unicode characters:

ℝ ℤ ℕ ⇒ ∈ ∀ 

Same symbols in latex format:

$$\Bbb{R} \Bbb{Z} \Bbb{N} \Rightarrow \in \forall$$

उत्पादित .tex फ़ाइल में यूनिकोड प्रतीक शामिल हैं:

% Created 2016-03-04 Pá 21:01
\documentclass[11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{fixltx2e}
\usepackage{graphicx}
\usepackage{longtable}
\usepackage{float}
\usepackage{wrapfig}
\usepackage{rotating}
\usepackage[normalem]{ulem}
\usepackage{amsmath}
\usepackage{textcomp}
\usepackage{marvosym}
\usepackage{wasysym}
\usepackage{amssymb}
\usepackage{hyperref}
\tolerance=1000
\date{}
\title{Unicode characters export test}
\hypersetup{
  pdfkeywords={},
  pdfsubject={},
  pdfcreator={Emacs 24.4.1 (Org mode 8.2.10)}}
\begin{document}

\maketitle
\tableofcontents

Unicode characters:

ℝ ℤ ℕ ⇒ ∈ ∀ 

Same symbols in latex format:

$$\Bbb{R} \Bbb{Z} \Bbb{N} \Rightarrow \in \forall$$
% Emacs 24.4.1 (Org mode 8.2.10)
\end{document}

पीडीएफ फाइल नहीं है:

यहाँ छवि विवरण दर्ज करें

2. चीजें जो मैंने अब तक कोशिश की हैं:

ज़ेलेटेक्स और यूनिकोड-गणित: यह रासमस के उत्तर में शामिल है। यहाँ मुझे स्वीकार करना होगा: मैं ओआरजी-मोड के विकास संस्करण का उपयोग नहीं कर रहा हूँ जिसका वह उल्लेख कर रहा है। (इसे स्थापित करने में विफल) मैं xelatex adn यूनिकोड-गणित की कोशिश की है वैसे भी। ऑर्ग मोड का मेरा संस्करण 8.2.10 है।

#+latex_compiler: xelatex
#+latex_header: \usepackage{libertine}
#+latex_header: \usepackage{unicode-math}

फाइल में इसे शामिल करने से पीडीएफ फाइल के बजाय इतना प्यारा संदेश नहीं जाता है।

org- लेटेक्स-संकलन: पीडीएफ फाइल ।/unicode_export_test.pdf का उत्पादन नहीं किया गया था: [पैकेज त्रुटि]

मैंने सही यूनिकोड-गणित स्थापना के लिए जाँच की है:

~ $ kpsewhich unicode-math.sty
/usr/share/texlive/texmf-dist/tex/latex/unicode-math/unicode-math.sty

Xelatex की स्थापना सबसे नया संस्करण है:

~ $ sudo apt-get install texlive-xetex
Reading package lists... Done
Building dependency tree       
Reading state information... Done
texlive-xetex is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 16 not upgraded.

ऑर्ग मोड के विकास के संस्करण को स्थापित: (विफल) के बाद मैं कैसे बढ़त विकास खून बह रहा है के साथ वर्तमान रहते हो? - ट्यूटोरियल मैं सक्षम है (मुझे लगता है) इसे डाउनलोड करें और इसे संकलित करें। चूंकि मुझे नहीं पता है कि Emacs को इस संस्करण को कैसे बताया जाए, Emacs Org-mode संस्करण 8.2.10 (रिलीज़_8.2.10 @ /usr/local/share/emacs/24.4/lisp/org/) चलाता है। मैंने अपने विन्यास में निम्नलिखित पंक्तियों को जोड़ने का प्रयास किया है।

(add-to-list 'load-path (expand-file-name "~/elisp/org-mode/lisp"))
(remove 'load-path (expand-file-name "/usr/local/share/emacs/24.4/lisp/org/"))
(add-to-list 'auto-mode-alist '("\\.\\(org\\|org_archive\\|txt\\)$" . org-mode))
(require 'org)

सुखद परिणाम के बिना।

इंटरनेट की खोज: समाधान नहीं मिला।

बेवकूफ बनने के लिए अपने आप को पीटना: मदद नहीं की।

3. प्रश्न: यूनिक-मोड से पीडीएफ में यूनिकोड वर्ण कैसे निर्यात करें?

  • क्या मुझे कुछ org- मोड चर को कॉन्फ़िगर करना होगा?
  • विभिन्न लेटेक्स दुभाषिया के साथ संकलन?
  • कोई अन्य विचार?
  • अगर विकास संस्करण इसे ठीक करता है .... मैं इसे कैसे स्थापित कर सकता हूं?

क्या आप कृपया छवियों के अलावा प्लेनटेक्स्ट में एक उदाहरण प्रदान कर सकते हैं ...
रास

जवाबों:


9

आपको \usepackage[utf8x]{inputenc}डिफ़ॉल्ट के बजाय उपयोग करने के लिए लेटेक्स फ़ाइल की आवश्यकता है \usepackage[utf8]{inputenc}। यह मानक (पीडीएफ) लेटेक्स के साथ काम करता है।

यह निर्यात करने के लिए org निर्यात के लिए आपको org-latex-inputenc-alistतदनुसार चर सेट करना होगा । उदाहरण के लिए:

(setq org-latex-inputenc-alist '(("utf8" . "utf8x")))

चर को परिभाषित करने के लिए, आपको (require 'ox-latex)पहले की आवश्यकता हो सकती है ।

दुर्भाग्य से, यह केवल गणित के अक्षरों के सीमित सेट का समर्थन करता है। बहुत अधिक शामिल करके समर्थित किया जा सकता है \usepackage[mathletters]{ucs}। इस inputencसामान के सामने आने के लिए है, तो आप सिर्फ एक का उपयोग नहीं कर सकते #+latex_header:। ऐसा करने का एक तरीका यह है कि इसे सिर पर जोड़ना है org-latex-default-packages-alist

(setq org-latex-default-packages-alist (cons '("mathletters" "ucs" nil) org-latex-default-packages-alist))

ध्यान दें कि ucsप्रलेखन (आमतौर पर उपलब्ध texdoc ucs) mathlettersविकल्प के बारे में चेतावनी देता है :

यह विकल्प डिफ़ॉल्ट रूप से अक्षम है, क्योंकि सामान्य पाठ में गणित ग्रीक का उपयोग करना अच्छा नहीं लगता है।

यदि आप चाहते हैं कि वे सेटिंग विश्व स्तर के बजाय केवल वर्तमान फ़ाइल पर लागू हों, तो आप उन्हें फ़ाइल को स्थानीय चर के रूप में परिभाषित कर सकते हैं । फ़ाइल के अंत में निम्नलिखित जोड़ें:

# Local Variables:
# org-latex-inputenc-alist: (("utf8" . "utf8x"))
# eval: (setq org-latex-default-packages-alist (cons '("mathletters" "ucs" nil) org-latex-default-packages-alist))
# End:

eval फ़ाइल लोड होने पर लिस्प कोड निष्पादित करने के लिए एक छद्म चर है।


प्रतीकों Ω Θ Γ ωका निर्यात नहीं किया जाता है। अनुमान लगाने पर अधिक प्रतीक होंगे जो निर्यात नहीं किए जाएंगे।
Empty_Mind

@Empty_Mind ओह माय। संभवतः यह वास्तव में काम करने के लिए बहुत आसान था (हालांकि यह दिए गए उदाहरण पर ठीक है)। लेटेक्स पक्ष पर अधिक जांच की आवश्यकता है।
जीनपिएरे

@Empty_Mind ने केवल मेरी पोस्ट संपादित की है। बस ओमेगा और थीटा की कोशिश की, आशा है कि अन्य काम भी।
जीनपिएरे

चूँकि मैं यह स्वयं नहीं कर पा रहा था: आपको आवश्यक जानकारी कैसे मिली? तुम क्या खोज रहे थे?
खाली_मिन्द

2
@Empty_Mind लेटेक्स भाग का काम पाने के लिए पहला कदम था। मैंने tex.stackexchange पर यूनिकोड की खोज की और फिर स्थानीय टेक्स डॉक्यूमेंटेशन (इनपुट, यूसीएस) का उपयोग किया। यह ओआरजी द्वारा निर्यात की गई टेक्स फ़ाइल को सीधे संपादित करने और चीजों को आज़माने के लिए संकलन करने के लिए सुविधाजनक है। एक बार जब आपको एक काम करने वाली लेटेक्स फ़ाइल मिल जाती है, तो दूसरा कदम ऑर्गन को जरूरी सामान का निर्यात करना होता है। मैंने फ़ाइल में चर के बारे में पाया, ox-latex.elजहां "एलटीईएक्स बैक-एंड फॉर ऑर्ग एक्सपोर्ट इंजन" को परिभाषित किया गया है। क्या मुझे उल्लेख करना चाहिए कि मैंने पहली बार 1995 में लेटेक्स का इस्तेमाल किया था और मैं धीरे-धीरे यूनिकोड में जा रहा हूं ?
जीनपियर

5

तुम बस के माध्यम से unicode-mathऔर LaTeX में उचित यूनिकोड समर्थन लोड करने की आवश्यकता होगी fontspec। तब आपको xelatexया के साथ संकलन करने की आवश्यकता होगी lualatex

: निम्न चर का docstring देखें org-latex-packages-alist, org-latex-pdf-processऔर org-latex-compiler(बाद संगठन 9 में पेश किया जाता है)।

ऑर्ग के विकास संस्करण में आप ऐसा कुछ कर सकते हैं:

#+latex_compiler: xelatex
#+latex_header: \usepackage{libertine}
#+latex_header: \usepackage{unicode-math}

* Unicode symbols
 $z$ ∈ ℝ ∖ ℤ
\begin{equation}
\label{eq:1}
X ≔ \left\{ z\colon z ∈ ℝ ∖ ℤ \right\}
\end{equation}

ओआरजी-मोड संकलन लेटेक्स दस्तावेजों को यूनिकोड प्रतीकों के साथ


यह प्रॉमिसिंग लग रहा है। लेकिन मुझे Process completed with errors: [package error] कोई विचार मिल रहा है कि इसे कैसे ठीक किया जाए, या अधिक विशिष्ट त्रुटि विवरण प्राप्त करें?
Empty_Mind

मैं विकास संस्करण कैसे स्थापित कर सकता हूं?
खाली_मिंड

2

जाने के दो तरीके:

1) या तो उचित TeX अभिव्यक्तियाँ लिखें (यूनिकोड के बजाय) और आज्ञा दें कि बस उन्हें utf-8 वर्ण (के साथ ) के रूप में प्रदर्शित करें C-c C-x \http://orgmode.org/manual/Special-symbols.html

या 2) एक TeX पैकेज लोड करें जो आपके utf-8 वर्णों को उचित गणित अभिव्यक्तियों में अनुवाद करता है। उदाहरण के लिए https://www.ctan.org/pkg/unicode-math?lang=en


1
विज्ञापन 2) मैं उस TeX पैकेज को कैसे लोड करूं?
खाली 5M16

@Empty_Mind #+latex_header: \usepackage{unicode-math}। लेकिन यह पैकेज मेरे लिए कारगर नहीं है।
जीनपिएरे
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.