5. Qo'shimcha funktsiyalar
Ba'zan psevdo-chizilgan rasmga bir nechta muntazam ravishda joylashtirilgan ob'ektlarni qo'llash kerak bo'ladi. Bunda \putni ko'p marta yozish o'rniga \multiput buyrug'idan foydalanish qulay. U bir xil masofada bir nechta bir xil ob'ektlarni psevdo-chizmaga joylashtiradi. Ushbu buyruqning sintaksisi:
\multiput(x,y)(x,y){n}{объект}
Bu erda x va y - birinchi joylashtiriladigan ob'ektning koordinatalari (odatdagi \put buyrug'idagi kabi), x va y - har bir keyingi ob'ekt oldingi gorizontal va vertikalga nisbatan siljish masofalari, n - son joylashtiriladigan ob'ektlar va nihoyat, ob'ekt \put buyrug'i kabi biz rasmga joylashtirgan narsalarning tavsifidir. Misol:
\begin{picture}(100,80)
\multiput(10,70)(8,-6){8}%
{\circle*{3}}
\end{picture}
Chiziq oxirida hosil bo'lgan kiruvchi bo'shliqni olib tashlash uchun foiz belgisidan foydalanishga e'tibor bering. Mana yana bir misol; bu yerda \multiput buyrug'i yordamida panjara chiziladi:
\begin{picture}(100,50)
\multiput(0,0)(10,0){10}%
{\line(1,5){10}}
\multiput(0,0)(2,10){6}%
{\line(1,0){90}}
\end{picture}
Oldingi misolda bo'lgani kabi \multiput buyrug'idan foydalanish keraksiz mashina vaqtiga olib keladi. Masalan, har bir egilgan segment kichik belgilardan yig'ilgan, bu segmentni faqat bir marta to'plash va keyin uni shunchaki nusxalash bo'ladi. Buni "blok o'zgaruvchilari" yordamida amalga oshirish mumkin.
Ba'zan, psevdo-rasm ancha murakkab bo'lsa, quyidagi nayrangdan foydalanish qulay: \put buyruqlaridan biriga butun rasm muhitini argument sifatida berish (pastki chap burchak boshlang'ich nuqta bo'lib xizmat qiladi). Bunday holda, siz tashqi chizmaga emas, balki pastki chizmaning o'ziga nisbatan "pastki chizma" dagi ob'ektlarning koordinatalarini hisoblashingiz mumkin,bu ko'pincha osonroq; bundan tashqari, agar siz ushbu "subfigure" ni butunlay ko'chirishingiz kerak bo'lsa, buning uchun bitta \put buyrug'idagi argumentlarni o'zgartirish kifoya qiladi. Bu erda pastki raqam bilan chizilgan rasmga misol (biz bu koordinata o'qlari chizilgan doska deb taxmin qilamiz):
Bu raqam quyidagi manba matniga to'g'ri keldi:
\begin{picture}(120,80)
% Края доски:
\put(0,0){\line(1,0){120}} \put(0,80){\line(1,0){120}}
\put(0,0){\line(0,1){80}} \put(120,0){\line(0,1){80}}
% Оси координат:
\put(40,25){\begin{picture}(40,40)%
\put(20,0){\vector(0,1){40}}
\put(0,20){\vector(1,0){40}}
\put(40,22){$x$} \put(22,40){$y$}
\end{picture}}
\end{picture}
Aytgancha, ichki rasmning o'lchamlari butunlay o'zboshimchalik bilan o'rnatilishi mumkin edi, masalan, (200,200) yoki hatto (0,0) - \put buyrug'i ob'ektlarni o'ylamasdan, ularning mos yozuvlar nuqtalari ko'rsatilgan koordinatalarga ega bo'ladigan tarzda joylashtiradi, va shu bilan birga, ular haqiqatan ham qancha joyni egallashi va matn yoki boshqa ob'ektlar ustiga qo'yilishi qiziq emas.
Ko'pincha siz psevdo-rasmning bir qismini emas, balki umuman psevdo-rasmning og'irligini o'zgartirishingiz kerak (masalan, agar siz matnga nisbatan illyustratsiyaning optimal joylashishini qidirsangiz).Buning uchun rasm muhitining yana bir xususiyatidan foydalanish qulay: siz sozlashingiz mumkin shunday qilib koordinatalarning kelib chiqishi pastki chap burchakda emas, balki boshqa har qanday nuqtada bo'lsin.Buning uchun egin{rasm} dan keyin qavs ichida bir emas, ikkita juft sonni ko'rsatish kerak. Bunday holda, raqamlarning birinchi juftligi, avvalgidek, LATEX tomonidan psevdofiguraga ajratilgan bo'shliqning kengligi va balandligini ko'rsatadi, ikkinchi juftlik esa ushbu psevdo-figuraning pastki chap burchagining koordinatalari qanday ekanligini ko'rsatadi. Raqam ixtiyoriy ravishda, ya'ni qavs ichida raqamlarning ikkinchi juftligi bo'lmasa, ular faqat (0,0) bo'ladi). Asosiysi, nakami bilan aralashmaslik: agar siz aytgan bo'lsangiz
\begin{picture}(a,b)(x,y)
demak, bu soxta naqshning pastki chap burchagida (x, y) koordinatalarga ega ekanligini bildiradi, shuning uchun x = y = 0 bo'lgan holatga qaraganda, butun psevdo naqsh gorizontal ravishda -x va vertikal ravishda -y ga harakat qiladi! Agar siz hech narsani tushunmasangiz, ikkinchi psevdo-naqsh birinchisidan 20 birlik o'ngga va 10 birlik yuqoriga siljigan quyidagi misolni ko'rib chiqing:
\begin{picture}(150,80)
\put(0,0){\line(1,0){140}}
\put(0,70){\line(1,0){140}}
\put(0,0){\line(0,1){70}}
\put(140,0){\line(0,1){70}}
\put(25,30){\Huge Сдвиг}
\end{picture}\\[25pt]
\begin{picture}(150,80)(-20,--10
\put(0,0){\line(1,0){140}}
\put(0,70){\line(1,0){140}}
\put(0,0){\line(0,1){70}}
\put(140,0){\line(0,1){70}}
\put(25,30){\Huge Сдвиг}
\end{picture}
Do'stlaringiz bilan baham: |