ข้ามไปยังเนื้อหา

แพ็กเกจอัลกอริทึมใน Scissor LaTeX

แพ็กเกจอัลกอริทึมใช้ได้บางส่วนใน Scissor LaTeX สภาพแวดล้อม algorithm ใช้ได้พร้อมคำบรรยายที่มีหมายเลขและ \label คำสั่งตัวพิมพ์ใหญ่ของ algorithmic (\STATE, \FOR) ถูกอ่านเฉพาะในเลย์เอาต์งานประชุมวิชาการ ส่วน algpseudocode (\State, \For) และ algorithm2e (\KwIn, \For{}{}) ไม่รองรับ ให้ใส่ขั้นตอนไว้ในบล็อก verbatim แทน

แพ็กเกจเหล่านี้ทำอะไร

รหัสเทียมใน LaTeX มักใช้สองแพ็กเกจ algorithm ให้สภาพแวดล้อมที่มีหมายเลขพร้อมคำบรรยาย "Algorithm 1: ..." ซึ่งลอย (float) ได้เหมือนรูป ส่วนแพ็กเกจที่สองใช้เขียนขั้นตอน ได้แก่ algorithmic (คำสั่งตัวพิมพ์ใหญ่ \STATE, \IF, \ENDIF) algpseudocode จากชุด algorithmicx (ผสมตัวพิมพ์ใหญ่และเล็ก \State, \If, \EndIf) หรือ algorithm2e ซึ่งมีสภาพแวดล้อม algorithm ของตัวเองและคำสั่งอย่าง \KwIn และ \For{condition}{body}

สิ่งที่ใช้ได้ที่นี่

แพ็กเกจฟีเจอร์ใน Scissor LaTeX
algorithm\begin{algorithm}, \caption, \label, \refใช้ได้: "Algorithm N" คำบรรยายอยู่ด้านล่าง และไม่ลอย
algorithmการจัดวาง [H], [t], [h]ถูกละไว้: อัลกอริทึมอยู่ตรงตำแหน่งที่คุณเขียน
algorithm\listofalgorithmsไม่รองรับ: ถูกข้ามพร้อมข้อความแจ้ง
algorithmic\STATE, \IF, \FOR, \WHILE, \RETURN ...ใช้ได้บางส่วน: ถูกอ่านในเอกสารที่ใช้เลย์เอาต์งานประชุมวิชาการ โดยไม่มีหมายเลขบรรทัด ที่อื่นจะไม่เป็นที่รู้จัก
algpseudocode\State, \If, \For, \Function, \Return ...ไม่รองรับ: ชื่อคำสั่งถูกข้าม และขั้นตอนทั้งหมดต่อกันเป็นบรรทัดเดียว
algorithm2e\KwIn, \KwOut, \For{..}{..}, \eIf, \;ไม่รองรับ: ถูกข้ามพร้อมข้อความแจ้ง และขั้นตอนต่อกันหมด

ภายใน algorithm เนื้อหาถูกจัดกึ่งกลางเหมือนในรูป บล็อก verbatim ถูกจัดกึ่งกลางทั้งบล็อก โดยบรรทัดต่าง ๆ ชิดซ้ายและเยื้องตามที่พิมพ์ จึงเป็นวิธีที่เชื่อถือได้ที่สุดในการแสดงขั้นตอนที่นี่

ตัวอย่าง

ขั้นตอนใน verbatim พร้อมหมายเลขและการอ้างอิง:

algorithm ที่มีขั้นตอนแบบ verbatim

LaTeXส่วนนำ: \usepackage{algorithm}เปิดในตัวแก้ไข (เปิดในแท็บใหม่)
\begin{algorithm}
\caption{Find the largest value}
\label{alg:max}
\begin{verbatim}
best := xs[1]
for i := 2 to n:
    if xs[i] > best:
        best := xs[i]
return best
\end{verbatim}
\end{algorithm}
Algorithm~\ref{alg:max} looks at each value once.
จัดหน้าโดย Scissor LaTeX: algorithm ที่มีขั้นตอนแบบ verbatim

คำสั่งของ algorithm2e ถูกข้าม บรรทัดต่าง ๆ จึงต่อกันหมด แท็บปัญหาแสดงรายการคำสั่งที่ไม่รู้จัก:

algorithm2e ไม่รองรับ

LaTeXส่วนนำ: \usepackage{algorithm2e}เปิดในตัวแก้ไข (เปิดในแท็บใหม่)
\begin{algorithm}
\caption{Sum of a list}
\KwIn{numbers $a_1, \dots, a_n$}
$s \gets 0$\;
\For{$i \gets 1$ \KwTo $n$}{$s \gets s + a_i$\;}
\Return{$s$}\;
\end{algorithm}
จัดหน้าโดย Scissor LaTeX: algorithm2e ไม่รองรับ

แท็บปัญหา: Skipped 4 unknown commands: \KwIn, \For, \KwTo, \Return

หน้า อัลกอริทึมและรหัสเทียม แสดง algorithmic ในเลย์เอาต์งานประชุมวิชาการและ algpseudocode เทียบกัน

ความเข้ากันได้

  • จากการติดตั้ง TeX มาที่นี่: อัลกอริทึมยังคงหมายเลขและคำบรรยายไว้ ขั้นตอนที่เขียนด้วย algpseudocode หรือ algorithm2e จะต่อกันหมด ให้เขียนใหม่ใน verbatim หรือด้วย algorithmic ในเลย์เอาต์งานประชุมวิชาการ
  • จากที่นี่ไปยังการติดตั้ง TeX: algorithm ที่มีขั้นตอนแบบ verbatim คอมไพล์ได้ทุกที่และดูเหมือนกัน ยกเว้นว่าอัลกอริทึมอาจลอยไปอยู่ด้านบนของหน้า

คู่มืออยู่บน CTAN: algorithms (algorithm และ algorithmic) algorithmicx (algpseudocode) และ algorithm2e

ดูเพิ่มเติม อัลกอริทึม listings และ เลย์เอาต์งานประชุมวิชาการ

คำถามและคำตอบ

ควรใช้แพ็กเกจอัลกอริทึมใดใน Scissor LaTeX

ใช้ algorithm สำหรับหมายเลขและคำบรรยาย แล้วเขียนขั้นตอนในบล็อก verbatim ซึ่งใช้ได้ในทุกเอกสารที่นี่และในการติดตั้ง TeX ทุกแบบ

ทำไมบรรทัดของอัลกอริทึมจึงรวมเป็นบรรทัดเดียว

ขั้นตอนใช้คำสั่งของ algpseudocode หรือ algorithm2e ซึ่ง Scissor LaTeX ไม่อ่าน ชื่อคำสั่งถูกข้าม ข้อความของทุกขั้นตอนจึงไปรวมอยู่ในบรรทัดเดียว

ทุกตัวอย่างในหน้านี้จัดหน้าโดย Scissor LaTeX ขณะสร้างเว็บไซต์ อัปเดตล่าสุด 2026-11-07