Cześć Dobrzy ludzie z Emacsa!
Mam problem z eksportowaniem symboli matematycznych Unicode z bufora (tryb org) do pliku pdf.
1. Opis problemu:
Symbole są wstawiane do bufora jako znaki Unicode (metodą wprowadzania TEX lub matematyki firmy )
Oto demonstracja kodu źródłowego:
#+TITLE: Unicode characters export test
#+AUThor:
#+date:
Unicode characters:
ℝ ℤ ℕ ⇒ ∈ ∀
Same symbols in latex format:
$$\Bbb{R} \Bbb{Z} \Bbb{N} \Rightarrow \in \forall$$
Wytworzony plik .tex zawiera symbole Unicode:
% 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}
Plik PDF nie:
2. Rzeczy, które próbowałem do tej pory:
Xelatex i matematyka-unicode: Jest to uwzględnione w odpowiedzi z programu Rasmus. Muszę przyznać, że nie używam wersji programistycznej trybu org, o którym wspominał. (nie udało się go zainstalować) W każdym razie próbowałem xelatex i matematyki Unicode. Moja wersja trybu Org to 8.2.10.
#+latex_compiler: xelatex
#+latex_header: \usepackage{libertine}
#+latex_header: \usepackage{unicode-math}
Włączenie tego do pliku wprowadza niezbyt uroczą wiadomość zamiast pliku pdf.
org-latex-compile: plik PDF ./unicode_export_test.pdf nie został utworzony: [błąd pakietu]
Sprawdziłem poprawność instalacji matematyki:
~ $ kpsewhich unicode-math.sty
/usr/share/texlive/texmf-dist/tex/latex/unicode-math/unicode-math.sty
Instalacja Xelatex to najnowsza wersja:
~ $ 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.
zainstaluj rozwojową wersję trybu org: (nie powiodło się) Następujące Jak mogę być na bieżąco z najnowocześniejszymi rozwiązaniami? - tutorial Udało mi się (jak sądzę) pobrać i skompilować. Ponieważ nie mam pojęcia, jak powiedzieć Emacsowi, aby uruchomił tę wersję, Emacs uruchamia tryb Orga w wersji 8.2.10 (release_8.2.10 @ /usr/local/share/emacs/24.4/lisp/org/). Próbowałem dodać następujące wiersze do mojej konfiguracji.
(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)
Bez przyjemnego rezultatu.
Wyszukiwanie w Internecie: Nie znaleziono rozwiązania.
Pokonanie siebie za głupotę: Nie pomogłem.
3. Pytanie: Jak wyeksportować znaki Unicode z trybu org do trybu pdf?
- Czy muszę skonfigurować zmienną trybu org?
- Kompilujesz z innym tłumaczem lateksu?
- Jakieś inne pomysły?
- Jeśli wersja rozwojowa to rozwiązuje .... Jak mogę to zainstalować?
Odpowiedzi:
Potrzebujesz pliku lateksu
\usepackage[utf8x]{inputenc}
zamiast domyślnego\usepackage[utf8]{inputenc}
. Działa to ze standardowym (pdf) lateksem.Aby eksportowany org mógł to wygenerować, musisz odpowiednio ustawić zmienną
org-latex-inputenc-alist
. Na przykład:Aby zmienna została zdefiniowana, może być konieczne
(require 'ox-latex)
najpierw.Niestety obsługuje to tylko ograniczony zestaw liter matematycznych. Znacznie więcej można wesprzeć, włączając
\usepackage[mathletters]{ucs}
. To musi pojawić się przedinputenc
materiałem, więc nie możesz po prostu użyć#+latex_header:
. Sposobem na to jest dodanie go na czeleorg-latex-default-packages-alist
.Pamiętaj, że
ucs
dokumentacja (zazwyczaj dostępna za pośrednictwemtexdoc ucs
) ostrzega omathletters
opcji:Jeśli chcesz, aby te ustawienia były stosowane tylko do bieżącego pliku, a nie globalnie, możesz zdefiniować je jako lokalne zmienne pliku . Dodaj następujące na końcu pliku:
eval
to pseudo-zmienna pozwalająca na wykonanie kodu lisp podczas ładowania pliku.źródło
Ω Θ Γ ω
nie są eksportowane. Zgaduję, że będzie więcej symboli, które nie zostaną wyeksportowane.ox-latex.el
którym zdefiniowano „zaplecze LaTeX dla silnika eksportu organizacji”. Czy powinienem wspomnieć, że pierwszy raz użyłem lateksu w 1995 roku i powoli przechodzę na Unicode?Wystarczy załadować odpowiednią obsługę Unicode do LaTeXa przez
unicode-math
ifontspec
. Następnie musisz skompilować zxelatex
lublualatex
.Patrz docstring następujących zmiennych
org-latex-packages-alist
,org-latex-pdf-process
aorg-latex-compiler
(te ostatnie są wprowadzane w Org 9).W wersji programistycznej Org możesz zrobić coś takiego:
źródło
Process completed with errors: [package error]
jakieś pomysły, jak to naprawić lub uzyskać bardziej szczegółowy opis błędu?Dwie drogi do przejścia:
1) Napisz odpowiednie wyrażenia TeXa (zamiast Unicode) i pozwól, aby org wyświetlał je jako znaki utf-8 (z
C-c C-x \
). http://orgmode.org/manual/Special-symbols.htmlLub 2) Załaduj pakiet TeX, który tłumaczy twoje znaki utf-8 na odpowiednie wyrażenia matematyczne. Na przykład https://www.ctan.org/pkg/unicode-math?lang=en .
źródło
#+latex_header: \usepackage{unicode-math}
. Ale ten pakiet nie działa dla mnie.