Circuit_macros Version 6.23: Drawing electric circuits and other line diagrams.

Circuit_macros Version 6.23: Drawing electric circuits and other line diagrams.

และแล้วอาจารย์ก็เริ่มสนับสนุนการใส่สี ปัจจุบันการใส่สีให้รูปภาพในเอกสารวิชาการ
ถือเป็นเรื่องปกติแล้วครับ เพราะการพิมพ์สีนั้นถึงแม้จะเป็นเครื่องอิงค์เจ๊ตหมึกก็ไม่
เลอะเหมือนแต่ก่อน เครื่องเลเซอร์สีก็ราคาถูก การส่งหนังสือเป็นไฟล์ pdf ก็เป็น
เรื่องปกติ วารสารวิชาการก็ยอมรับภาพสี

ก็ไม่ใช่เรื่องแปลกที่โปรแกรมวาดรูปจะต้องสนับสนุนสี แฮะ ๆ มาแบบง่าย ๆ ซะ
ด้วย

Advertisements

Norm cone

normcone

กิเลสผมนั้นคือเห็นใครทำอะไรได้ ผมก็อยากทำได้บ้าง อย่างรูปข้างบนนั้นเป็นฝีมือ
ของ Prof. Stephen Boyd วาดลงบนหนังสือของท่าน ด้วยความมั่นใจพอสมควรว่า
ท่านเหล่านี้วาดด้วยคอมพิวเตอร์จะด้วยวิธีการใด ๆ ก็แล้วแต่ แต่ผมว่าพวกท่านนั้น
สามารถวาดด้วย MATLAB ได้ ผมเลยใช้เวลาตลอดบ่ายนั่งทำบ้าง ซึ่งถ้าวาดด้วย
Mesh มันจะเป็นอีกแบบไม่ใช่แบบที่ต้องการ (จริง ๆ ผมค่อนข้างมั่นใจว่าเป็นการ
วาดรูปด้วย pstricks มากกว่า เพราะวงกลมดูจะเป็นวงกลมจริง ๆ มากกว่าการลาก
ต่อจุดแบบ MATLAB ถึงอย่างไรก็ตามก็เข้าใจว่าอัลกอริธึมน่าจะเป็นรูปแบบเดียวกัน
ไว้วันหลังจะวาดด้วย pstricks ให้ดูครับ)

สำหรับ MATLAB หลักการก็คือวาดรูปวงกลมไว้ที่ t = 1 ซะก่อน จากนั้น
ก็ต่อจุดจากตำแหน่ง (0,0,0) ไปยังวงกลม (ด้วยความที่ไม่คุ้นกับฟังก์ชัน plot3 ก็
เลยเสียเวลาในการคิดมาก ๆ )

ฟังก์ชันหลักก็คือ plot3(x,y,z) ซึ่งมันจะวาดรูปตามลำดับสมาชิกของ x,y,z เช่น

plot3([0,1],[0,2],[0,4])

ก็จะเป็นการเชื่อมต่อจุด (0,0,0) ไปยังจุด (1,2,4) ถ้าจะเชื่อมต่อสามจุดก็เพิ่มคู่ลำดับ
ไปก็เท่านั้นเอง จากความรู้นี้ก็สามารถวาดรูปข้างต้นได้

t = 0:2*pi/200:2*pi;
y = sin(t);
x = cos(t);
hold off
for i=1:4:size(x,2)
plot3(sin(t),cos(t),ones(1,size(t,2)));
plot3([0,x(i)],[0,y(i)],[0,1]);
hold on
end
xlabel(‘$$x_1$$’,’Interpreter’,’Latex’,’FontSize’,16);
ylabel(‘$$x_2$$’,’Interpreter’,’Latex’,’FontSize’,16);
zlabel(‘$$t$$’,’Interpreter’,’Latex’,’FontSize’,16);
set(gcf,’PaperPositionMode’,’auto’);
print -depsc conenorm.eps

คือวาดวงกลมก่อน แล้วก็เชื่อมจากจุด (0,0,0) ไปยังจุดต่าง ๆ ที่อยู่บนวงกลม เป็น
อันเสร็จเรื่อง

*รูปที่โพส แปลงจาก eps เป็น png โดยใช้ Ghostscript+GhostView และใช้
IrfanView ในการ crop รูป

TeX capacity exceeded, sorry

เคยคอมไพล์ \LaTeX แล้ว เจอแบบนี้ไหมครับ

! TeX capacity exceeded, sorry [main memory size=1500000].

bla bla bla

If you really absolutely need more capacity,
you can ask a wizard to enlarge me.

ประโยคสุดท้ายน่ารักไหมครับ มีอีเมลก็น่าจะรู้จักประโยคพวกนี้ดี เข้าเรื่อง ผมเจอ
กรณีนี้เนื่องจากไฟล์สร้างรูปภาพใหญ่เกิน นั่งหาวิธีแก้อยู่นานเหมือนกัน

สำหรับ MiKTeX 2.7 ให้สั่งคำสั่งตามด้วยตัวเลือกเพิ่มหน่วยความจำ เช่น

pdflatex -extra-mem-top=7500000 main.tex

หรือ

latex -extra-mem-top=7500000 main.tex

ตัวเลข 7500000 คือหน่วยความจำที่ยอมให้เพิ่ม สำหรับเวอร์ชันที่ต่ำกว่า 2.7 ก็ต้อง
ไปดูตัวเลือกของ command line เอา มีอยู่แล้วใน release note ของ 2.7

Using Imported Graphics in LaTeX: 1

ปัญหาหนักอกของผู้ใช้ LaTeX ตอนเริ่มต้นนั้น เรื่องสำคัญเรื่องหนึ่งคือการใส่รูปลงไปใน
เอกสารซึ่งไม่ใช่เรื่องง่ายนักสำหรับผู้ที่ไม่คุ้นเคยยิ่งต้องการให้รูปภาพอยู่ในตำแหน่งที่
ต้องการแล้วหล่ะก็ เป็นเรื่องที่คนใช้โปรแกรมแบบ Word นั้นไม่คุ้นเคยกันเอาซะเลย
ก่อนอื่นคงต้องพูดถึงรูปแบบมาตรฐานสำหรับเอกสารวิชาการซักหน่อย เอกสารประเภทนี้
การใส่รูปภาพจะไม่หวือหวา กล่าวคือมีแบบเดียว (รูปแบบอื่น ๆ ก็ได้แต่ไม่ดี อย่างไรก็ตาม
LaTeX ทำได้หมดแต่ยากหน่อย)

TeX Friendly Zone

รูปที่ 1 : TeX boat

สำหรับผู้ใช้ Word หรือ OO.o ที่ไม่ชำนาญ ก็จะยัด ๆ รูปใส่ ลากและแปะไปตามเรื่องตามราว
ในขณะที่ผู้ชำนาญก็จะมีการใส่ style เพื่อประโยชน์ในการทำ cross reference ในภายหลัง
ในขณะที่ LaTeX ได้ออกแบบให้ทำเช่นนั้นไว้แล้วตั้งแต่แรก

นอกจากเรื่องแกมบังคับข้างต้นแล้ว อีกเรื่องหนึ่งซึ่งอาจจะคาใจสำหรับผู้ใช้โดยทั่วไปก็ได้ นั่น
คือผู้ใช้ส่วนใหญ่ที่คุ้นเคยกับโปรแกรมแบบเขียนอย่างไรเห็นอย่างนั้น ก็จะคุ้นเคยกับการลาก
และแปะ รูปแบบของไฟล์รูปภาพที่นิยมก็เห็นจะเลี่ยงไม่พ้น BMP, GIF, JPEG เป็นต้น ซึ่งพวกนี้
ล้วนแต่ไม่ใช่รูปภาพแบบเวกเตอร์ทั้งสิ้น ในขณะที่ LaTeX นิยมให้ใช้ EPS เป็นหลัก ผู้ใช้ที่เริ่ม
ชำนาญแล้วก็อาจจะใช้ PDF ควบคู่ไปด้วย ซึ่งความเป็นจริงแล้วเราสามารถใช้รูปในรูปแบบของ
PNG, JPEG และ GIF ได้อย่างไม่มีปัญหา (จริง ๆ แล้ว LaTeX รองรับรูปแบบไฟล์รูปภาพอื่น ๆ
อีก)

ในตอนที่ 1 นี้ ผู้ที่พอเป็นแล้วก็เริ่มทำตัวให้ชินกับคำสั่งต่อไปนี้ก่อนก็แล้วกัน

\documentclass{report}
\usepackage{graphicx}
\begin{document}
\includegraphics{file.eps}
\includegraphics[height=4cm]{file.eps}
\includegraphics[height=4cm,width=4cm]{file.eps}
\includegraphics[scale=0.5]{file.eps}
\end{document}

ผลลัพธ์คงเดากันได้ไม่ยาก ไว้ตอนหน้าจะมาเขียนต่อแบบในเชิงลึก สำหรับผู้ที่ใจร้อนก็ไปอ่าน
เอกสารที่ดีมาก ๆ เอาเอง ที่ Using Imported Graphics in LaTeX2 and pdfLaTeX ซึ่งเป็น
เอกสารที่มาก ๆ อันหนึ่ง