
Für ein Skript, das LaTeX für mich kompiliert, muss ich den String \"
in einem durch . abgegrenzten String an die Kommandozeile senden "
. Beispiel:
>pdflatex "\IeC{\" o}"
Wie entkomme ich dem "
in der Mitte? Wenn ich das tue pdflatex "\IeC{\\" o}"
, bedeutet das "\" ein \
und die Zeichenfolge wird trotzdem in der Mitte beendet "
. Gibt es eine Möglichkeit, das zu umgehen?
Klärung:Der Literalstring, den ich an pdflatex senden möchte, ist \IeC{\"o}
. Nach allen Escapezeichen sollte dies als Befehlszeilenargument übergeben werden.
Antwort1
\\\"
Um das erste Zeichen zu umgehen, ist es\\
Um das zweite Zeichen zu umgehen, ist es\"
Also kleben Sie sie einfach zusammen.\\\"
Also, lange Rede, kurzer Sinn,\\IeC{\\\"o}
Ich habe pdflatex noch nie verwendet, aber so funktionieren Escapes normalerweise.
...es sei denn, { und } benötigen ebenfalls Escapezeichen.
Antwort2
Verwenden Sie ein Zirkumflex als Escape-Zeichen:
pdflatex "\IeC{^" o}"
Bearbeiten:
Versuchen Sie, die äußeren Anführungszeichen wegzulassen:
pdflatex \IeC{\" o}
Man sollte bedenken, dass Windows Befehlszeilenargumente nicht so verarbeitet wie eine Linux/Unix-Shell. Die Argumente werden unverändert (einschließlich äußerer Anführungszeichen) an das Programm übergeben, das entscheiden muss, wie es sie verarbeiten möchte. Daher müssen Sie möglicherweise das Leerzeichen maskieren. Es hängt alles davon ab, wie pdflatex die Argumente sieht.
Antwort3
Sie müssen auch die Backslashes maskieren:
pdflatex "^\IeC{^\^" o}"
… aber ich bin nicht sicher, ob Carets für LaTeX etwas bedeuten, aber ich denke, das ist wahrscheinlich der Fall.
Alternativ könnten Sie versuchen, den gesamten Parameter in Anführungszeichen zu setzen, aber ich bezweifle, dass das funktionieren würde.
Was jedoch sicherlich funktionieren würde, ist die Änderung Ihres pdflatex-Skripts, um die Parameter %1 und %2 (bei Bedarf bis zu %n) zu verketten, die Sie dann ohne Anführungszeichen an das Skript übergeben können.