Como faço para escapar da string \ "para linha de comando no Windows?

4

Para um script que compila o LaTeX para mim, tenho que enviar a string \" para a linha de comando, dentro de uma string delimitada por " . Exemplo:

>pdflatex "\IeC{\" o}"

Como eu escape do " no meio? Se eu fizer pdflatex "\IeC{\" o}" , o "\" significará \ e a string ainda será terminada no meio " . Alguma maneira de contornar isso?

Esclarecimento: A string literal que eu quero enviar para o pdflatex é \IeC{\"o} . Depois de qualquer fuga, isso é o que deve ser passado como argumento de linha de comando.

    
por Tomas Aschan 02.11.2010 / 22:31

3 respostas

2

\\"

Para escapar do primeiro caractere, é \

Para escapar do segundo caractere, é \"

Então, apenas cole-os. \\"

Portanto, longa história, \IeC{\\"o}

Eu nunca usei pdflatex antes, mas é assim que escapa normalmente.

... a menos que {e} também escapa

    
por 03.11.2010 / 13:09
1

Use um carat como o caractere de escape:

pdflatex "\IeC{^" o}"

Editar:

Tente omitir as aspas externas:

pdflatex \IeC{\" o}

Uma coisa a lembrar é que o Windows não processa argumentos de linha de comando como um shell Linux / Unix. Os argumentos são passados intactos (incluindo aspas externas) para o programa que deve decidir como deseja processá-los. Então você pode precisar escapar do espaço. Tudo depende de como o pdflatex vê os argumentos.

    
por 02.11.2010 / 23:08
0

Você também precisa escapar das barras invertidas:

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

... mas não tenho certeza se o carets significa alguma coisa para o LaTeX, o que eu acho que eles provavelmente fazem.

Como alternativa, você pode tentar usar aspas duplas para conter o parâmetro inteiro, mas duvido que funcionem.

O que certamente funcionaria, é modificar seu script pdflatex para concatenar os parâmetros% 1 e% 2 (até% n, se necessário), que você pode passar para o script sem aspas.

    
por 03.11.2010 / 13:10