質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Pandoc

Pandocとは、Haskell製のライブラリおよびコマンドラインツールです。フリー且つオープンソースで、あるフォーマットで書かれた文書を別の形式へ変換することができます。対応フォーマットがとても多いことが特徴です。

Haskell

Haskellは高い機能性をもった関数型プログラミング言語で、他の手続き型プログラミング言語では難しいとされている関数でも容易に行うことができます。強い静的型付け、遅延評価などに対応しています。

TeX

フリーの組版システムで、字や図版などの要素を紙面に配置するという作業をコンピュータで行います

Q&A

解決済

2回答

1850閲覧

Pandocで「--citeprocし直接pdfにした」ときのみ !Missing } inserted

george6493

総合スコア25

Pandoc

Pandocとは、Haskell製のライブラリおよびコマンドラインツールです。フリー且つオープンソースで、あるフォーマットで書かれた文書を別の形式へ変換することができます。対応フォーマットがとても多いことが特徴です。

Haskell

Haskellは高い機能性をもった関数型プログラミング言語で、他の手続き型プログラミング言語では難しいとされている関数でも容易に行うことができます。強い静的型付け、遅延評価などに対応しています。

TeX

フリーの組版システムで、字や図版などの要素を紙面に配置するという作業をコンピュータで行います

0グッド

0クリップ

投稿2021/12/13 11:38

編集2021/12/15 15:41

Pandocを使いmarkdownファイルからpdfを作成したいと考えております。

図や参考文献の多い資料ですので、pandoc-crossrefや--citeprocオプション、bibファイルの使用は欠かせません。

これらを使用してpdfを吐くとき、コマンド

pandoc -F pandoc-crossref -s note.md -o note.pdf --pdf-engine=lualatex --citeproc -V documentclass=ltjsarticle -V classoption=twocolumn -N

を用いて直接.mdから.pdfにしようとすると

Error producing PDF. ! Missing } inserted. <inserted text> } l.512 \end{CSLReferences}

となってしまいます。英語ふくめ調べたところ、解決策として

  • doiの頭にdoi:をつける
  • \usepackage{url}などを入れたテンプレートtexファイルを用意する

がありましたがうまく行かず、さらには引用タグを除いた.bibの中身をすべて削除した状態でも結果は同じでした。
他に、

texファイルに変換してからpdfにした場合
参考文献まわりはうまくいきますがpandoc-crossrefの図表まわりの組版が壊れてしまいます。また2段組等にはなりません。

docsからpdfにした場合
pandoc-crossref、--citeprocはうまくいっていますが数式が汚い、スタイルが異様にダサいという感じになってしまいます。また2段組等にはなりません。

htmlからpdfにした場合
pandoc-crossref、--citeprocはうまくいっていますが数式が汚い、スタイルが異様にダサいにくわえ、数式がレンダリングできません。また2段組等にはなりません。

.bibを使わない場合
すべてうまくいきますが、(当然)bibが使えません。

と、代替手段もそれぞれ少しずつ問題がでてしまったため、解決策をご教授くださる方を求めて質問させていただきます。

また、(htmlやdocx出力、図周りの出力はうまくいっているため関係ないとは思いつつ)関連した問題点として、毎度

WARNING: pandoc-crossref was compiled with pandoc 2.16.2 but is being run through 2.12. This is not supported. Strange things may (and likely will) happen silently.

と言われるのですが、cabal new-updateしてもUp to date, cabal install pandoc-2.16.2 --overwrite-policy=alwaysしてビルド後にpandoc -vしてもバージョンが変わっていない、という状況で完全に手詰まりとなってしまいました。

何卒お助けいただけませんでしょうか。よろしくお願いいたします。

追記
どうも本文に日本語が含まれない場合、素直に変換してうまくいくようです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

根本的な問題はTeXの環境がPandocが使用するテンプレートの環境とミスマッチしていたことだった。TeXLive 2020->TeXLive 2023に入れ替えることで、テンプレートを変更することなく解決することができた。

投稿2023/07/12 03:20

george6493

総合スコア25

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

CSLReference 環境まわりで諸々修正するとうまくいくことがわかった。CSLRightinlineとCSLLeftMergin等のコマンドを削除するとうまくいく。普通に\itemとして引用文献を表示する方法を探し中。

投稿2022/07/30 05:32

george6493

総合スコア25

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問