web-dev-qa-db-ja.com

markdown2pdfラテックスエラー

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
3
folone

マークダウンは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
1
RedGrittyBrick
  1. Pandocを使用してマークダウンからTeXを生成します。
  2. Texファイルを編集します。コマンドを見つけます

    \usepackage[T1]{fontenc}
    

    に変更します

    \usepackage[T2A]{fontenc}
    
  3. 次のコマンドも追加します。

    \usepackage[ukrainian]{babel}
    
  4. pdflatexを使用してtexファイルをコンパイルします。

0
Roman Cheplyaka

ゲームの少し遅れて、これが私がそれを解決した方法です。

  • 使用する --latex-engine=xelatexどこでもデフォルトのUTF-8。
  • 必要なグリフを含むフォントを使用してください。

私のために働くコマンドラインは

pandoc --latex-engine=xelatex -V mainfont:"Linux Libertine O" -V monofont="Ubuntu" -o out.pdf in.md

実際には固定幅であるキリル文字をサポートする適切なmonofontをまだ見つけていません。

0
tripleee