web-dev-qa-db-ja.com

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

LaTeXをコンパイルするスクリプトの場合、\"で区切られた文字列内で文字列"をコマンドラインに送信する必要があります。例:

>pdflatex "\IeC{\" o}"

途中で"をエスケープするにはどうすればよいですか? pdflatex "\IeC{\\" o}"を実行すると、「\」は\を意味し、文字列は"の途中で終了します。これを回避する方法はありますか?

説明: pdflatexに送信したいリテラル文字列は\IeC{\"o}です。エスケープした後、これはコマンドライン引数として渡される必要があります。

4
Tomas Aschan
\\\"

最初の文字をエスケープするには、\\です。

2番目の文字をエスケープするには、\"です。

だから、それらを一緒に貼り付けるだけです。 \\\"

だから、短編小説、\\IeC{\\\"o}

私はこれまでpdflatexを使用したことがありませんが、それが通常のエスケープの仕組みです。

... {と}もエスケープする必要がない限り

2
Aeo

エスケープ文字としてカラットを使用します。

pdflatex "\IeC{^" o}"

編集:

外側の引用符を省略してみてください。

pdflatex \IeC{\" o}

覚えておくべきことの1つは、WindowsはLinux/Unixシェルのようにコマンドライン引数を処理しないということです。引数はそのまま(外部引用符を含めて)プログラムに渡され、プログラムは引数の処理方法を決定する必要があります。だからあなたはスペースを脱出する必要があるかもしれません。それはすべて、pdflatexが引数をどのように見るかに依存します。

また、円記号をエスケープする必要があります。

pdflatex "^\IeC{^\^" o}"

...しかし、キャレットがLaTeXにとって何か意味があるかどうかはわかりませんが、おそらくそうだと思います。

または、二重引用符を使用してパラメーター全体を含めることもできますが、うまくいくとは思えません。

ただし、確かに機能するのは、pdflatexスクリプトを変更して、%1パラメーターと%2パラメーター(必要に応じて最大%n)を連結し、引用符なしでスクリプトに渡すことができるようにすることです。

0
paradroid