Olá pessoal do Emacs!
Estou tendo problemas para exportar símbolos matemáticos unicode do buffer (modo org) para o arquivo pdf.
1. Descrição do Problema:
Os símbolos são inseridos no buffer como caracteres unicode (via método de entrada TEX ou matemática da empresa )
Aqui está a demonstração do código-fonte:
#+TITLE: Unicode characters export test
#+AUThor:
#+date:
Unicode characters:
ℝ ℤ ℕ ⇒ ∈ ∀
Same symbols in latex format:
$$\Bbb{R} \Bbb{Z} \Bbb{N} \Rightarrow \in \forall$$
O arquivo .tex produzido inclui símbolos 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}
O arquivo PDF não:
2. Coisas que tentei até agora:
Xelatex e unicode-math: Isso está incluído na resposta do Rasmus. Aqui tenho que admitir: não estou usando a versão de desenvolvimento do org-mode que ele está mencionando. (falha na instalação) Tentei o xelatex adn unicode-math de qualquer maneira. Minha versão do modo Org é 8.2.10.
#+latex_compiler: xelatex
#+latex_header: \usepackage{libertine}
#+latex_header: \usepackage{unicode-math}
Incluir isso no arquivo apresenta uma mensagem não tão agradável quanto o arquivo pdf.
org-latex-compile: arquivo PDF ./unicode_export_test.pdf não foi produzido: [erro de pacote]
Eu verifiquei a instalação correta do unicode-math:
~ $ kpsewhich unicode-math.sty
/usr/share/texlive/texmf-dist/tex/latex/unicode-math/unicode-math.sty
A instalação do Xelatex é a versão mais recente:
~ $ 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.
instale a versão de desenvolvimento do modo organizacional: (falhou) A seguir Como eu me mantenho atualizado com o desenvolvimento da borda de ataque? - tutorial Consegui (acho) baixá-lo e compilá-lo. Como não tenho idéia de como informar o Emacs para executar esta versão, o Emacs executa a versão 8.2.10 no modo Org (release_8.2.10 @ /usr/local/share/emacs/24.4/lisp/org/). Eu tentei adicionar as seguintes linhas à minha configuração.
(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)
Sem resultado agradável.
Pesquisando na Internet: a solução não foi encontrada.
Me bater por ser estúpido: não ajudou.
3. Pergunta: Como exportar caracteres unicode do modo organizacional para pdf?
- Preciso configurar alguma variável de modo organizacional?
- Compilar com diferentes intérpretes de látex?
- Alguma outra ideia?
- Se a versão de desenvolvimento corrigir isso .... Como posso instalá-lo?
Respostas:
Você precisa do arquivo de látex para usar
\usepackage[utf8x]{inputenc}
em vez do padrão\usepackage[utf8]{inputenc}
. Isso funciona com o látex padrão (pdf).Para a exportação da organização gerar isso, você deve definir a variável de
org-latex-inputenc-alist
acordo. Por exemplo:Para que a variável seja definida, você pode precisar
(require 'ox-latex)
primeiro.Infelizmente, isso suporta apenas um conjunto limitado de letras matemáticas. Muito mais pode ser suportado, incluindo
\usepackage[mathletters]{ucs}
. Isso tem que aparecer antes dasinputenc
coisas, então você não pode simplesmente usar a#+latex_header:
. Uma maneira de fazer isso é adicioná-lo à frenteorg-latex-default-packages-alist
.Observe que a
ucs
documentação (geralmente disponível emtexdoc ucs
) avisa sobre amathletters
opção:Se você deseja que essas configurações se apliquem apenas ao arquivo atual e não globalmente, é possível defini-las como variáveis locais do arquivo . Adicione o seguinte próximo ao final do arquivo:
eval
é uma pseudo variável que permite executar o código lisp quando o arquivo é carregado.fonte
Ω Θ Γ ω
não são exportados. Supondo que haverá mais símbolos que não serão exportados.ox-latex.el
que o "LaTeX Back-End para Org Export Engine" está definido. Devo mencionar que usei o látex pela primeira vez em 1995 e estou passando lentamente para o unicode?Você só precisa carregar o suporte unicode adequado no LaTeX via
unicode-math
efontspec
. Então você precisa compilar comxelatex
oulualatex
.Ver o Docstring das seguintes variáveis:
org-latex-packages-alist
,org-latex-pdf-process
eorg-latex-compiler
(o último é introduzido em Org 9).Na versão de desenvolvimento do Org, você poderia fazer algo assim:
fonte
Process completed with errors: [package error]
alguma idéia de como corrigir isso ou obter uma descrição de erro mais específica?Dois caminhos a seguir:
1) Escreva expressões TeX apropriadas (em vez de unicode) e deixe a org apenas exibi- las como caracteres utf-8 (com
C-c C-x \
). http://orgmode.org/manual/Special-symbols.htmlOu 2) Carregue um pacote TeX que traduza seus caracteres utf-8 nas expressões matemáticas apropriadas. Por exemplo, https://www.ctan.org/pkg/unicode-math?lang=en .
fonte
#+latex_header: \usepackage{unicode-math}
. Mas este pacote não funciona para mim.