2
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Obsidianで書いたMarkdownを相互参照・参考文献付きでLaTeX組版のPDFに変換する

Last updated at Posted at 2025-02-04

はじめに

Obsidianで書いたMarkdownを相互参照・参考文献付きでLaTeX組版のPDFに変換する方法について書きます。OSはWindows 11です。

仕組みについては、MarkdownとPandocとLatexmkで楽してレポートを書くに詳しいです。この記事のインターフェースにObsidianを用いて、ユーザビリティを向上させたものになります。

この環境の構築に成功すると
model.png
このようにObsidianで書かれたMarkdownを
model.jpg
このようにLaTeXで組版されたPDFに一発で変換することができます。WordやLaTeXに変換することもできます。

導入するもの

  • Obsidian
    • MdTex
  • Tex Live
  • Pandoc
    • pandoc-crossref

手順

環境構築の手順を紹介します。手順通りに進めてエラーが発生したときは、トラブルシューティングに同様の問題がないか確認し、その都度修正してください。

Tex Liveをインストールする

Tex Liveをインストールしてください。
参考: 【大学生向け】LaTeX完全導入ガイド Windows編 (2022年)

Pandocとpandoc-crossrefをインストールする

Pandocとそのフィルターであるpandoc-crossrefをインストールしてください。
参考: Pandocの比較的簡単なインストール方法

pandoc-crossrefの書き方については、Markdownで相互参照を使うならpandoc-crossrefに詳しいです。

ObsidianにMdTexのプラグインをインストールする

以下の2つの記事を参考にして、ObsidianにMdTexのプラグインをインストールしてください。

  1. Obsidian用プラグインMdTexの導入方法、使い方について
  2. Obsidian用プラグイン「MdTex」v1.1.1のリリースについて

--citeprocPandoc追加オプションに入力

MdTexの設定からPandoc追加オプション--citeprocと入力してください。
option.png

トラブルシューティング

Chocolateyでインストールするとpandoc-crossrefのバージョンが古くなる

確認方法

  1. pandoc --versionをコマンドプロンプトに入力してPandocのバージョンを確認します。
  2. pandoc-crossref --versionをコマンドプロンプトに入力してpandoc-crossrefに対応するPandocのバージョンを確認します。
> pandoc --version
pandoc.exe 3.6.2
Features: +server +lua
Scripting engine: Lua 5.4
User data directory: C:\Users\ユーザー名\AppData\Roaming\pandoc
Copyright (C) 2006-2024 John MacFarlane. Web: https://pandoc.org
This is free software; see the source for copying conditions. There is no warranty, not even for merchantability or fitness for a particular purpose.
> pandoc-crossref --version
pandoc-crossref v0.3.4.1 git commit 484c8168a5190e13b43f1aa1547554081aa2ca5b (HEAD) built with Pandoc v2.7.2, pandoc-types v1.17.5.4 and GHC 8.4.4

pandoc-crossrefを手動でインストールする

  1. User data directory:以下を見てユーザーデータディレクトリを確認します。
  2. ディレクトリはない場合もあるので、なければ作ります。
  3. GitHubからpandoc-crossrefの最新版をダウンロードします。
  4. ユーザーデータディレクトリにfilterフォルダを作成して、pandoc-crossref.exeをそこに置きます。

.styファイルがないというエラーが出る

Pandoc error: Error producing PDF. ! LaTeX Error: File 'lualatex-math.sty' not found.

このようなエラーが出たときはTex Liveでインストールすれば解決します。

tlmgr install lualatex-math

bibliographyが認識されない

Pandoc error: File ファイル名.bib not found in resource path.

このようなエラーが出たときはメタデータのbibliography:以下をフルパスで書きます。

YAML
---
bibliography: C:/Users/...
---

このとき引用符や括弧は付けず、\ではなく/で区切ります。
拡張子の.bibも付けます。

Tips

  • タグはメタデータの中に入れるとPDFでは表示されなくなります。

コード例

model.md

---
#アイデア
title: Markdownの実験
author: 坂本
date: \today
bibliography: C:/Users/...

---

# はじめに

あいうえお[@Lang:alg]。

ところで[@fig:the-garden]はThe Gardenの画像。

![The Garden](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQkcYJ9sRt-gn1s2THNwIvlEZjswNcZF1Mj5A&s){#fig:the-garden}

[@eq:kai]は解の公式。
$$ x=\frac{-b\pm\sqrt{b^2-4ac}}{2a} $$ {#eq:kai}

::: {#refs}
:::

追記したいことがある。
model.bib
@book{Lang:alg,
  author    = {Lang, Serge},
  title     = {Algebra},
  series    = {Graduate Texts in Mathematics},
  volume    = {211},
  edition   = {Third},
  publisher = {Springer-Verlag, New York},
  year      = {2002},
}
2
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?