Kontribusi Islam Dalam Pengembangan Peradaban Dunia - KELOMPOK 1.pptx
Galeri PythonTeX
1. Galeri PythonTEX
Geoffrey M.Poore
dialih bahasa Indonesia oleh
Hirwanto
23 Nopember 2014
Ringkasan
PythonTEX memberikan kemudahan dalam mengakses kode Python dari dokumen LATEX
dan secara otomatis menghasilkan hasil di dokumenmu. Dokumen ini merupakan contoh apa
yang memungkinkan denganPythonTEX.
1 Interaksi umum pada Python
Kamu bisa melakukan pengetika kode Python kemudian membawa kembali hasilnya. Ini bisa men-jadi
sederhana seperti contoh, print(’Python mengatakan Hai!’) bisa dikembalikan dengan cara
Python mengatakan Hai!
Atau bisa mengakses kontent dengan mode verbatim(ini tentu harus memuat karakter khusus).
Python mengatakan Hai!
Interaksi Python juga bisa lebih kompleks.print(str(2**2**2) + r’endinput’) hasilnya 16.
Didalam kasus ini, hasil cetak memuat kode LATEX, yang secara langsung diinterpretasi oleh LATEX
untuk meyakinkan bahwa tidak ada spasi kosong setelah 16. Hasil keluaran disimpan ke sebuah
file dan membawa kembali file melalui input(masukan), dan endinput(akhir input) merupakan
perintah untuk menghentikan masukan, sebelum LATEX mendapatkan akhir baris dan menyisipkan
jarak karakternya setelah angka 16.
Pencetakan bekerja pada hal ini, namun untuk demonstrasi contoh terakhir ini, kamu harus hati-hati
tentang jarak jika kamu mempunyai teks setelah konten dicetak. Didalam kasus itu, cara terbaik
untuk menyelesaikannya adalah melakukan pengumpulan teks dengan PythonTEX kemudian teks
tersebut disimpan kedalam variabel. Maka bisa membaca teks selanjutnya, menggunakan perintah
py. Perintahpy membawanya kedalam representasi argumen string. Pertama, kita membuat
suatu teks seperti ini :
mytext = ’$1 + 1 = {0}$’.format(1 + 1)
Sejak PythonTEX menjalankan kode Python dan berpotensi ke kode yang lainnya pada komputermu, dokumen
yang digunakan menjadi lebih besar berpotensial pada risiko keamanaan daripada dokumen standar LATEX. Kamu
seharusnya hanya melakukan kompilasi terhadap dokumen yang terpercaya.
1
2. Kemudian kita membawanya kedalam 1+1 = 2. Perintah py bisa membawanya kembali ke dalam
konten verbatim, selama kamu menggunakan mesin PDFTEX atau XeTEX. (Tidak beruntungnya,
mode verbatim tidak bekerja pada LuaTEX, dikarenakan ada bug.)y)
Kita tidak harus menampilkan kode yang ingin kita kompilasi, namun bisa disembunyikan seperti
ini dan kemudian kita dapat mengaksesnya menggunakan perintah Ini pesan dari Python, Hati-
Hati!.
2 Pygment, Penampil kode kualitas tingkat tinggi
PythonTEX mendukung tampilan kode kualitas tingkat tinggi menggunakan Pygments. Sebarang
bahasa telah didukung oleh Pygments. Dukungan terhadap Unicode juga tersedia. Diberikan
contoh kode ini didasarkan pada salinan sesi Python 3. Ini menjadi memungkinkan untuk dukungan
Unicode, menggunakan strings tak tentu bukan ide yang baik namun cukup bagus untukmu dalam
menampilkan kode Unicode. Berikut contohnya :
âæéöø = 123
ßçñðŠ = 456
âæéöø + ßçñðŠ
579
Ada juga perintah untuk penggunaan kode inline dengan perintah pygment.
3 Lingkungan Konsole Python
PythonTEX termasuk lingkungan yang dapat melakukan emulasi sebuah sesi interaktif Python.
Perintah dimasukkan pada lingkungannya, setiap baru diperlakukan sebagai masukan ke dalam sesi
interaktif kemudian hasilnya adalah pengaturan teks seperti ini :
x = 123
y = 345
z = x + y
z
468
def f(expr):
... return(expr**4)
...
f(x)
228886641
print(’Python says hi from the console!’)
Python says hi from the console!
Ini memungkinkan untuk nilai variabel konsol sebelumnya pada konteks kode inline, menggu-nakan
perintah pycon. Untuk contoh, nilai z adalah 468.
yhttp://tracker.luatex.org/view.php?id=733
2
3. 4 Interaksi Dasar Sympy
PythonTEX dapat melakukan perintah manipulasi aljabar melalui Sympy dan kemudian mengha-silkan
dari perhitungan tersebut. Kita membuat tiga variabel, dan mendefinisikan z dalam dua
kondisi yang lainnya.
var(’x, y, z’)
z = x + y
Sekarang kita mengakses bahwa nila z akan sama dengan :
z = x + y
Banyak hal menjadi memungkinkan, termasuk beberapa perintah perhitungan kalkulus berikut
:
f = x**3 + cos(x)**5
g = Integral(f, x)
Z
x3 + cos5 (x) dx =
x4
4
+
1
5
sin5 (x)
2
3
sin3 (x) + sin (x)
Itu mudah menggunakan sebarang simbol pada definisi persamaan.
phi = Symbol(r’phi’)
h = Integral(exp(-phi**2), (phi, 0, oo))
Z 1
0
e2
d =
p
2
5 Plot dengan menggunakan matplotlib
Kita bisa membuat plot dengan matplotlib, dan mencocokkan teks pada plot dengan teks pada
dokumen. Tidak lebih banyak pencarian untuk kode dalam membuat sebuah gambar.
Ini memungkinkan melalui dimensi halaman dan informasi yang sama dari sisi LATEX ke sis
Python. Jika kamu menginginkan menampilkan gambar, untuk contoh perbandingan khususnya le-bar
halaman, kamu bisa menggunakan perintah nilai dengan textwidth ke sisi Python dan peng-gunaannya
dalam membuat gambarmu. Lihat setpythontexcontext didalam dokumen utama
lebih jelasnya.
Kamu bisa menggunakan matplotlib ketika membuat plot dengan perintah terlebih dahulu mem-buat
plot dengan matplotlib secara mandiri kemudian menyisipkan gambar plot dengan perintah
penyisipan gambar.
rc(’text’, usetex=True)
rc(’font’, family=’serif’)
rc(’font’, size=10.0)
rc(’legend’, fontsize=10.0)
3
4. rc(’font’, weight=’normal’)
x = linspace(0, 10)
figure(figsize=(4, 2.5))
plot(x, sin(x), label=’$sin(x)$’)
xlabel(r’$xmathrm{-axis}$’)
ylabel(r’$ymathrm{-axis}$’)
legend(loc=’lower right’)
savefig(’myplot.pdf’, bbox_inches=’tight’)
6 Interaksi dasar Pylab
from scipy.integrate import quad
myintegral = quad(lambda x: e**-x**2, 0, inf)[0]
Z 1
0
ex2
dx = 0:886226925452758
Hasil diatas tidak dapat ditunjukkan dikarena module Scipy belum terinstall pada komputer.
7 Derivatif dan Tabel Integral
PythonTEX juga dapat melakukan otomatis, seperti tabel integral dan derivatif dengan cepat,seperti
dibawah ini :
Tabel Integral dan Derivatif
1 from re import sub
2
3 var(’x’)
4
5 # Membuat daftar fungsi termasuk kedalam tabel
6 funcs = [’sin(x)’, ’cos(x)’, ’tan(x)’,
7 ’sin(x)**2’, ’cos(x)**2’, ’tan(x)**2’,
8 ’asin(x)’, ’acos(x)’, ’atan(x)’,
9 ’sinh(x)’, ’cosh(x)’, ’tanh(x)’]
10
11 print(r’begin{align*}’)
12
13 for func in funcs:
14 # Ambil beberapa jarak vertikal ketika fungsi arc and hyperbolik
15 if func == ’asin(x)’ or func == ’sinh(x)’:
16 print(r’’)
17 myderiv = ’Derivative(’ + func + ’, x)’
18 myint = ’Integral(’ + func + ’, x)’
19 print(latex(eval(myderiv)) + ’=’ +
20 latex(eval(myderiv + ’.doit()’)) + r’quad quad’)
4
5. 21 print(latex(eval(myint)) + ’=’ +
22 latex(eval(myint+’.doit()’)) + r’’)
23 print(r’end{align*}’)
d
dx
sin (x) = cos (x)
Z
sin (x) dx = cos (x)
d
dx
cos (x) = sin (x)
Z
cos (x) dx = sin (x)
d
dx
tan (x) = tan2 (x) + 1
Z
tan (x) dx =
1
2
log
sin2 (x) 1
d
dx
sin2 (x) = 2 sin (x) cos (x)
Z
sin2 (x) dx =
x
2
1
2
sin (x) cos (x)
d
dx
cos2 (x) = 2 sin (x) cos (x)
Z
cos2 (x) dx =
x
2
+
1
2
sin (x) cos (x)
d
dx
tan2 (x) =
2 tan2 (x) + 2
tan (x)
Z
tan2 (x) dx = x +
sin (x)
cos (x)
d
dx
asin (x) =
1
p
x2 + 1
Z
asin (x) dx = x asin (x) +
p
x2 + 1
d
dx
acos (x) =
1
p
x2 + 1
Z
acos (x) dx = x acos (x)
p
x2 + 1
d
dx
atan (x) =
1
x2 + 1
Z
atan (x) dx = x atan (x)
1
2
log
x2 + 1
d
dx
sinh (x) = cosh (x)
Z
sinh (x) dx = cosh (x)
d
dx
cosh (x) = sinh (x)
Z
cosh (x) dx = sinh (x)
d
dx
tanh (x) = tanh2 (x) + 1
Z
tanh (x) dx = x log (tanh (x) + 1)
8 Solusi tahap demi tahap
Menggunakan SymPy memungkinkan melakukan perhitungan dengan hasil tahap demi tahap. Da-lam
kasus ini, kita juga menggunakan paket mdframed untuk penempatan warna latar belakang
dibelakang kode.
Tahap demi tahap perhitungan Integral
5
6. 1 x, y, z = symbols(’x,y,z’)
2 f = Symbol(’f(x,y,z)’)
3
4 # Define limits of integration
5 x_llim = 0
6 x_ulim = 2
7 y_llim = 0
8 y_ulim = 3
9 z_llim = 0
10 z_ulim = 4
11
12 print(r’begin{align*}’)
13
14 # Notice how I define f as a symbol, then later as an actual function
15 left = Integral(f, (x, x_llim, x_ulim), (y, y_llim, y_ulim), (z, z_llim, z_ulim))
16 f = x*y + y*sin(z) + cos(x+y)
17 right = Integral(f, (x, x_llim, x_ulim), (y, y_llim, y_ulim), (z, z_llim, z_ulim))
18 print(latex(left) + ’=’ + latex(right) + r’’)
19
20 # For each step, I move limits from an outer integral to an inner, evaluated
21 # integral until the outer integral is no longer needed
22 right = Integral(Integral(f, (z, z_llim, z_ulim)).doit(), (x, x_llim, x_ulim),
23 (y, y_llim, y_ulim))
24 print(’=’ + latex(right) + r’’)
25
26 right = Integral(Integral(f, (z, z_llim, z_ulim), (y, y_llim, y_ulim)).doit(),
27 (x, x_llim, x_ulim))
28 print(’=’ + latex(right) + r’’)
29
30 right = Integral(f, (z, z_llim, z_ulim), (y, y_llim, y_ulim),
31 (x, x_llim, x_ulim)).doit()
32 print(’=’ + latex(right) + r’’)
33
34 print(’=’ + latex(N(right)) + r’’)
35
36 print(r’end{align*}’)
6
7. Z 4
0
Z 3
0
Z 2
0
f(x; y; z) dx dy dz =
Z 4
0
Z 3
0
Z 2
0
xy + y sin (z) + cos (x + y) dx dy dz
=
Z 3
0
Z 2
0
4xy y cos (4) + y + 4 cos (x + y) dx dy
=
Z 2
0
18x 4 sin (x) + 4 sin (x + 3)
9
2
cos (4) +
9
2
dx
= 4 cos (3) + 4 cos (2) 4 cos (5) 9 cos (4) + 41
= 40:1235865133293
9 Memasukkan stderr
PythonTEX mengikuti kode untuk melakukan pengaturan teks selanjutnya menggunakan perintah
stderr untuk menghasilkannya. Ini meminta paket makestderr.
1 x = 123
2 y = 345
3 z = x + y +
Kode ini menyebabkan kesalahan sintaks:
File py_errorsession_9.py, line 3
z = x + y +
^
SyntaxError: invalid syntax
Pilihan paket stderrfilename memberikan nama file dalam memunculkan pesan kesalahan yang
telah diatur.
7