pandoc input.md -o output.pdf --pdf-engine=xelatex --template=preamble.tex
preamble.texとinput.mdの内容は次のようになっています(和文にUD書体を指定しております)。
preamble.tex:
\usepackage{fontspec}
\setmainfont{Georgia}
\setsansfont{Arial}
\setjamainfont{BIZ UDMincho Medium}
\setjasansfont[BoldFont=BIZ UDGothic Bold]{BIZ UDGothic}
input.md:
---
documentclass: bxjsarticle
classoption: pandoc
papersize: a4
fontsize: 10pt
---
---
documentclass: bxjsarticle
classoption: pandoc
papersize: a4
fontsize: 10pt
---
# はじめに
彼は"Hello, world!"と言いました。
He said, "Hello, world!"
これでPDFの生成自体は問題なくできるのですが、一重および二重の引用符に適用されるのが英文フォント(Georgia/Arial)ではなく和文フォント(BIZ UDMincho Medium/BIZ UDGothic)となり、全角分の幅になってしまいます。また、日本語文章中の引用符の順序が逆になってしまいます(この問題はフォントの設定をしなくても起きるようです)。日本語文章中の引用符の順序を正しくしつつ、引用符に使用するフォントを英文フォントにすることはできないでしょうか。
環境は次のようになります。
TeX 3.141592653 (TeX Live 2023)
pandoc 3.1.2
macOS 12.6.3
何とか自力で解決できないかといろいろ試してみたのですが上手くできないため、どなたかのお知恵をお借りできればと思い投稿させていただいた次第です。お手数をおかけいたしますが、どうぞよろしくお願いいたします。
として変換結果を標準出力すると pandoc での変換の問題のようです。
---8<------8<------8<------8<------8<------8<---
彼は"Hello, world!"と言いました。
彼は "Hello, world!" と言いました。 ←英文での引用と同じように空白を前後に挿入/追加
彼は "Hello, world!"と言いました。 ←少なくとも「開始引用符」の前の空白は必要のようです。
彼は"ようこそ!"と言いました。
彼は "ようこそ!" と言いました。 ←英文での引用と同じように空白を前後に挿入/追加
彼は "ようこそ!"と言いました。 ←少なくとも「開始引用符」の前の空白は必要のようです。
---8<------8<------8<------8<------8<------8<---
関連用語としてスマートクォートがあるのですが、
マニュアル等には以前は -S とか --smart のオプションがあったようですが、
スマートクォートされたドキュメントをオフにするような場合には、
以下のようにせよとのことで -S や --smart は削除されています。
pandoc -f markdown+smart -t markdown-smart.
和田さん、お返事ありがとうございます。ご指摘の通り、Pandocでの変換部分を最初に検証すべきでした。
$ pandoc input.md -o input.tex
のようにして確認したところ、二重引用符の前後にスペースがない場合には、次のように変換されてしまっておりました。
彼は"Hello, world!"と言いました。 ↓ 彼は''Hello, world!{}``と言いました。
これに対して、二重引用符の前後にスペースを追加すると正しく変換されました。
彼は "Hello, world!" と言いました。 ↓ 彼は ``Hello, world!'' と言いました。
当座はこの方法で回避しつつ、Pandocに対して報告しておこうと思います。これでスマートクオートに関する問題はひとまず解決できました。ありがとうございます。
・・・
次の、引用符が和文扱いになってしまう件につきまして、次のようなソースで試してみたところ、問題なく引用符は欧文扱いになりました。
\documentclass[a4paper,xelatex,ja=standard]{bxjsarticle}
\usepackage{fontspec} \setmainfont{Georgia} \setjamainfont{BIZ UDMincho Medium}
\title{テスト} \begin{document} \maketitle
\section{はじめに}
彼は ``Hello, world!'' と言いました。
He said, ``Hello, world!''
\end{document}
こちらもPandocでの変換に起因する問題だったようです。再現性も確認できましたので、Pandocに報告したいと思います。最初に切り分けて確認すべきところ、混在させたまま質問してしまい、大変失礼いたしました。もし、Pandoc側で修正されるなど何か進展がありましたらご報告いたします。
```
彼は"Hello, world!"と言いました。
彼は "Hello, world!" と言いました。
彼は“Hello, world!”と言いました。
彼は “Hello, world!” と言いました。
```
これを変換すると
```
彼は''Hello, world!{}``と言いました。
彼は ``Hello, world!'' と言いました。
彼は``Hello, world!''と言いました。
彼は ``Hello, world!'' と言いました。
```
となります。
あと、岩熊先生、昔から " は '' と解釈されていたようです。つまり ``...'' でも ``..." でも同じでした。