
Para um script que compila LaTeX para mim, tenho que enviar a string \"
para a linha de comando, dentro de uma string delimitada por "
. Exemplo:
>pdflatex "\IeC{\" o}"
Como faço para escapar do "
meio? Se eu fizer isso pdflatex "\IeC{\\" o}"
, o "\" significará a \
e a string ainda terminará no meio "
. Alguma maneira de contornar isso?
Esclarecimento:A string literal que desejo enviar para o pdflatex é \IeC{\"o}
. Após qualquer escape, é isso que deve ser passado como argumento de linha de comando.
Responder1
\\\"
Para escapar do primeiro caractere, é\\
Para escapar do segundo caractere, é\"
Então, basta colá-los.\\\"
Então, resumindo a história,\\IeC{\\\"o}
Nunca usei o pdflatex antes, mas é assim que os escapes normalmente funcionam.
... a menos que { e } precisem de escapes também
Responder2
Use um quilate como 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 da mesma forma que 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.
Responder3
Você também precisa escapar das barras invertidas:
pdflatex "^\IeC{^\^" o}"
... mas não tenho certeza se os sinais de intercalação significam alguma coisa para o LaTeX, o que acho que provavelmente significam.
Alternativamente, você poderia tentar usar aspas duplas para conter todo o parâmetro, mas duvido que funcionem.
O que certamente funcionaria seria 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.