2014 dxdy logo

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

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




На страницу Пред.  1, 2, 3, 4  След.
 
 Re: Latex и подстановочные знаки
Сообщение18.04.2017, 02:39 
Sinoid в сообщении #1209306 писал(а):
для обработки единственного файла-неисключения
Так передавайте его параметром. В Проводнике это будет просто перетаскивание нужного файла на файл вашего скрипта. В скрипте используйте "%1" там, где он нужен (кавычки — чтобы пробелы в имени не навредили нигде).

 
 
 
 Re: Latex и подстановочные знаки
Сообщение21.04.2017, 20:12 
Прошу прощения за мое исчезновение из темы, просто вот-вот, вот-вот, а затянулось. Мне удалось написать батник для автоматической обработки документов .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 
Sinoid в сообщении #1211396 писал(а):
Мне это было нежелательно, я хотел, повторюсь, добиться полной автоматизации, чтоб нажал "Открыть" и все произошло само собой.
Тогда я чего-то не понимаю. Или скрипт «переносимый» и должен работать со всем подряд, и это всё будет уместно кидать ему параметром. Или он связан с каким-то неизменным набором файлов, всегда находящихся вместе, и тогда ему совершенно нормально будет работать с текущим каталогом, потому что вызывать этот скрипт из другого будет довольно странно. Впрочем, это моё мнение.

 
 
 
 Re: Latex и подстановочные знаки
Сообщение21.04.2017, 23:33 
Аватара пользователя
Sinoid, может быть, вам стоит наконец завести пингвина освоить PowerShell? Там вроде как более широкие возможности.

 
 
 
 Re: Latex и подстановочные знаки
Сообщение22.04.2017, 15:42 
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 
Sinoid в сообщении #1211625 писал(а):
Вы, вообще, работали с файлами .tex, в которых есть код asymptote ?
Честно отвечу: нет. И с самой Asymptote тоже нет. Я держал в уме обычные build script’ы, хотя они тоже, конечно, могут быть всякими.

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

 
 
 
 Re: Latex и подстановочные знаки
Сообщение22.04.2017, 21:33 
arseniiv в сообщении #1211676 писал(а):
а просто любое расположение.

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

 
 
 
 Re: Latex и подстановочные знаки
Сообщение22.04.2017, 23:03 
С каким? Или из какой программы? Второе не знаю, возможно ли, а первое — параметром, параметром. Никак иначе. :-)

 
 
 
 Re: Latex и подстановочные знаки
Сообщение23.04.2017, 12:29 
arseniiv в сообщении #1211743 писал(а):
Или из какой программы?

К примеру, texworks.

(Оффтоп)

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

 
 
 
 Re: Latex и подстановочные знаки
Сообщение23.04.2017, 16:56 
Не, я имел в виду, что имеется в виду под вопросом «из какого файла к нему обращаются?» — какая программа вызывает его выполнение или что-то другое. Если вопрос этот, то, возможно, в cmd есть какая-то команда, чтобы узнать, кто запустил текущий процесс, обрабатывающий текущий скрипт, но не верится что-то.

 
 
 
 Re: Latex и подстановочные знаки
Сообщение23.04.2017, 20:29 
arseniiv в сообщении #1211960 писал(а):
Не, я имел в виду, что имеется в виду под вопросом «из какого файла к нему обращаются?» — какая программа вызывает его выполнение или что-то другое

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

 
 
 
 Re: Latex и подстановочные знаки
Сообщение23.04.2017, 21:23 
Sinoid в сообщении #1212052 писал(а):
Не то, что какая программа вызывает его выполнение, а какой файл, открытый в texwors, вызывает его выполнение.
Ну, то есть, для какого файла эта команда вызвана? Тогда его надо передавать параметром, ну а в скрипте обрабатывать этот параметр. Как иначе-то. :-)

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

 
 
 
 Re: Latex и подстановочные знаки
Сообщение24.04.2017, 11:02 
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 
Аватара пользователя
Sinoid в сообщении #1212207 писал(а):
Получается, что в коде pdflatex.exe должен быть участок для определения файла, из которого этот самый pdflatex.exe вызывается.
Нет, это texworks или texmaker знают, с каким файлом они работают, и при запуске pdflatex передают имя этого файла в параметрах командной строки. В texmaker есть настройки вызова команд, которые выглядят примерно так:
Изображение
Вот вместо % подставляется имя файла без расширения.

 
 
 
 Re: Latex и подстановочные знаки
Сообщение24.04.2017, 13:20 
Sinoid в сообщении #1212207 писал(а):
Так это получается, например, код в батнике комп все равно при исполнении переводит на дизассемблер?
Не, эти просто интерпретируются — cmd читает файл в общем случае построчно, каждую строку отдельно разбирает и делает что-то соответствующее.

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

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

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

 
 
 [ Сообщений: 47 ]  На страницу Пред.  1, 2, 3, 4  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group