Windows のコマンド ラインで文字列 \" をエスケープするにはどうすればよいですか?

Windows のコマンド ラインで文字列 \" をエスケープするにはどうすればよいですか?

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 まで) を連結し、引用符なしでスクリプトに渡すことです。

関連情報