LINUX.ORG.RU

pythontex

 , ,


1

1

Всем привет. Возникла потребность в использовании pythontex в LaTeX. Скачал и установил pythontex в /usr/local/share/texfm/tex/latex. Затем прописал в терминале sudo texhash. Далее запустил компилятор LaTeX с кодом изображенным внизу. Он выдает в ответе два знака вопроса(хотя сам процесс закончился без ошибок). В чем проблема?

\documentclass[12pt]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{pythontex}

\begin{document}
\py{2+2}
	
\end{document} 



Последнее исправление: guitarist15 (всего исправлений: 1)

Если я правильно понимаю, то кроме pdflatex тебе нужно запустить препроцессор pythontex. Изучи инструкцию поподробней.

Evgueni ★★★★★
()
Ответ на: комментарий от guitarist15

Нужно перевести следующее предложение:

Compiling a document that uses PythonTeX involves three steps: run LaTeX, run pythontex.py, and finally run LaTeX again.

То есть сделать нужно следующее:

> pdflatex текст.tex
> pythontex текст.tex
> pdflatex текст.tex

Evgueni ★★★★★
()
Ответ на: комментарий от Evgueni

Если я вас правильно понял, мне нужно создать файлы

pdflatex_mark.tex
pythontex_mark.tex
pdflatex_mark.tex

и компилировать их по очереди. Я так сделал, к сожалению, не помогло.

Компиляция документа, использующего PythonTeX, включает в себя три этапа: запустите LaTeX, запустите pythontex.py и, наконец, запустите LaTeX снова.

У меня нет файла pythontex.py!!!!!

guitarist15
() автор топика
Ответ на: комментарий от guitarist15

У меня pythontex входит в texlive-extra-utils. Это можно проверить вот так:

>apt search pythontex

pdflatex_mark.tex
pythontex_mark.tex
pdflatex_mark.tex

Создать нужно один «текст.tex» и его следует трижды обработать сначала pdflatex, затем pythontex, затем опять pdflatex.

Я так сделал, к сожалению, не помогло.

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

Скорее всего вы не правильно установили обсуждаемый пакет.

Evgueni ★★★★★
()
Последнее исправление: Evgueni (всего исправлений: 1)
Ответ на: комментарий от Evgueni

У меня pythontex входит в texlive-extra-utils. Это можно проверить вот так: apt search pythontex

Он у меня есть (проверено вашим способом).

Создать нужно один «текст.tex» и его следует трижды обработать сначала pdflatex, затем pythontex, затем опять pdflatex.жды обработать сначала pdflatex, затем pythontex, затем опять pdflatex.

Понятно в чем проблема. Я не знаю как запустить pythontex. Как заставить LaTeX работать, как pythontex?

guitarist15
() автор топика
Ответ на: комментарий от guitarist15

Я же выше пояснил как. Перечитайте тред повнимательней. pythontex должен выполняться - проверьте. При его запуске могут быть проблемы, если не установлены кое-какие питоновские утилиты, но это будет видно в логах в виде ошибки.

Evgueni ★★★★★
()
Ответ на: комментарий от Evgueni

Запустил компиляцию mark.tex через терминал. Сначала я сделал:

директория где находится mark.tex $ pdflatex mark.tex

все заработало. Затем

директория где находится mark.tex $ pythontex mark.tex

выдает ошибку(внизу). В чем проблема?

Traceback (most recent call last):
  File "/usr/bin/pythontex", line 50, in <module>
    import pythontex2 as pythontex
  File "/usr/share/texlive/texmf-dist/scripts/pythontex/pythontex2.py", line 6В чем проблемаВ чем проблема1, in <module>
    from pygments.styles import get_all_styles
ImportError: No module named pygments.styles

guitarist15
() автор топика
Ответ на: комментарий от Evgueni

Все работает. Спасибо. И еще один маленький вопрос. Можно запустить pythontex не из терминала, а в сомом LaTeX. Например, LuaLatex можно запустить в LaTeX.

guitarist15
() автор топика
Ответ на: комментарий от guitarist15

Если хочется одной командой запускать, то я бы порекомендовал latexmk. Совсем без настройки не заработает, но если рядом с твоим doc.tex положить latexmkrc с таким содержимым:

$pdf_mode = 1;
add_cus_dep('pytxcode', 'tex', 0, 'pythontex');
sub pythontex { return system("pythontex \"$_[0]\""); }
то собирать можно будет одной командой
latexmk doc.tex
При этом сам pdflatex запустится столько раз, сколько нужно, и pythontex между этими запусками сработает. Не знаю, правда, насколько такая конструкция устойчива, если в тексте или в коде будут ошибки.

TeopeTuK ★★★★★
()
Ответ на: комментарий от TeopeTuK

Я создал файл

 mark.latexmkrc
в директории где находится mark.tex, содержащий
 
$pdf_mode = 1;
add_cus_dep('pytxcode', 'tex', 0, 'pythontex');
sub pythontex { return system("pythontex \"$_[0]\""); }
После этого из терминала я запускаю
директория где находится mark.tex $ latexmk mark.tex
но в ответе получаю знаки вопроса. В чем проблема?

guitarist15
() автор топика
Ответ на: комментарий от TeopeTuK

Не помогло. После компиляции в терминале получил:

Latexmk: This is Latexmk, John Collins, 1 January 2015, version: 4.41.
Latexmk: applying rule 'latex'...
Rule 'latex': Rules & subrules not known to be previously run:
   latex
Rule 'latex': The following rules & subrules became out-of-date:
      'latex'
------------
Run number 1 of rule 'latex'
------------
------------
Running 'latex  -recorder  "mark.tex"'
------------
This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015/Debian) (preloaded format=latex)
 restricted \write18 enabled.
entering extended mode
(./mark.tex
LaTeX2e <2016/02/01>
Babel <3.9q> and hyphenation patterns for 81 language(s) loaded.
(/usr/share/texlive/texmf-dist/tex/latex/base/article.cls
Document Class: article 2014/09/29 v1.4h Standard LaTeX document class
(/usr/share/texlive/texmf-dist/tex/latex/base/size12.clo))

...........................................................

(/usr/share/texlive/texmf-dist/tex/latex/graphics/dvips.def)))

Package PythonTeX Warning: Non-existent printed content on input line 6.


Package PythonTeX Warning: Non-existent printed content on input line 7.

(/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty
...............................................................
(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/color.cfg))
No file pythontex-files-mark/mark.pytxmcr.
Run PythonTeX to create it.
*geometry* driver: auto-detecting
*geometry* detected driver: dvips

Package PythonTeX Warning: Missing autoprint content on input line 26.

[1] (./mark.aux) )
Output written on mark.dvi (1 page, 416 bytes).
Transcript written on mark.log.
Latexmk: Missing input file: 'pythontex-files-mark/mark.pytxmcr' from line
  'No file pythontex-files-mark/mark.pytxmcr.'
Latexmk: Log file says output to 'mark.dvi'
Latexmk: applying rule 'latex'...
Rule 'latex': File changes, etc:
   Changed files, or newly in use since previous run(s):
      'mark.aux'
------------
Run number 2 of rule 'latex'
------------
------------
Running 'latex  -recorder  "mark.tex"'
------------
This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015/Debian) (preloaded format=latex)
 restricted \write18 enabled.
entering extended mode
(./mark.tex
LaTeX2e <2016/02/01>
Babel <3.9q> and hyphenation patterns for 81 language(s) loaded.
(/usr/share/texlive/texmf-dist/tex/latex/base/article.cls
................................................................
(/usr/share/texlive/texmf-dist/tex/latex/graphics/dvips.def)))

Package PythonTeX Warning: Non-existent printed content on input line 6.


Package PythonTeX Warning: Non-existent printed content on input line 7.

(/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty
...............................................................
(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/color.cfg))
No file pythontex-files-mark/mark.pytxmcr.
Run PythonTeX to create it.
*geometry* driver: auto-detecting
*geometry* detected driver: dvips

Package PythonTeX Warning: Missing autoprint content on input line 26.

[1] (./mark.aux) )
Output written on mark.dvi (1 page, 416 bytes).
Transcript written on mark.log.
Latexmk: Missing input file: 'pythontex-files-mark/mark.pytxmcr' from line
  'No file pythontex-files-mark/mark.pytxmcr.'
Latexmk: Log file says output to 'mark.dvi'
Latexmk: All targets (mark.dvi) are up-to-date

guitarist15
() автор топика
Ответ на: комментарий от guitarist15

То, что запускается latex, а не pdflatex, означает, что настройки не прочитались. Я опечатался в предыдущем сообщении, файл должен называться latexmkrc.

TeopeTuK ★★★★★
()
Ответ на: комментарий от anonymous

Можно, но это а) к авторам, б) я не уверен, что это безопасно.

Evgueni ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.