
LaTeX をコンパイルするスクリプトの場合、\"
で区切られた文字列内の文字列をコマンド ラインに送信する必要があります"
。例:
>pdflatex "\IeC{\" o}"
"
途中でをエスケープするにはどうすればいいでしょうか? エスケープするとpdflatex "\IeC{\\" o}"
、「\」は を意味し\
、文字列は中央で終了したままになります"
。これを回避する方法はありますか?
説明:pdflatex に送信したいリテラル文字列は です\IeC{\"o}
。エスケープの後、これがコマンド ライン引数として渡される必要があります。
答え1
\\\"
最初の文字をエスケープするには、\\
2番目の文字をエスケープするには、\"
だから、ただくっつけるだけ。\\\"
つまり、簡単に言うと、\\IeC{\\\"o}
これまで pdflatex を使用したことはありませんが、通常はエスケープはこのように動作します。
...ただし、{と}もエスケープする必要がある場合は
答え2
エスケープ文字としてカラットを使用します。
pdflatex "\IeC{^" o}"
編集:
外側の引用符を省略してみてください:
pdflatex \IeC{\" o}
覚えておくべきことの 1 つは、Windows は Linux/Unix シェルのようにコマンド ライン引数を処理しないということです。引数はそのまま (外側の引用符を含む) プログラムに渡され、プログラムが引数の処理方法を決定する必要があります。そのため、スペースをエスケープする必要があるかもしれません。すべては pdflatex が引数をどのように認識するかによって決まります。
答え3
バックスラッシュもエスケープする必要があります。
pdflatex "^\IeC{^\^" o}"
...しかし、キャレットが LaTeX にとって何か意味を持つかどうかはわかりませんが、おそらく意味があると思います。
あるいは、パラメータ全体を二重引用符で囲むこともできますが、うまくいくかどうかは疑問です。
ただし、確実に機能するのは、pdflatex スクリプトを変更して %1 および %2 パラメータ (必要な場合は %n まで) を連結し、引用符なしでスクリプトに渡すことです。