در ابتدا کد کمینۀ زیر را با دستورات گفتهشده در نظر بگیرین:
\documentclass[12pt]{article}
\usepackage{pythontex}
\begin{document}
\[
45 \times 13 =\py{45*13}
\]
\end{document}
دستورات:
pdflatex test
pythontex test
pdflatex test
خروجی:
اگر جواب نداد ادامۀ مطلب رو بخونین (چند تا کار ساده قراره انجام بدیم و در انتها هم با بستۀ xepersian
تست خواهد شد). قابلاجرا در ویندوز ۱۰، لینوکس و ویندوز ۷.
ویندوز ۱۰:
مواردی که بایستی نصب باشند:
- توزیع تک (ترجیحاً تکلایو [تستشده با نسخۀ
2019
])
- پایتون (نسخۀ
2.7
توصیه شده ولی با 3.2
و به بالا هم جواب میدهد [تستشده با 3.9.3
])
مرحلۀ اول: اضافهکردن مسیر اسکریپت pythontex
به Path
قسمت Environment Variable
ویندوز:
کلیک راست روی This PC
از منوی استارت؛ کلیک بر Proprties
؛ کلیک بر Advanced system settings
و اضافهکردن مسیر (با توجه به نسخۀ نصبی تکلایو)
C:\texlive\2019\texmf-dist\scripts\pythontex
به PATH
، مطابق شکل (در مرحلهٔ ۳، PATH
را انتخاب و Edit
بزنین)
صفحاتِ بازشده را با زدنِ OK
ببندین.
(برای نمایش عکس با کیفیت بالا، در یک تب جدید باز کنین)
مرحلۀ دوم: نصب pygments
(تستشده با نسخۀ 1.4
و به بالا. ترجیحاً آخرین نسخه استفاده شود [تستشده با 2.8.1
]):
صفحۀ command prompt
یا همان cmd
را باز کنین و دستور زیر را وارد کنین:
py -m pip install pygments
اگر جواب نداد، پایینی را امتحان کنین.
python.exe -m pip install pygments
مرحلۀ سوم: تغییر تنظیمات مربوط به
App execution aliases
با جستوجوی دو کلمۀ manage app
در منوی استارت یا سرچ ویندوز و بازکردن صفحۀ مورد نظر، این دو گزینه را غیرفعال کنین:
با انجام سه مرحلهٔ بالا، میتونین کد کمینۀ ابتدای پاسخ را با دستورات گفتهشده اجرا کنین.
نکته: اگه در کد خود، قصد استفاده از کاراکترهای non-ASCII
مثل Unicode
را دارید، دقت کنین:
در اجرا با pdflatex
:
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
در اجرا با lualatex
:
\usepackage{fontspec}
در اجرا با xelatex
:
\usepackage{fontspec}
\defaultfontfeatures{Ligatures=TeX}
تنظیمات ذکرشده یا مشابه آنها اعمال گردد.
برای استفاده از امکانات بیشتر این بسته، توصیه میکنم این فایل هفتصفحهای و این لینک* را حتماً مطالعه و مشاهده کنین.
* با تشکر از آقای احمدی در معرفی این لینک بسیار مفید.
مثال دیگر:
\documentclass[12pt]{article}
\usepackage{pythontex}
\begin{document}
\begin{pyblock}
import math
math.sqrt(25)
\end{pyblock}
\begin{pyconsole}
import math
math.sqrt(25)
\end{pyconsole}
\end{document}
خروجی:
تذکر: اگر اجرای دستور pythontex.py
موفقیتآمیز باشد، پیغام زیر چاپ خواهد شد:
This is PythonTeX 0.17
--------------------------------------------------
PythonTeX: <tex_file_name> - 0 error(s), 0 warning(s)
لینوکس
برای استفاده در سیستم عامل لینوکس، این لینک را مجدداً ببینین.
تستشده با:
TeX Live 2021
Ubuntu 20.04 LTS
Python 3.8.5
pygments 2.3.1
نحوۀ اجرا با بستۀ xepersian
:
اگر بستۀ xepersian
را بهتنهایی فراخوانی کنیم، با خطای
! Package bidi Error: Oops! you have loaded package color after bidi package. Please load package color before bidi package, and then try to run xelatex on your document again.
مواجه خواهیم شد. برای رفع خطا، بستهٔ xcolor
یا color
را هم فرامیخوانیم.
مثال زیر و انتهای پاسخ را ببینین:
\documentclass[12pt]{article}
\usepackage{xcolor}
\usepackage{pythontex}
\usepackage{xepersian}
\settextfont{Amiri}
\setmathdigitfont{Amiri}
\begin{document}
\[
45 \times 13 =\py{45*13}
\]
\begin{pycode}
def fact(n):
if n == 0:
return 1
return n * fact(n-1)
a=fact(5)
\end{pycode}
فاکتوریل عدد $ 5 $ میشود
$ \py{a} $
\end{document}
با تشکر از آقای مجتبیٰ احمدی بابت راهنماییها و نکات راهگشایشان در بهبود و تکمیل این پاسخ:
ویندوز ۷:
- انجام مراحل اول و دوم، مشابه ویندوز ۱۰
- تستشده با پایتون
3.7.2
علت خطا در فراخوانی بستهٔ xepersian
:
کد زیر در بستهٔ pythontex
:
\AtEndPreamble{%
\@ifpackageloaded{color}{}{%
\@ifpackageloaded{xcolor}{}{\RequirePackage{xcolor}}}%
باعث میشود که بستهٔ color
بعد از زیپرشین فراخوانده شود که برای رفع خطا میتوان بستهٔ xcolor
یا color
را فراخوانی کرد و یا از
\AfterPreamble{}
که بستهٔ etoolbox
در اختیار میگذارد، برای بستهٔ زیپرشین و دستورات متعلق به آن استفاده کرد. برای مثال:
\AfterPreamble{%
\usepackage{xepersian}
\settextfont{Amiri}
\setmathdigitfont{Amiri}%
}
لازم به ذکر است که بستهٔ etoolbox
در بستهٔ pythontex
فراخوانی شده است.