4

Для сценария, который компилирует LaTeX для меня, я должен отправить строку \" в командную строку, внутри строки, разделенной символом " . Пример:

>pdflatex "\IeC{\" o}"

Как мне избежать " в середине"? Если я сделаю pdflatex "\IeC{\\" o}" , то"\"будет означать \ и строка все равно будет заканчиваться в середине " . Есть ли способ обойти это?

Пояснение: буквальная строка, которую я хочу отправить в pdflatex, это \IeC{\"o} . После любых выходов это то, что должно быть передано в качестве аргумента командной строки.

3 ответа3

2
\\\"

Чтобы избежать первого символа, это \\

Чтобы избежать второго персонажа, это \"

Так что просто собери их. \\\"

Итак, короче говоря, \\IeC{\\\"o}

Я никогда раньше не использовал pdflatex, но обычно так и работают.

... если только {и} не нужно убегать

1

Используйте карат как побег персонажа:

pdflatex "\IeC{^" o}"

Редактировать:

Попробуйте опустить внешние кавычки:

pdflatex \IeC{\" o}

Следует помнить, что Windows не обрабатывает аргументы командной строки, как это делает оболочка Linux/Unix. Аргументы передаются в целости (включая внешние кавычки) программе, которая должна решить, как она хочет их обработать. Таким образом, вам может понадобиться покинуть пространство. Все зависит от того, как pdflatex видит аргументы.

0

Вы также должны избежать обратной косой черты:

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

... но я не уверен, что кареты что-то значат для LaTeX, что, я думаю, они, вероятно, делают.

В качестве альтернативы, вы можете попробовать использовать двойные кавычки, чтобы содержать весь параметр, но я сомневаюсь, что они будут работать.

Что бы, конечно, работало, это модификация вашего скрипта pdflatex для объединения параметров% 1 и% 2 (до% n, если необходимо), которые вы затем можете передать в скрипт без кавычек.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .