isomath package

จากข้อกำหนด ISO 31-11 ได้กำหนดสัญลักษณ์ทางคณิตศาสตร์เป็นมาตรฐานไว้  ทั้งนี้เพื่อให้เข้า
ใจตรงกัน น่าเสียดายที่เอกสารตัวจริงราคา 130 เหรียญ ในขณะที่ที่ Wiki pedia ที่ได้คัดลอกบาง
ส่วนไว้นั้น ไม่แน่จะว่าถูกต้องหรือเปล่า โดยเฉพาะสัญลักษณ์ต่าง ๆ ที่ใช้ฟอนต์ทั่วไป มาดูอันที่ชัด ๆ ก่อน

เรื่องแรก

  1. ตัวแปรสการ์ลานั้นใช้แทนด้วยตัวอักษรธรรมดาอยู่แล้ว จริง ๆ จะใช้ “ก, ข, …” แทนก็ได้  
    แต่มันไม่เป็นสากล ก็ให้ใช้ตัวอักษรภาษาอังกฤษตัวเล็ก a, b, c \ldots ซึ่งไม่มีปัญหาอะไร
  2. ตัวแปรเวกเตอร์ให้ใช้ตัวหนาและต้องเป็นตัวเอียง ใน LaTeX นั้นมีคำสั่ง \mathbf ในการ
    สร้างตัวหนาใน math mode อยู่แล้ว แต่ไม่ได้ตัวเอียง เท่าที่รู้ถ้าต้องการทำตัวหนาและ
    ตัวเอียงด้วยใน math mode อย่างนี้ \text{\textbf{\textit{a, b, c}}} \ldots จำเป็น
    จะต้องใช้แพกเกจ amsmath สำหรับคำสั่ง \text{ } แล้วใส่ \text{\textbf{\textit{a, b, c}}}
    ซึ่งยุ่งยากพอสมควร ผู้ใช้ที่มีประสบการณ์สามารถสร้างคำสั่งใหม่ได้ดังนี้

                         \newcommand[1]{\vector}{\text{\textbf{\textit{#1}}}
  3. สำหรับตัวแปรเมตริกซ์ก็ต้องใช้อักษรตัวใหญ่ที่เป็นตัวหนาและตัวเอียง ซึ่งทำได้เช่นเดียว
    กับอักษรตัวเล็ก
  4. ในอักษรกรีกและสัญลักษณ์พิเศษก็ควรจะมีลักษณะเช่นเดียวกับข้อ 2-3 ซึ่งโดยปกติจะใช้
    คำสั่ง \mathit{\boldsymbol{\Phi}} ซึ่งจะได้  phiit  (ต้องใช้กับแพกเกจ amsmath)
    เช่นเดียวกันสามารถสร้างเป็นคำสั่งใหม่ได้ และใช้ในกรณีของตัวอักษรปกติได้

จะเห็นได้ว่ายุ่งยากพอสมควร (ผู้ใช้ Word, OO.o นั้นจะไม่มีปัญหาเรื่องพวกนี้เพราะส่วนใหญ่ไม่สน
ใจคุณภาพของการเรียงพิมพ์อยู่แล้ว–เน้นว่าการเรียงพิมพ์นะครับ)  พึ่งมีไม่กี่วันมาได้มีการออก
แพกเกจใหม่ที่ชื่อ isomath และบรรจุไว้ใน MiKTeX เรียบร้อยแล้ว  ซึ่งมีคุณลักษณะเพิ่มเติมดังนี้

  1. มีการกำหนดอักษรกรีกใหม่เป็น \mathalpha (เวลาเรียกใช้ยังใช้ \alpha เหมือนเดิม)
  2. เพิ่มคำสั่ง \vectorsym, \matrixsym และ \tensorsym เพื่อให้สัญลักษณ์ต่าง ๆ เข้ากับ
    มาตรฐาน
  3. กำหนดคำสั่งสำหรับตัวอักษรใหม่อีกสามตัว
    – \mathbold   สำหรับตัวอักษรหนาและเอียง
    – \mathsans  สำหรับตัวอักษรแบบไม่มีเชิงและเป็นตัวเอียง
    – \mathboldsans สำหรับตัวอักษรแบบไม่มีเชิงที่เป็นตัวหนาและเอียง

ในการติดตั้งครั้งแรกแพกเกจนี้จะมาพร้อมบัก ให้ไปหาบรรทัดที่เขียนว่า

\usepackage[sfdefault=cmbr]{isomath}

แล้วใส่คอมเมนต์ซะ

มีการแก้บักนี้แล้ว

ส่วนวิธีการใช้ก็ให้ดูที่ manual และดูไฟล์ตัวอย่างที่ ไฟล์ตัวอย่าง  ตัวแพกเกจพึ่งจะอยู่ในขั้นเริ่มต้น
แต่ดูดีมีอนาคต เข้าใจว่าไม่นาน amsmath อาจจะนำไปปรับปรุงตรงนี้ ก็ควรจะนะ

Advertisements

แนะนำเว็บไซท์

เป็นเว็บไซท์ของบริษัท River Valley ซึ่งถ้าใครรู้จัก pdfscreen
มาก่อนก็จะรู้ว่า เป็นกลุ่มทำงานเดียวกัน สำหรับตัวหน้าเว็บที่เป็น
ประโยชน์สำหรับเราจริง ๆ จะอยู่ที่

River Valley Technologies

ซึ่งจะแหล่งรวบรวมข้อมูล ชุดคำสั่งเสริม (package) มากมาย พร้อมทั้งมีคู่มือการสร้างเอกสาร
ด้วย LaTeX ขั้นสูงสำหรับชุดคำสั่งเสริมต่าง ๆ สำคัญที่สุดเห็นจะเป็นแหล่งรวมไฟล์วีดิโอที่
รวบรวมการนำเสนอในงานประชุมวิชาการต่าง ๆ เช่น TUG, Practical TeX เป็นต้น ตัววีดิโอ
อาจจะใหญ่ แต่ก็คุ้มพอสมควรที่จะดูครับ

Defining the Color of Lines for Plotting

ผู้ใช้ MATLAB จะมีความรู้สึกร่วมกันอยู่อย่างหนึ่งคือ คู่มือไม่ดี วันนี้เพื่อนมาถามปัญหาที่ค้างคาใจ
อยู่นาน ซึ่งปัญาคือ

ต้องการพล็อตกราฟ โดยพล็อตกราฟทีละสิบข้อมูล โดยในแต่ละข้อมูลจะต้องมีสีต่างกัน

ไม่เคยทำนะครับ อย่างเก่งผมก็แค่พล็อตทีละสองหรือสามข้อมูลแล้วให้ MATLAB กำหนดสีให้เอง
ซึ่งจะใช้วิธีถึก ๆ ดังนี้

plot(x,y1,x,y2)

MATLAB ก็จะเลือกสีให้ ถ้าข้อมูลเพิ่มเป็นซักสามสิบหล่ะ คือมี y1 ถึง y10 ไอ้การทำแบบข้างบนนั้น
มันไม่ได้ซะแล้ว ที่สำคัญสีที่ให้โดยอัตโนมัตินั้นมีแค่ 8 สีเอง ซึ่งหนึ่งในนั้นเป็นสีขาว

เรามาเริ่มต้นทำความเข้าใจว่าเราจะพล็อตข้อมูล y1 ถึง y10 ในคราวเดียวได้อย่างไรก่อน วิธีการก็
ทำการสร้างเมตริกซ์ของข้อมูลที่จะพล็อต ตัวอย่างเช่น

x = 0:pi/20:4*pi;
A = ones(length(x),10);   % กำหนดขนาดของเมตริกซ์เพื่อเพิ่มความเร็วในการคำนวณ
for i = 1:10
A(:,i) = sin(x-i/5)’;      % เก็บข้อมูลเป็นเวกเตอร์ในคอลัมน์ของเมตริกซ์ A
end

plot(x,A);

ผลที่ได้จะเห็นได้อย่างชัดเจนว่าเริ่มมีสีซ้ำกัน ทางแก้ก็คือกำหนดสีให้ MATLAB ใหม่ดังนี้

C = zeros(10,3);

for i = 1:10
C(i,1) = 0.1*i;
end
set(gcf,’DefaultAxesColorOrder’,C);

แล้วก็ตามด้วยคำสั่งในการพล็อตกราฟข้างต้น

ผลลัพธ์ที่ได้จะเป็นดังข้างบน

และแน่นอนเราหาทางกลับไม่เจอหรอก ต้องพลิกคู่มืออีกหลายตลบแล้วก็ลองผิดลองถูก จริง ๆ ก็แค่

reset(gcf); หรือ set(gcf,’default’);

ทุกอย่างก็จะกลับไปเหมือนเดิม

หมายเหตุ: ทุกอย่างเอามาจากคู่มือของ MATLAB ทั้งหมด

ในที่สุดเขาก็ทำ

ท่ากลางอุณหภูมิการเมืองอันร้อนระอุที่เมืองไทย กับอุณหภูมิที่ลดต่ำลงอย่างรวดเร็วของฮัมบวร์ก
ผมแทบจะกลั้นน้ำตาไม่อยู่เมื่อพบว่า นาย Henrik Skov Midtiby ได้เสียสละเวลาสร้างชุดคำสั่งเสริม
ที่ชื่อว่า todonotes 

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

นอกจากนั้นยังมี todo list อีก …

ไว้จะมาเขียนรายละเอียดอีกทีนะครับ

JabRef 2.4 ออกในที่สุด

Jabref-ScreenShot-FileMenu.png

หลังจากที่ใช้ตัว beta มานานแสนนานในที่สุดตัวจริงก็ออกมา มีการเปลี่ยนแปลงจาก beta เพียง
เล็กน้อยเท่านั้น ใครใช้อยู่หรือสนใจจะใช้ก็ไปโหลดใช้ฟรีได้ที่ JabRef