C言語のfprintfを使って、Latexのソースファイルを書き出すということがやりたかったのですが、ちょこちょこ詰まったので方法をメモしておきます。
fprintfを使って普段ファイルに出力する時と同じようにファイルに書き出せばよいのですが、
FILE *fp;
//ファイルを開く
fopen(“test.tex”, “w”);
//ファイルに書き出す
fprintf(fp, “\documentclass[a4j]{jarticle} \begin{document}”);
…
のように書いてしまうと、\documentclassや\begin の\d \bがC言語中の記号(エスケープシーケンス)と解釈されてしまうので思ったように表示されません。
これらを表示するためには、\\documentclassのように\は\\と書いておくとよいのです。
まとめると、Latexソース中の次の記号はC言語ソースの” “では次のように書いておくとうまくいきます。
- \begin, \alpha, \frac{}{}などの\で始まるコマンドは、すべて\\begin, \\alpha, \\frac{}{} のように\\で始めて書く。
- %をLatexに表示したいときは、Cソースの” “内には \\% と書いておく。
- Latex中の改行 \\ は、\\\\ と書いておく。
CのプログラムでLatexソースを書き出したい人はあまりいないと思いますが、もしかしたら参考になるかもしれないので記録しておきます。