組織モードからのラテックスを使用したユニコード文字のPDFへのエクスポート


15

こんにちはEmacsの善良な人々!

Unicode数学記号をバッファ(org-mode)からpdfファイルにエクスポートするのに問題があります。

1.問題の説明:

シンボルは、Unicode文字としてバッファーに挿入されます(TEX入力メソッドまたは company-mathを介して)

ソースコードのデモは次のとおりです。

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

ℝ ℤ ℕ ⇒ ∈ ∀ 

Same symbols in latex format:

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

生成された.texファイルには、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}

PDFファイルは次のことを行いません。

ここに画像の説明を入力してください

2.私が今までに試したこと:

Xelatexとunicode-math: これは、Rasmusからの回答に含まれています。ここで私は認めざるを得ない:彼が言及している組織モードの開発バージョンを使用していない。(インストールに失敗しました)とにかくxelatexとunicode-mathを試しました。Orgモードのバージョンは8.2.10です。

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

これをファイルに含めると、PDFファイルではなく、あまり素敵なメッセージが表示されなくなります。

org-latex-compile:PDFファイル./unicode_export_test.pdfは作成されませんでした:[パッケージエラー]

私は正しいunicode-mathインストールを確認しました:

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

ORG-modeの開発版をインストールします(失敗した)、私はエッジの開発を出血と現在保つにはどうすればよいですか?-チュートリアル(ダウンロードしたことがあると思う)をダウンロードしてコンパイルしました。Emacsにこのバージョンを実行するよう指示する方法がわからないため、EmacsはOrg-modeバージョン8.2.10(release_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.質問:ユニコード文字を組織モードからPDFにエクスポートする方法は?

  • org-mode変数を設定する必要がありますか?
  • 別のラテックスインタープリターでコンパイルしますか?
  • 他のアイデアはありますか?
  • 開発バージョンでこれが修正された場合...どうすればインストールできますか?

画像に加えて平文で例を提供して
いただけ

回答:


9

\usepackage[utf8x]{inputenc}デフォルトではなく、使用するラテックスファイルが必要です\usepackage[utf8]{inputenc}。これは標準の(pdf)latexで機能します。

組織のエクスポートでこれを生成するには、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 ファイルがロードされたときにlispコードを実行できるようにする擬似変数です。


シンボルはΩ Θ Γ ωエクスポートされません。エクスポートされないシンボルがさらにあると推測します。
Empty_Mind

@Empty_Mindああ、私の。おそらく、これは実際には機能するには単純すぎました(ただし、提供された例では大丈夫です)。ラテックス側でさらに調査が必要です。
ジャンピエール

@Empty_Mind投稿を編集しました。オメガとシータだけを試しましたが、他の仕事も期待しています。
ジャンピエール

私はこれを自分でできなかったので、どうやって必要な情報を見つけましたか?何を探していましたか?
Empty_Mind

2
@Empty_Mind最初のステップは、ラテックス部品を機能させることでした。tex.stackexchangeでunicodeを検索し、ローカルのtexドキュメント(inputenc、ucs)を使用しました。orgによってエクスポートされたtexファイルを直接編集し、コンパイルして試してみると便利です。作業用のラテックスファイルを取得したら、2番目のステップは組織に必要なものをエクスポートさせることです。ox-latex.el「組織エクスポートエンジンのLaTeXバックエンド」が定義されているファイルの変数について見つけました。1995年に初めてラテックスを使用し、ゆっくりとUnicodeに移行していることに言及する必要がありますか?
ジャンピエール

5

unicode-mathとを介してLaTeXで適切なUnicodeサポートをロードする必要がありfontspecます。次に、xelatexまたはでコンパイルする必要がありますlualatex

次の変数のdocstringを参照してください:org-latex-packages-alistorg-latex-pdf-processおよびorg-latex-compiler(後者はOrg 9で導入されています)。

Orgの開発バージョンでは、次のようなことができます。

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

ユニコードシンボルを使用したorg-modeコンパイルラテックスドキュメント


これは有望に見えます。しかし、私はProcess completed with errors: [package error] これを修正する方法、またはより具体的なエラーの説明を得るためのアイデアを得ていますか?
Empty_Mind

開発バージョンをインストールするにはどうすればよいですか?
Empty_Mind

2

2つの方法:

1)(Unicodeの代わりに)適切なTeX式を記述し、orgにそれらをutf-8文字として(withで)表示させC-c C-x \ます。http://orgmode.org/manual/Special-symbols.html

または2)utf-8文字を適切な数式に変換するTeXパッケージをロードします。たとえばhttps://www.ctan.org/pkg/unicode-math?lang=en


1
広告2)TeXパッケージを読み込むにはどうすればよいですか?
Empty_Mind

@Empty_Mind #+latex_header: \usepackage{unicode-math}。しかし、このパッケージは私には機能しません。
ジャンピエール
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.