はじめに
PandocとVS Codeの拡張機能であるMarkdown Preview Enhancedを使って論文を書いています。が、最近新調したMacでプレビューが表示されないというトラブルが発生しました。
Pandocを使った論文執筆環境構築は以下のリンクから読めます。
結論
Googleドライブのフォルダ名「マイドライブ」がダサすぎてパスが通らなかったようです。シンボリックリンクを作ってパスを通すと解決しました。
内容
Markdown Preview Enhancedという拡張機能を使うと、Markdownの内容をPandocを介してプレビュー表示できます。コマンドラインでPandocを実行する前に内容を確認できるため便利です。
settings.json
に以下の記述を追加することで、各種フィルターやbibtexファイルなどを指定することができます。
"markdown-preview-enhanced.pandocArguments": [
"--filter=pandoc-crossref",
"--citeproc",
"--bibliography=/Users/Library/CloudStorage/GoogleDrive-hoge@hoge.com/マイドライブ/bibliography.bib",
"--csl=/Users/Library/CloudStorage/GoogleDrive-hoge@hoge.com/マイドライブ/styles/hoge.csl",
],
しかし、プレビュー上で以下のようなエラーが出てしまいました。
pandoc: /Users/Library/CloudStorage/GoogleDrive-hoge@hoge.com//styles/hoge.csl: withBinaryFile: invalid argument (cannot encode character '\65533')
本当はGoogleDrive-hoge@hoge.com/マイドライブ/styles
なのですが、どうやらカタカナを読めないみたいです。
解決策
名前にカタカナが入っていないフォルダを別に作ってそこにメタデータを入れる、という方法でもいいのですが、Googleドライブで管理したいので、シンボリックリンクを使って解決しました。
ChatGPT曰く、「シンボリックリンクを作成すると、元のファイルやディレクトリの別名として機能し、元の場所にアクセスすることなく別の場所からそれにアクセスできます。これは特に、パスに特殊文字が含まれていたり、長いパスを簡略化したい場合に便利です。」だそうです。
ターミナルで、以下のコマンドを実行し、Googleドライブのシンボリックリンクを作成します。
ln -s "/Users/Library/CloudStorage/GoogleDrive-hoge@hoge.com/マイドライブ" ~/Desktop/MyDrive
これで、デスクトップ上にMyDrive
という名前のアイコンが作成されます。あとは、パスをこちらに通すだけです。
"markdown-preview-enhanced.pandocArguments": [
"--filter=pandoc-crossref",
"--citeproc",
"--bibliography=/Users/Library/Desktop/MyDrive/bibliography.bib",
"--csl=/Users/Library/Desktop/MyDrive/styles/hoge.csl",
],