Kuruluş modundan lateks kullanarak unicode karakterleri pdf'ye dışa aktarma


15

Merhaba Emacs'ın iyi insanları!

Tampon (org-mode) unicode matematik sembolleri pdf dosyasına verme konusunda sorun yaşıyorum.

1. Sorun Açıklaması:

Semboller arabelleğe unicode karakterler olarak eklenir ( TEX giriş yöntemi veya şirket matematiği aracılığıyla )

İşte kaynak kodu gösterimi:

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

ℝ ℤ ℕ ⇒ ∈ ∀ 

Same symbols in latex format:

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

Üretilen .tex dosyası unicode sembolleri içerir:

% 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}

Pdf dosyası şunları yapmaz:

resim açıklamasını buraya girin

2. Şimdiye kadar denediğim şeyler:

Xelatex ve unicode-math: Bu Rasmus'un cevabına dahildir. İtiraf etmeliyim: Bahsettiği org-modunun geliştirme sürümünü kullanmıyorum. (yükleyemedi) xelatex adn unicode-math zaten denedim. Kuruluş modunun sürümü 8.2.10.

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

Bunu dosyaya dahil etmek, pdf dosyası yerine çok güzel bir mesaj getirmez.

org-lateks-derleme: PDF dosyası ./unicode_export_test.pdf üretilmedi: [paket hatası]

Doğru unicode-math kurulumu için kontrol ettim:

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

Xelatex kurulumu en yeni sürümdür:

~ $ 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.

org-mode'un geliştirme sürümünü yükleyin: (başarısız oldu) Takip Ediyor Kanama kenarı gelişimi ile nasıl güncel kalabilirim? - öğretici (bence) indirmek ve derlemek mümkün olmuştur. Emacs'a bu sürümü nasıl çalıştıracağımı bilmediğim için, Emacs Org modu sürüm 8.2.10'u (release_8.2.10 @ /usr/local/share/emacs/24.4/lisp/org/) çalıştırır. Aşağıdaki satırları yapılandırmaya eklemeye çalıştım.

(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)

Hoş bir sonuç olmadan.

İnternet aranıyor: Çözüm bulunamadı.

Aptal olduğum için kendimi dövüyorum: Yardım etmedim.

3. Soru: Unicode karakterleri org modundan pdf'ye nasıl aktarabilirim?

  • Bazı kuruluş modu değişkenlerini yapılandırmam gerekiyor mu?
  • Farklı Lateks yorumlayıcılarla mı derleneceksiniz?
  • Başka fikir var mı?
  • Geliştirme sürümü bunu düzeltirse .... Nasıl yükleyebilirim?

resimlere ek olarak düz metin olarak da bir örnek verebilir misiniz ...
rasmus

Yanıtlar:


9

\usepackage[utf8x]{inputenc}Varsayılan yerine kullanmak için lateks dosyasına ihtiyacınız var \usepackage[utf8]{inputenc}. Bu standart (pdf) lateks ile çalışır.

Bunu oluşturmak için kuruluş dışa aktarma için değişkeni org-latex-inputenc-alistbuna göre ayarlamanız gerekir . Örneğin:

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

Değişkenin tanımlanması için (require 'ox-latex)önce yapmanız gerekebilir .

Ne yazık ki, bu sadece sınırlı sayıda matematik harfini destekliyor. Çok daha fazlası dahil edilerek desteklenebilir \usepackage[mathletters]{ucs}. Bu inputencşeylerden önce görünmelidir , bu yüzden sadece a kullanamazsınız #+latex_header:. Bunu yapmanın bir yolu, başına eklemek org-latex-default-packages-alist.

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

Not ucs(genellikle mevcut aracılığıyla belgeleri texdoc ucs) hakkında uyarır mathlettersseçeneği:

Bu seçenek varsayılan olarak devre dışıdır, çünkü normal bir metinde matematik Yunanca kullanmak iyi görünmemektedir.

Bu ayarların genel olarak değil, yalnızca geçerli dosyaya uygulanmasını istiyorsanız, bunları yerel dosya değişkenleri olarak tanımlayabilirsiniz . Dosyanın sonuna yakın aşağıdakileri ekleyin:

# 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 dosya yüklendiğinde lisp kodunu çalıştırmaya izin veren sözde bir değişkendir.


Semboller Ω Θ Γ ωdışa aktarılmaz. Dışa aktarılmayacak daha fazla sembol olacağını tahmin etmek.
Empty_Mind

@Empty_Mind Ah benim. Muhtemelen bu gerçekten çalışmak için çok basitti (sağlanan örnekte ok olsa da). Lateks tarafında daha fazla araştırmaya ihtiyaç var.
JeanPierre

@Empty_Mind Mesajımı yeni düzenledim. Sadece omega ve teta denedim, umarım diğer işler de.
JeanPierre

Bunu kendim yapamadığım için: Gerekli bilgileri nasıl buldun? Ne arıyorsun?
Empty_Mind

2
@Empty_Mind İlk adım lateks parçasının çalışmasını sağlamaktı. Ben tex.stackexchange de unicode için arama ve sonra yerel tex belgeleri (inputenc, ucs) kullanılır. Kuruluş tarafından dışa aktarılan tex dosyasını doğrudan düzenlemek ve bunları denemek için derlemek uygundur. Çalışan bir lateks dosyası aldıktan sonra, ikinci adım, kuruluşun gerekli şeyleri dışa aktarmasını sağlamaktır. Dosyada ox-latex.el"Org Export Engine için LaTeX Arka Uç" un tanımlandığı değişkenleri buldum . 1995'te ilk kez lateksi kullandığımı ve yavaşça unicode'a geçtiğimi belirtmem gerekir mi?
JeanPierre

5

Sadece aracılığıyla LaTeX'te uygun unicode desteğini yüklemek gerekiyordu unicode-mathve fontspec. Sonra xelatexveya ile derlemeniz gerekir lualatex.

Aşağıdaki değişken docstring'ini bakınız org-latex-packages-alist, org-latex-pdf-processve org-latex-compiler(ikinci Org 9 sokulur).

Org'un geliştirme sürümünde böyle bir şey yapabilirsiniz:

#+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}

unicode sembolleri olan lateks belgeleri derleyen kuruluş modu


Bu umut verici görünüyor. Ama bunu Process completed with errors: [package error] düzeltmek veya daha spesifik hata açıklaması almak için herhangi bir fikir alıyorum ?
Empty_Mind

Geliştirme sürümünü nasıl yükleyebilirim?
Empty_Mind

2

İki yol:

1) Ya uygun TeX ifadeleri (unicode yerine) yazın ve kuruluşun sadece utf-8 karakteri (ile ) göstermesine izin verin C-c C-x \. http://orgmode.org/manual/Special-symbols.html

Veya 2) utf-8 karakterlerinizi uygun matematik ifadelerine çeviren bir TeX paketi yükleyin. Örneğin, https://www.ctan.org/pkg/unicode-math?lang=tr .


1
ad 2) bu TeX paketini nasıl yüklerim?
Empty_Mind

@Empty_Mind #+latex_header: \usepackage{unicode-math}. Ama bu paket benim için çalışmıyor.
JeanPierre
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.