2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу 1, 2, 3, 4  След.
 
 Latex и подстановочные знаки
Сообщение10.04.2017, 15:39 


03/06/12
2862
Здравствуйте! Хочу спросить, совместимы ли в командной строке, скажем, команда pdflatex и подстановочные знаки?

 Профиль  
                  
 
 Re: Latex и подстановочные знаки
Сообщение10.04.2017, 15:46 
Модератор


19/10/15
1196
Что Вы называете подстановочными знаками?

 Профиль  
                  
 
 Re: Latex и подстановочные знаки
Сообщение10.04.2017, 19:17 


03/06/12
2862

(Оффтоп)

Karan, вы бы не могли удалить дубль этой темы? Интернет был плохой, пока отправил, получилось 2 раза.

Karan в сообщении #1208184 писал(а):
Что Вы называете подстановочными знаками?

Я про них прочитал в справке Word'а. Оказалось, что часть из них срабатывает и в командной строке как опции для некоторых .exe (например, Asymptote). Недавно прочитал про батники (.bat). Появилась идея создания нового движка для ТеХ.

-- 10.04.2017, 20:23 --

Подстановочные знаки. Там справка для староватых программ, но интересующий меня знак *, актуален и сейчас.

 Профиль  
                  
 
 Re: Latex и подстановочные знаки
Сообщение10.04.2017, 19:56 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Они называются wildcard characters.

 Профиль  
                  
 
 Re: Latex и подстановочные знаки
Сообщение10.04.2017, 19:58 


13/07/14
257

(Оффтоп)

Sinoid в сообщении #1208267 писал(а):
Появилась идея создания нового движка для ТеХ.

Не стоит про это думать в данном контексте ранее, чем практически поработаете с тем, что люди называют "регулярные выражения", "regular expressions", "regexp" в различных программах, не обязательно связанных с TeX. Кроме того, можете открыть для себя такие программы как sed и grep, пришедшие из мира Unix-систем, но благополучно портированные и под Windows. powershell, bash и vim тоже достойны ознакомления.

 Профиль  
                  
 
 Re: Latex и подстановочные знаки
Сообщение10.04.2017, 20:47 


03/06/12
2862

(Оффтоп)

Lenchik в сообщении #1208288 писал(а):
Sinoid в сообщении #1208267

писал(а):
Появилась идея создания нового движка для ТеХ.
Не стоит про это думать в данном контексте ранее, чем практически поработаете с тем, что люди называют "регулярные выражения", "regular expressions", "regexp" в различных программах, не обязательно связанных с TeX. Кроме того, можете открыть для себя такие программы как sed и grep, пришедшие из мира Unix-систем, но благополучно портированные и под Windows. powershell, bash и vim тоже достойны ознакомления.

Да я всего-то в батнике хочу написать сначала компилировать файл .tex, не содержащий в своем названии знак "-", затем обработать все получившиеся файлы .asy программой Asymptote, и. наконц, еще раз прокомпилировать исходный фейл .tex pdflatex'ом. Неужели не справлюсь?


-- 10.04.2017, 21:59 --

Munin в сообщении #1208285 писал(а):
Они называются wildcard characters.

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

 Профиль  
                  
 
 Re: Latex и подстановочные знаки
Сообщение10.04.2017, 21:25 
Заслуженный участник


27/04/09
28128
Зависит от программы. Есть команды командной строки, не являющиеся внешними программами, и там обычно работают, где вообще применимы, но внешние программы уже кто как. Хотя обычно их справка об этом говорит. Краткую справку по аргументам можно получить обычно от самой программы, передав ей какой-то из аргументов
Код:
-?
-h
/?
/h
-help
--help
/help
help
(по-всякому бывает, и мог какие-нибудь варианты ещё упустить).

 Профиль  
                  
 
 Re: Latex и подстановочные знаки
Сообщение10.04.2017, 21:40 
Заслуженный участник
Аватара пользователя


31/01/14
11304
Hogtown
В некоторых командах они работают, например grep в  CLI. В редакторах обычно в Find/Replace. Ну а в командной строке pdflatex они что делать должны?
Sinoid в сообщении #1208267 писал(а):
Я про них прочитал в справке Word'а
Ну а в командной строке Word (ax, я забыл, что Word командной строки не имеет). Пожалуйста, не тащите в TeX это безобразие.
Sinoid в сообщении #1208267 писал(а):
Появилась идея создания нового движка для ТеХ
Лучше для Word. :mrgreen:

 Профиль  
                  
 
 Re: Latex и подстановочные знаки
Сообщение11.04.2017, 11:37 


03/06/12
2862
Red_Herring в сообщении #1208347 писал(а):
Пожалуйста, не тащите в TeX это безобразие.

Безобразие-то безобразием, а было бы неплохо. Вот смотрите. У меня есть файл Krug.tex, в нем есть 6 кодов Asymptote. После первой компиляции pdflatex'ом в папке с этим файлом возникают файлы Krug-1.asy, Krug-2.asy,..., Krug-6.asy. Дальше можно эти файлы .asy обрабатывать вручную в TeXworks созданным мной инструментом верстки Asymptote, что есть крайне неудобно (представьте хотя бы 20 кодов Asymptote в исходном документе .tex), а можно через терминал командой
Код:
asy *.asy

вот он, подстановочный знак, *. И дальше еще раз обрабатываю исходный файл Krug.tex pdflatex'oм. Все, пдф с графикой готов. Так почему бы весь этот процесс не автоматизировать? Проблема только в том, что после обработки файлов .asy в папке появляется куча файлов .tex, а мне при последней компиляции нужно обработать только один файл .tex
Вот если бы можно было использовать команду что-то вроде
Код:
pdflatex [!\-].tex

компилировать pdflatex'ом файлы .tex, в названии которых нет знака "-". Опять-таки эта команда не будет зависеть от названия файла .tex. Может, кто знает, как это задание написать по-другому?
Sinoid в сообщении #1208267 писал(а):
Появилась идея создания нового движка для ТеХ.


Наверное, я не удачно выразился, надо был написать что-то вроде "Инструмент верстки"..

 Профиль  
                  
 
 Re: Latex и подстановочные знаки
Сообщение11.04.2017, 12:38 
Заслуженный участник
Аватара пользователя


31/01/14
11304
Hogtown
Ну вoт pdflatex не понимает * и pdflatex *tex процессирует только первый файл. Ничего страшного для тех кто знает. Я прогоню latexmk -pdf *tex, которая не только прогонит все tex файлы, но и прогонит их нужное раз! Тут, кстати, раздолье для зацикливания, но latexmk имеет предохранитель.

Ок, ну повезло здесь. А допустим не было бы latexmk ? Тоже ничего страшного. В терминале пишу (если использую bash)
Используется синтаксис Bash
for j in `ls *tex`
do pdflatex $j
done

в других shell по другому, например, в tcsh
Код:
foreach j in (`ls *tex`)
pdflatex $j
end

 Профиль  
                  
 
 Re: Latex и подстановочные знаки
Сообщение11.04.2017, 14:37 
Заслуженный участник


20/08/14
11760
Россия, Москва
В командной строке Windows можно делать то же самое:
Код:
for %f in (*.tex) do pdflatex %f
Если это записать в bat/cmd файл, то символ % надо удвоить:
Код:
for %%f in (*.tex) do pdflatex %%f
Это всё описано в справке к команде for и вообще к командной строке Windows.

 Профиль  
                  
 
 Re: Latex и подстановочные знаки
Сообщение11.04.2017, 21:24 


03/06/12
2862
Dmitriy40 в сообщении #1208644 писал(а):
Код:

for %f in (*.tex) do pdflatex %f

Эта команда работает на ура. При попытки же выполнения команды
Dmitriy40 в сообщении #1208644 писал(а):
for %%f in (*.tex) do pdflatex %%f

вижу, например, такое окно: http://postimg.org/image/d2tc9c5bn/. Я 2 года назад, когда учился пользоваться Asymptote, создавал файлы с такими именами. Но создавал-то я их не в папке System32. Это что, все копировалось туда? А еще я недавно пробовал создать батник для создания ста папок. Написать-то написал и в первый раз все сработало. При последующих же попытках папки не создавались, а в командной строке только и успевал прочитать: "уже существует", "уже существует". Батник был следующего содержания:
Код:
echo off
for /l %%i in (1,1,100) do mkdir "dir %%i"

А сейчас залез в папку Windows - все сто папок там в наличии. Это что, всегда так? Как они появились именно там, если слова Windows в батнике близко не было?
Dmitriy40 в сообщении #1208644 писал(а):
Это всё описано в справке к команде for и вообще к командной строке Windows.

Там написано лаконично, я не понял, как применить параметр к данной задаче. Да и, глядя на ваш код не совсем это место понимаю.

 Профиль  
                  
 
 Re: Latex и подстановочные знаки
Сообщение11.04.2017, 22:16 
Заслуженный участник


27/04/09
28128
Sinoid в сообщении #1208799 писал(а):
Как они появились именно там, если слова Windows в батнике близко не было?
С каждый процессом связан текущий каталог, который используется для путей, в которых корень не указан (относительных). Каким-то образом текущий каталог выполняющего ваш батник процесса cmd оказался тот, который оказался. Это странно. Как вы батник запускали, что в нём в точности написано?

-- Ср апр 12, 2017 00:20:02 --

arseniiv в сообщении #1208830 писал(а):
оказался
(Это можно заметить по промпту, выведенному для echo off. Кстати, слава Диэдру, что вы не знаете, как подавлять вывод самой строки echo off (написать вместо неё @echo off), а то узнать текущий каталог было нельзя. :-) )

 Профиль  
                  
 
 Re: Latex и подстановочные знаки
Сообщение12.04.2017, 04:11 
Заслуженный участник


20/08/14
11760
Россия, Москва
Sinoid в сообщении #1208799 писал(а):
Как они появились именно там, если слова Windows в батнике близко не было?
arseniiv в сообщении #1208830 писал(а):
Это странно.
Это абсолютно не странно, cmd.exe запускается с текущим каталогом windows\system32 - если самому не указать другой.

Sinoid в сообщении #1208799 писал(а):
я не понял, как применить параметр к данной задаче.
Команда for запустит команду pdflatex для каждого файла *.tex в текущем каталоге, что Вам и требовалось. Не понимаю что тут непонятного. Запустить один раз для начального файла можно или руками, или добавить вызов в bat/cmd файл.

 Профиль  
                  
 
 Re: Latex и подстановочные знаки
Сообщение12.04.2017, 07:27 


13/07/14
257
Dmitriy40 в сообщении #1208912 писал(а):
Это абсолютно не странно, cmd.exe запускается с текущим каталогом windows\system32 - если самому не указать другой.

На разных операционных системах по-разному.
В win7 или win10 в зависимости от прав пользователя там могут быть и каталог текущего пользователя и каталог папки, из которой запущен скрипт. Потому приходилось писать в некоторых скриптах, рассчитанных на "набрасывание" файла на них перетаскиванием, в самом начале
Используется синтаксис Bash
SET source_path=%~dp1
cd /d "%source_path%"
 

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 47 ]  На страницу 1, 2, 3, 4  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group