2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3, 4  След.
 
 Re: Latex и подстановочные знаки
Сообщение18.04.2017, 02:39 
Заслуженный участник


27/04/09
28128
Sinoid в сообщении #1209306 писал(а):
для обработки единственного файла-неисключения
Так передавайте его параметром. В Проводнике это будет просто перетаскивание нужного файла на файл вашего скрипта. В скрипте используйте "%1" там, где он нужен (кавычки — чтобы пробелы в имени не навредили нигде).

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


03/06/12
2867
Прошу прощения за мое исчезновение из темы, просто вот-вот, вот-вот, а затянулось. Мне удалось написать батник для автоматической обработки документов .tex с кодом asymptote, да еще и с предпросмотром. Получился батник, который обрабатывает все файлы .tex, находящиеся с ним в одной папке, причем, если хотя бы в одном файле .tex есть хотя бы один код Asymptote, после первой компиляции pdflatex'ом все образовавшиеся файлы .asy обрабатываются программой Asymptote, а затем все файлы .tex, в которых есть код Asymptote, повторно компилируются pdflatex'ом.
arseniiv в сообщении #1210333 писал(а):
Так передавайте его параметром. В Проводнике это будет просто перетаскивание нужного файла на файл вашего скрипта.

Мне это было нежелательно, я хотел, повторюсь, добиться полной автоматизации, чтоб нажал "Открыть" и все произошло само собой. Код батника оказался следующим:
Код:
echo off
rem устанавливаю в качестве рабочей папки папку, в который находится
rem данный батник
cd /d %0\..
chcp 1251
cd>imena.txt
for %%f in (*.tex) do echo %%~nf >> imena.txt
for %%f in (*.tex) do pdflatex %%f
if exist *-1.asy cd>imena1.txt
for %%g in (*.tex) do (if exist %%~ng-1.asy (echo %%g >> imena1.txt
asy *.asy
for /f "skip=1" %%g in (imena1.txt) do pdflatex %%g
) else (
echo 2)
)
for /f "skip=1" %%f in (imena.txt) do %%f.pdf
del imena*.txt
pause

Я вот только одного не могу понять: почему если в коде нет команды echo 2, последней выполняемой батником командой является
Код:
if exist *-1.asy cd>imena1.txt

? И окно командной строки закрывается, несмотря на команду pause? Это что, если в коде есть команда else, в ее аргументе что-то должно быть? А как сделать так, чтобы образовавшиеся pdf с названиями из imena.txt открывались не по очереди, а сразу? А, да, еще забыл сказать. Чтобы все работало, надо, чтобы в именах исходных .tex не было пробелов. Сейчас попробовал устранить этот недостаток кавычками, не получилось.

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


27/04/09
28128
Sinoid в сообщении #1211396 писал(а):
Мне это было нежелательно, я хотел, повторюсь, добиться полной автоматизации, чтоб нажал "Открыть" и все произошло само собой.
Тогда я чего-то не понимаю. Или скрипт «переносимый» и должен работать со всем подряд, и это всё будет уместно кидать ему параметром. Или он связан с каким-то неизменным набором файлов, всегда находящихся вместе, и тогда ему совершенно нормально будет работать с текущим каталогом, потому что вызывать этот скрипт из другого будет довольно странно. Впрочем, это моё мнение.

 Профиль  
                  
 
 Re: Latex и подстановочные знаки
Сообщение21.04.2017, 23:33 
Аватара пользователя


11/06/12
10390
стихия.вздох.мюсли
Sinoid, может быть, вам стоит наконец завести пингвина освоить PowerShell? Там вроде как более широкие возможности.

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


03/06/12
2867
arseniiv в сообщении #1211458 писал(а):
потому что вызывать этот скрипт из другого будет довольно странно

Так я и не преследовал этой цели.
arseniiv в сообщении #1211458 писал(а):
Или он связан с каким-то неизменным набором файлов, всегда находящихся вместе

Так батник и находит только файлы .tex, находящиеся с ним в одной папке. Только почему вы считаете набор этих файлов неизменным? В батнике имена исходных .tex-файлов никак не фиксированы. Вы, вообще, работали с файлами .tex, в которых есть код asymptote ?
Aritaborian в сообщении #1211469 писал(а):
Sinoid, может быть, вам стоит наконец завести пингвина освоить PowerShell

Странное дело. Создал .ps1 такого содержания:
Код:
set-executionpolicy remotesigned
copy-item C:\plot -destination D:\papka -recurse

пишет, что выполнение скриптов для данной системы запрещено. А почему? Я ведь разрешил выполнение этого скрипта. В другом месте справки сказано:
Код:
Выполнение неподписанного скрипта:

     1. Сохраните файл скрипта на компьютер;
     2. Нажмите кнопку Пуск, откройте раздел "Мой компьютер"
        и найдите сохраненный файл скрипта.
     3. Щелкните правой кнопкой мыши файл скрипта и
        выберите пункт "Свойства".
     4. Щелкните пункт "Разблокировать".

Но пункта Разблокировать там почему-то нет. Что это значит?
arseniiv в сообщении #1211458 писал(а):
Или скрипт «переносимый» и должен работать со всем подряд

Как понять, со всем подряд? Мне нужен скрипт, работающий только с файлами .tex, зачем я буду писать скрипт, работающий, к примеру, и с .doc тоже?

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


27/04/09
28128
Sinoid в сообщении #1211625 писал(а):
Вы, вообще, работали с файлами .tex, в которых есть код asymptote ?
Честно отвечу: нет. И с самой Asymptote тоже нет. Я держал в уме обычные build script’ы, хотя они тоже, конечно, могут быть всякими.

Sinoid в сообщении #1211625 писал(а):
Как понять, со всем подряд? Мне нужен скрипт, работающий только с файлами .tex, зачем я буду писать скрипт, работающий, к примеру, и с .doc тоже?
Не, я не имел в виду любые форматы файлов, а просто любое расположение.

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


03/06/12
2867
arseniiv в сообщении #1211676 писал(а):
а просто любое расположение.

А вот это тоже сидит у меня в голове. Представляете, я в texworks создал новый инструмент верстки, в качестве программы указал созданный мной батник, в опциях вообще ничего не указал, так при компиляции этим инструментом из окна открытого в texworks файла, находящегося в одной папке с моим батником все происходит так, как будто мой батник является для texwors родным. Случайно никто не знает, как сделать так, чтобы, как бы это сказать батник понимал, из какого файла к нему обращаются?

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


27/04/09
28128
С каким? Или из какой программы? Второе не знаю, возможно ли, а первое — параметром, параметром. Никак иначе. :-)

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


03/06/12
2867
arseniiv в сообщении #1211743 писал(а):
Или из какой программы?

К примеру, texworks.

(Оффтоп)

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

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


27/04/09
28128
Не, я имел в виду, что имеется в виду под вопросом «из какого файла к нему обращаются?» — какая программа вызывает его выполнение или что-то другое. Если вопрос этот, то, возможно, в cmd есть какая-то команда, чтобы узнать, кто запустил текущий процесс, обрабатывающий текущий скрипт, но не верится что-то.

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


03/06/12
2867
arseniiv в сообщении #1211960 писал(а):
Не, я имел в виду, что имеется в виду под вопросом «из какого файла к нему обращаются?» — какая программа вызывает его выполнение или что-то другое

Не то, что какая программа вызывает его выполнение, а какой файл, открытый в texwors, вызывает его выполнение. Скажите, пожалуйста, вот код .bat - можно посмотреть, а можно ли просмотреть код файла .exe ? И вообще, есть ли в файлах .exe код?

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


27/04/09
28128
Sinoid в сообщении #1212052 писал(а):
Не то, что какая программа вызывает его выполнение, а какой файл, открытый в texwors, вызывает его выполнение.
Ну, то есть, для какого файла эта команда вызвана? Тогда его надо передавать параметром, ну а в скрипте обрабатывать этот параметр. Как иначе-то. :-)

Sinoid в сообщении #1212052 писал(а):
а можно ли просмотреть код файла .exe ? И вообще, есть ли в файлах .exe код?
Там исполняемый код, то есть совсем не тот код, который можно легко прочитать, если не знать машинный язык соответствующей архитектуры (кроме некоторых исключений: в программах для .net framework обычно будет и платформонезависимый код на MSIL, ну и вообще в файлах .exe ещё есть всякие разделы с данными, которые никак не исполняются). Можно использовать дизассемблер, чтобы превратить такой код во что-то более удобоваримое, но тут я вообще не разбираюсь — только слово «дизассемблер» и знаю.

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


03/06/12
2867
arseniiv в сообщении #1212084 писал(а):
Как иначе-то. :-)

Просто когда пользуешься, например, texworks или texmeker с MiKTeX 2.9, при начале компиляции в pdflatex происходит обращение к pdflatex.exe и этот pdflatex.exe знает,
arseniiv в сообщении #1212084 писал(а):
для какого файла эта команда вызвана

Получается, что в коде pdflatex.exe должен быть участок для определения файла, из которого этот самый pdflatex.exe вызывается. Я с этой целью и хотел посмотреть код, содержащийся в pdflatex.exe.
arseniiv в сообщении #1212084 писал(а):
машинный язык


arseniiv в сообщении #1212084 писал(а):
дизассемблер

я про это слышал. На этом машинном языке, если не ошибаюсь, писали в самом начале компьютерной эры, потом все вспотели и замучались устали и придумали языки попроще. Так это получается, например, код в батнике комп все равно при исполнении переводит на дизассемблер?
arseniiv в сообщении #1212084 писал(а):
Там исполняемый код, то есть совсем не тот код, который можно легко прочитать, если не знать машинный язык соответствующей архитектуры

А все-таки, на будущее, этот код можно увидеть? Или вы это не знаете?

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


06/10/08
6422
Sinoid в сообщении #1212207 писал(а):
Получается, что в коде pdflatex.exe должен быть участок для определения файла, из которого этот самый pdflatex.exe вызывается.
Нет, это texworks или texmaker знают, с каким файлом они работают, и при запуске pdflatex передают имя этого файла в параметрах командной строки. В texmaker есть настройки вызова команд, которые выглядят примерно так:
Изображение
Вот вместо % подставляется имя файла без расширения.

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


27/04/09
28128
Sinoid в сообщении #1212207 писал(а):
Так это получается, например, код в батнике комп все равно при исполнении переводит на дизассемблер?
Не, эти просто интерпретируются — cmd читает файл в общем случае построчно, каждую строку отдельно разбирает и делает что-то соответствующее.

«Дизассемблер» — это не название языка (вообще машинные языки обычно зовут по имени соответствующего процессора или линейки процессоров, если важны только команды, которые встречаются в них всех одновременно — например, x86). :-) Да и ассемблер — это тоже не машинный язык, это удобное для текстовых редакторов его представление, и притом бывают ассемблеры более высокого уровня с макросами и всяким другим. (Первоначально ассемблер — название программы, переводящей такое представление в машинный код, и потому ещё часто говорят «язык ассемблера».)

Sinoid в сообщении #1212207 писал(а):
А все-таки, на будущее, этот код можно увидеть? Или вы это не знаете?
Конечно, можно. Даже в текстовом редакторе, но это будет не очень информативно. Лучше открывать в шестнадцатеричном (у некоторых текстовых есть для этого плагин, но есть и самодостаточные программы). Опытные люди могут с помощью одного только такого редактора делать некоторые изменения в программах (на всякий случай добавлю, что в проприетарных это, как правило, запрещает лицензия, а в open-source же исходный код, понятное дело, открыт, и проще менять его).

Вообще, любой файл можно открыть любым редактором ээ… общего назначения. Пользы от этого может быть немного, но можно.

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

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



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

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


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

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