Emacsでマークダウンドキュメントを作成しました。文書はウクライナ語であるため、キリル文字がいくつか含まれています。 pandocモードを使用してPDFに変換しようとしています。しかし、それは失敗します:
markdown2pdf: ! LaTeX Error: Command \CYRP unavailable in encoding OT1.
! LaTeX Error: Command \cyrl unavailable in encoding OT1.
! LaTeX Error: Command \cyra unavailable in encoding OT1.
! LaTeX Error: Command \cyrn unavailable in encoding OT1.
! LaTeX Error: Command \CYRV unavailable in encoding OT1.
! LaTeX Error: Command \cyrs unavailable in encoding OT1.
! LaTeX Error: Command \cyrt unavailable in encoding OT1.
! LaTeX Error: Command \cyru unavailable in encoding OT1.
! LaTeX Error: Command \cyrp unavailable in encoding OT1.
! LaTeX Error: Command \CYRN unavailable in encoding OT1.
! LaTeX Error: Command \cyre unavailable in encoding OT1.
! LaTeX Error: Command \cyrv unavailable in encoding OT1.
! LaTeX Error: Command \cyre unavailable in encoding OT1.
! LaTeX Error: Command \cyrl unavailable in encoding OT1.
! LaTeX Error: Command \cyri unavailable in encoding OT1.
! LaTeX Error: Command \cyrk unavailable in encoding OT1.
! LaTeX Error: Command \cyri unavailable in encoding OT1.
! LaTeX Error: Command \cyrishrt unavailable in encoding OT1.
! LaTeX Error: Command \cyrv unavailable in encoding OT1.
! LaTeX Error: Command \cyrs unavailable in encoding OT1.
! LaTeX Error: Command \cyrt unavailable in encoding OT1.
! LaTeX Error: Command \cyru unavailable in encoding OT1.
! LaTeX Error: Command \cyrp unavailable in encoding OT1.
! LaTeX Error: Command \cyrd unavailable in encoding OT1.
! LaTeX Error: Command \cyro unavailable in encoding OT1.
! LaTeX Error: Command \CYRO unavailable in encoding OT1.
! LaTeX Error: Command \CYRO unavailable in encoding OT1.
! LaTeX Error: Command \cyrp unavailable in encoding OT1.
! LaTeX Error: Command \cyrr unavailable in encoding OT1.
! LaTeX Error: Command \cyro unavailable in encoding OT1.
! LaTeX Error: Command \cyrg unavailable in encoding OT1.
! LaTeX Error: Command \cyrr unavailable in encoding OT1.
! LaTeX Error: Command \cyra unavailable in encoding OT1.
! LaTeX Error: Command \cyrm unavailable in encoding OT1.
! LaTeX Error: Command \cyru unavailable in encoding OT1.
! LaTeX Error: Command \cyrv unavailable in encoding OT1.
! LaTeX Error: Command \cyra unavailable in encoding OT1.
! LaTeX Error: Command \cyrn unavailable in encoding OT1.
markdown2pdf: /tmp/pandoc/Thesis-outline-ukr.log: hGetContents: invalid argument (Invalid or incomplete multibyte or wide character)
正しいエンコーディングを使用するにはどうすればよいですか?マークダウンドキュメントで何かを指定する必要がありますか?または、markdown2pdf自体の設定はありますか?
[〜#〜] upd [〜#〜]:これを.emacsに追加しましたが、役に立ちませんでした:
;; set up unicode
(prefer-coding-system 'utf-8)
(set-default-coding-systems 'utf-8)
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
;; This from a japanese individual. I hope it works.
(setq default-buffer-file-coding-system 'utf-8)
;; From Emacs wiki
(setq x-select-request-type '(UTF8_STRING COMPOUND_TEXT TEXT STRING))
UPD2:マークダウンファイルは ここ です。チェックサム:
gleontiev@gleontiev-laptop:~$ sum Documents/Thesis-outline-ukr.markdown
17120 4
gleontiev@gleontiev-laptop:~$ cksum Documents/Thesis-outline-ukr.markdown
2128209357 4078 Documents/Thesis-outline-ukr.markdown
gleontiev@gleontiev-laptop:~$ openssl dgst -sha1 Documents/Thesis-outline-ukr.markdown
SHA1(Documents/Thesis-outline-ukr.markdown)= d36a0b4fb051e6928751eba152a5555768d1cb13
マークダウンはUnicodeを期待していると思います。おそらく、recodeを使用して、エンコーディングをデフォルトのエンコーディングからUTF8に変更してみてください。
Pandocによると markdown2pdfマニュアル
入力はUTF-8文字エンコードであると想定されています。ローカル文字エンコードがUTF-8でない場合は、iconvを介して入力をパイプする必要があります。
iconv -t utf-8 input.txt | markdown2pdf
markdown2pdfは、unicode、array、fancyvrb、graphicx、およびulemパッケージがlatexの検索パスにあることを前提としています。これらのパッケージがラテックスセットアップに含まれていない場合は、 http://ctan.org から入手できます。
確かに、私は間接的にLaTeXを使用していますが、エラーや警告メッセージを理解して対処するのが難しいことがよくあります。したがって、上記は有望な方法のように見えますが、行き止まりになる可能性があります。
もう1つの可能性は、Pandocのmarkdown2pdfの代わりに htmldoc と組み合わせてマークダウンを試すことです-それが問題を解決するかどうかはわかりませんが、試す価値があるかもしれません。
私はあなたと同じチェックサムを取得していません
$ wget -O Cyrillic2.markdown.txt http://paste.ideaslabs.com/download/J58n5B6cGp
11:06:08 (20.53 KB/s) - `Cyrillic2.markdown.txt' saved [4078/4078]
$ sum Cyrillic2.markdown.txt
40224 4 Cyrillic2.markdown.txt
$ cksum Cyrillic2.markdown.txt
3250703884 4078 Cyrillic2.markdown.txt
$ openssl dgst -sha1 Cyrillic2.markdown.txt
SHA1(Cyrillic2.markdown.txt)= e1d6d92b5c7a3c8673ab5dff4bfe01628b17d77a
Texファイルを編集します。コマンドを見つけます
\usepackage[T1]{fontenc}
に変更します
\usepackage[T2A]{fontenc}
次のコマンドも追加します。
\usepackage[ukrainian]{babel}
pdflatex
を使用してtexファイルをコンパイルします。
ゲームの少し遅れて、これが私がそれを解決した方法です。
--latex-engine=xelatex
どこでもデフォルトのUTF-8。私のために働くコマンドラインは
pandoc --latex-engine=xelatex -V mainfont:"Linux Libertine O" -V monofont="Ubuntu" -o out.pdf in.md
実際には固定幅であるキリル文字をサポートする適切なmonofont
をまだ見つけていません。