Как можно использовать подстановочный знак, например, в следующем коде?

\graphicspath{{1/*/pictures/}}
1
Léo Léopold Hertz 준영 31 Июл 2009 в 02:57
4
Нет на SuperUser. Я часто пишу версии этого языка, но LaTeX - это полный язык Тьюринга. Проблема здесь в том, чтобы найти синтаксис для желаемого результата без бесконечных усилий. Если Уилл Робертсон побеспокоится, он, вероятно, сможет показать нам, как написать цикл. Если вы решаете это с помощью цикла, это программирование.
 – 
dmckee --- ex-moderator kitten
31 Июл 2009 в 05:57
@dmckee: Я не утверждаю, что это не связано с программированием, но это привлечет более широкий круг людей на SU. Пользователи LaTeX не обязательно программисты.
 – 
Bastien Léonard
31 Июл 2009 в 19:39
2
@Bastien: Это вопрос, целевая аудитория которого - те, от которых он ожидает получить ответы - это пользователи LaTeX, которые являются программистами. Это не отличается от вопросов о конкретных языках программирования (например, о JavaScript).
 – 
ShreevatsaR
4 Авг 2009 в 09:38
То же самое для input: tex.stackexchange .com / questions / 13921 /…
 – 
Ciro Santilli 新疆再教育营六四事件法轮功郝海东
17 Авг 2014 в 10:19

2 ответа

Лучший ответ

Вы не можете использовать подстановочные знаки с \graphicspath. Вам нужно будет четко заявить:

\graphicspath{{1/pictures/}{2/pictures/}{3/pictures/}{...etc...}}

Несколько месяцев назад я нашел LaTeX Wikibook. Это хороший ориентир для начала.

3
Sean Bright 31 Июл 2009 в 03:32
@ Шон: Спасибо, Шон! - Я знал, что проблема где-то, когда задавал этот вопрос. - Мои ПУТИ длинные. Это заставило меня использовать следующий синтаксис `\ graphicspath {{очень-длинный-путь1}}; \ graphicspath {{очень-длинный-путь2}}; отдельными строками. - Ваш пример - ключ к решению проблемы.
 – 
Léo Léopold Hertz 준영
31 Июл 2009 в 03:27

Это правда, что подстановочные знаки нельзя использовать в команде \graphicspath. Однако вы можете использовать обходной путь на основе сценария bash, если вы используете ОС на базе Unix.

В вашем примере вы можете создать скрипт с именем myGraphicspath.sh :

#!/bin/bash

PATH="./1/*/pictures"

echo -n \\graphicspath{{./}

for i in $PATH; do
    echo -n \{$i/\}
done

echo \}

Поместите этот сценарий в ту же папку, что и ваш .tex . Теперь вы можете вызвать этот сценарий из Latex. Теперь вы набираете там, где вы бы поместили команду \graphicspath:

\immediate\write18{./myGraphicspath.sh > myGraphicspath.tex}
\input{myGraphicspath.tex}
0
DeeGee 17 Янв 2019 в 18:14