คณิตศาสตร์และสัญลักษณ์
MathJax
MathJax คือระบบเรียงพิมพ์ที่ทันสมัยและทำงานบนเบราว์เซอร์ เหมาะสำหรับสมการทางคณิตศาสตร์และเคมี ไม่จำเป็นต้องติดตั้งซอฟต์ต์แวร์เพิ่มเติมใดๆ จึงใช้งานง่าย และแนะนำสำหรับผู้ใช้ส่วนใหญ่
MathJax ได้รับการสนับสนุนใน Anki 2.1+, AnkiMobile และ AnkiDroid 2.9+ โดยไม่ต้องตั้งค่าใดๆ เพิ่มเติม
วิธีทดลองใช้:
-
พิมพ์ข้อความต่อไปนี้ลงในช่องข้อมูล:
\sqrt{x} -
เลือกข้อความที่คุณเพิ่งพิมพ์
-
คลิกปุ่มขวาสุดในเครื่องมือแก้ไข และเลือก “MathJax inline” จากเมนู Anki จะเปลี่ยนข้อความเป็น:
\(\sqrt{x}\) -
คลิกปุ่ม การ์ด… คุณจะเห็นตัวอย่างว่าสมการจะปรากฏอย่างไรเมื่อทบทวนการ์ด
$$ \sqrt{x} $$ การสนับสนุน MathJax ของ Anki คาดหวังเนื้อหาในรูปแบบ TeX หากคุณไม่คุ้นเคยกับรูปแบบ TeX โปรดดู เอกสารสรุปนี้ โปรดทราบว่าข้อ 1 ใช้ไม่ได้กับ Anki - Anki ใช้
\(และ\)สำหรับสมการในบรรทัด และ\[และ\]สำหรับสมการที่แสดงแยกบรรทัด
หากคุณต้องการขึ้นบรรทัดใหม่ในนิพจน์ MathJax โปรดใช้ Shift+Enter แทนการใช้ Enter เพียงอย่างเดียว เนื่องจากการขึ้นบรรทัดใหม่แบบปกติจะทำให้ MathJax ทำงานไม่ถูกต้อง
Anki มีการสนับสนุน mhchem ในตัวสำหรับการแสดงสมการเคมี โปรดดูส่วน “สมการเคมี” และส่วนต่อไปนี้สำหรับข้อมูลเพิ่มเติม: https://mhchem.github.io/MathJax-mhchem/
การปรับแต่ง MathJax
การสนับสนุน MathJax ที่มาพร้อมกับ Anki จะถูกโหลดก่อนเนื้อหาของการ์ด ดังนั้นหากคุณต้องการปรับแต่ง MathJax คุณจะต้องทำในลักษณะเฉพาะ มีตัวอย่างให้ไว้ที่นี่
<script>
MathJax.config.tex['macros'] = {
R: '{\mathbb {R}}',
};
if (typeof is_already_run == 'undefined') {
is_already_run = true
MathJax.startup.getComponents();
}
</script>
โปรดทราบว่า Anki มีตรรกะพิเศษสำหรับการลบคำในช่องว่าง (cloze deletions) ซึ่งอาจทำงานไม่ถูกต้องหากคุณเปลี่ยนตัวคั่นมาตรฐานสำหรับสมการ MathJax
LaTeX
LaTeX เป็นระบบเรียงพิมพ์ที่มีประสิทธิภาพ เหมาะสำหรับการป้อนสูตรคณิตศาสตร์ สูตรเคมี โน้ตดนตรี และอื่นๆ Anki ให้การสนับสนุน LaTeX บางส่วน ทำให้คุณสามารถป้อนโค้ด LaTeX ในบันทึกของคุณได้ เมื่อคุณทบทวนการ์ด Anki จะเรียกใช้ LaTeX และแสดงภาพที่สร้างขึ้นมาแทน
LaTeX ต้องใช้ความพยายามในการตั้งค่ามากกว่า และสามารถสร้างภาพได้เฉพาะกับ Anki เวอร์ชันคอมพิวเตอร์เท่านั้น - แต่เมื่อสร้างแล้ว ภาพเหล่านั้นสามารถแสดงผลบนไคลเอนต์มือถือได้ เนื่องจากความซับซ้อนที่เพิ่มขึ้นของ LaTeX จึงแนะนำให้ใช้สำหรับผู้ใช้ที่ต้องการคุณสมบัติมากกว่าที่ MathJax มีให้เท่านั้น
คำเตือนด้านความปลอดภัย
โค้ด LaTeX อาจมีคำสั่งที่เป็นอันตรายซึ่งสามารถอ่านหรือเขียนข้อมูลที่ไม่ใช่ของ Anki บนคอมพิวเตอร์ของคุณได้ ด้วยเหตุนี้ Anki เวอร์ชันล่าสุดจะปฏิเสธการสร้างภาพ LaTeX โดยค่าเริ่มต้น
หากคุณต้องการใช้ LaTeX บนการ์ดของคุณเอง คุณจะต้องเปิดใช้งานตัวเลือก สร้างภาพ LaTeX ในหน้าจอการตั้งค่า
เราขอแนะนำอย่างยิ่งว่าอย่าเปิดใช้งานตัวเลือกนี้หากคุณใช้สำรับที่แชร์ร่วมกัน หรือคิดว่าจะนำเข้าสำรับที่แชร์ร่วมกันในอนาคต เนื่องจากคุณอาจกำลังให้สิทธิ์ผู้สร้างสำรับที่แชร์เข้าถึงคอมพิวเตอร์ของคุณได้
คุณไม่จำเป็นต้องเปิดใช้งานตัวเลือกนี้สำหรับสำรับที่แชร์ หากผู้สร้างสำรับที่แชร์ได้สร้างภาพทั้งหมดอย่างถูกต้องก่อนที่จะแชร์สำรับ ภาพเหล่านั้นควรจะพร้อมใช้งานอยู่แล้ว
ความรู้ที่ควรมี
การสนับสนุน LaTeX ของ Anki ไม่ใช่แบบสำเร็จรูป: สันนิษฐานว่าคุณรู้วิธีใช้ LaTeX อยู่แล้ว และคุณได้ติดตั้งมันแล้ว หากคุณไม่มีประสบการณ์กับ LaTeX โปรดศึกษาจากคู่มือมากมายที่มีอยู่บนอินเทอร์เน็ต หากคุณมีปัญหากับมาร์กอัป โปรดสอบถามในฟอรัม LaTeX
ในการติดตั้ง LaTeX บน Windows ให้ใช้ MiKTeX; บน macOS ให้ใช้ MacTeX และบน Linux ให้ใช้ตัวจัดการแพ็คเกจของดิสโทรของคุณ ต้องติดตั้ง Dvipng ด้วย
บน Windows ไปที่การตั้งค่าในหน้าต่างการบำรุงรักษาของ MikTeX และตรวจสอบให้แน่ใจว่า “ติดตั้งแพ็คเกจที่ขาดหายไปทันที” ถูกตั้งค่าเป็น “เสมอ” ไม่ใช่ “ถามฉันก่อน” หากคุณยังคงประสบปัญหา มีผู้ใช้รายหนึ่งรายงานว่าการเรียกใช้ Anki ในฐานะผู้ดูแลระบบจนกว่าจะดึงแพ็คเกจทั้งหมดมาได้ช่วยแก้ปัญหาได้
บน macOS, LaTeX ได้รับการทดสอบกับ MacTeX และ BasicTeX เท่านั้น หากคุณใช้ BasicTeX คุณต้องติดตั้ง dvipng แยกต่างหากด้วยคำสั่งต่อไปนี้:
sudo tlmgr update --self; sudo tlmgr install dvipng
คำสั่งอาจไม่ได้อยู่ใน path ดังนั้นคุณอาจต้องระบุพาธเต็ม เช่น /usr/local/texlive/2014basic/bin/x86_64-darwin/tlmgr
หากคุณไม่ได้ใช้แพ็คเกจ LaTeX ข้างต้น คุณจะต้องใช้ส่วนเสริม edit LaTeX เพื่อระบุพาธเต็มไปยัง latex และ dvipng
เว็บ/มือถือ
เมื่อคุณทบทวนการ์ดที่มี LaTeX อยู่ Anki จะสร้างภาพสำหรับ LaTeX นั้นและวางภาพไว้ในโฟลเดอร์สื่อของคอลเลกชันของคุณเพื่อใช้ในอนาคต ไคลเอนต์เว็บและมือถือจะแสดงภาพเหล่านี้หากมีอยู่แล้ว แต่ไม่สามารถสร้างภาพได้ด้วยตนเอง
เพื่อหลีกเลี่ยงการต้องทบทวนการ์ดทั้งหมดของคุณอย่างน้อยหนึ่งครั้งก่อนที่คุณจะสามารถเรียนบนไคลเอนต์อื่นได้ Anki สามารถสร้างภาพทั้งหมดให้คุณได้ หากต้องการสร้างภาพทั้งหมด โปรดไปที่ เครื่องมือ>ตรวจสอบสื่อ หลังจากนั้น การซิงค์ควรจะอัปโหลดสื่อที่สร้างขึ้นไปยัง AnkiWeb และไคลเอนต์อื่นๆ
ตัวอย่าง
วิธีทั่วไปที่สุดในการป้อนเนื้อหา LaTeX คือการล้อมรอบด้วยแท็ก [latex][/latex] มีปุ่มลัดสำหรับสิ่งนี้ซึ่งมีเอกสารอยู่ในส่วน เครื่องมือแก้ไข
แท็ก [latex] ต้องใช้ภายในช่องข้อมูล - การวางไว้ในเทมเพลตการ์ดจะ ทำให้เกิดปัญหา
ตัวอย่างเช่น การป้อนข้อความต่อไปนี้ที่ด้านหน้าของการ์ด Anki:
Does \[latex\]\begin{math}\sum_{k = 1}^{\infty}\frac{1}{k}\end{math}\[/latex\] converge?
จะให้ผลลัพธ์นี้เมื่อดูการ์ด:

สูตรในตัวอย่างข้างต้นเรียกว่า “สูตรในบรรทัด” (text formula) เพราะมันแสดงผลอยู่ภายในข้อความที่ไม่ใช่คณิตศาสตร์ ในทางตรงกันข้าม ตัวอย่างต่อไปนี้แสดง “สูตรที่แสดงแยกบรรทัด” (displayed formula):
ผลรวมด้านล่างนี้ลู่เข้าหรือไม่?
\[latex\]\begin{displaymath}\sum_{k = 1}^{\infty}\frac{1}{k}\end{displaymath}\[/latex\]

“สูตรในบรรทัด” และ “สูตรที่แสดงแยกบรรทัด” เป็นนิพจน์ LaTeX ที่พบบ่อยที่สุด ดังนั้น Anki จึงมีเวอร์ชันย่อให้ นิพจน์ในรูปแบบ:
\[latex\]\begin{math}...\end{math}\[/latex\]
สามารถย่อได้เป็น
\[$\]...\[/$\]
และนิพจน์ในรูปแบบ
\[latex\]\begin{displaymath}...\end{displaymath}\[/latex\]
สามารถย่อได้เป็น
\[$$\]...\[/$$\]
ตัวอย่างเช่น โค้ด LaTeX สองส่วนที่แสดงก่อนหน้านี้เทียบเท่ากับ
Does \[$]\sum_{k = 1}^{\infty}\frac{1}{k}\[/$\] converge?
และ
ผลรวมด้านล่างนี้ลู่เข้าหรือไม่?
\[$$]\sum_{k = 1}^{\infty}\frac{1}{k}\[/$$\]
ตามลำดับ
แพ็คเกจ
Anki อนุญาตให้คุณปรับแต่งส่วนหัวของ LaTeX เพื่อให้คุณสามารถนำเข้าแพ็คเกจที่กำหนดเองสำหรับเคมี ดนตรี และอื่นๆ ได้ ตัวอย่างเช่น สมมติว่าคุณพบไฟล์ตัวอย่างสำหรับ chemtex บนอินเทอร์เน็ต:
\documentclass[a4paper,12pt]{report}
\usepackage{chemtex}
\begin{document}
\initial
\begin{figure}[h]\centering
\parbox{.3\textwidth}{\ethene{H}{H$_3$C}{CH$_3$}{Br}}
\hfil
\parbox{.3\textwidth}{\cbranch{H}{S}{H}{S}{C}{S}{}{S}{H}
\xi=-200 \cright{}{Q}{C}{D}{O}{S}{OH}}
\hfil
\parbox{.3\textwidth}{\hetisix{Q}{Q}{Q}{Q}{Q}{Q}{O}{Q}{O}
\xi=-171 \fuseup{Q}{Q}{Q}{Q}{D}{Q}{D}{Q}{D}}
\caption{Chemie mit {\tt CHEMTEX}\label{a1}}
\end{figure}
\end{document}
ขั้นแรก ทำตามเอกสารประกอบของแพ็คเกจและ MiKTeX/MacTeX เพื่อติดตั้งแพ็คเกจ ในการตรวจสอบว่าแพ็คเกจทำงานได้ คุณจะต้องใส่โค้ดเช่นข้างต้นลงในไฟล์ .latex และทดสอบว่าคุณสามารถคอมไพล์จากบรรทัดคำสั่งได้หรือไม่ เมื่อคุณยืนยันแล้วว่าแพ็คเกจพร้อมใช้งานและทำงานได้ เราสามารถรวมเข้ากับ Anki ได้
ในการใช้แพ็คเกจกับ Anki ให้คลิก “เพิ่ม” ในหน้าต่างหลัก จากนั้นคลิกปุ่มเลือกประเภทบันทึก คลิกปุ่ม “จัดการ” จากนั้นเลือกประเภทบันทึกที่คุณวางแผนจะใช้แล้วคลิก “ตัวเลือก” ส่วนหัวและส่วนท้ายของ LaTeX จะปรากฏขึ้น ส่วนหัวจะมีลักษณะดังนี้:
\documentclass[12pt]{article}
\special{papersize=3in,5in}
\usepackage{amssymb,amsmath}
\pagestyle{empty}
\setlength{\parindent}{0in}
\begin{document}
ในการใช้ chemtex คุณจะต้องเพิ่มบรรทัด usepackage ในตัวอย่างก่อนหน้านี้ เพื่อให้มีลักษณะดังนี้:
\documentclass[12pt]{article}
\special{papersize=3in,5in}
\usepackage{amssymb,amsmath}
\usepackage{chemtex}
\pagestyle{empty}
\setlength{\parindent}{0in}
\begin{document}
หลังจากนั้น คุณควรจะสามารถใส่บรรทัดเช่นต่อไปนี้ในการ์ด Anki ของคุณได้:
\[latex\]\ethene{H}{H$_3$C}{CH$_3$}{Br}\[/latex\]
ความขัดแย้งของเทมเพลต
ตั้งแต่ Anki 2.1.20 / AnkiMobile 2.0.56 / AnkiDroid 2.13 ไม่จำเป็นต้องใช้วิธีแก้ปัญหานี้อีกต่อไป เนื่องจากข้อความ {{field}} ภายในช่องข้อมูลไม่ก่อให้เกิดปัญหาอีกต่อไป หากคุณต้องการสนับสนุนเวอร์ชันเก่าและต้องการใช้ไวยากรณ์นี้ต่อไป โปรดตรวจสอบให้แน่ใจว่าคุณวางสตริง {{=<% %>=}} ไว้ที่ด้านบนสุดของเทมเพลตด้านหน้าและด้านหลังของคุณ เนื่องจาก Anki เวอร์ชันล่าสุดจะไม่รู้จักมันในที่อื่นนอกจากตอนเริ่มต้น
สำหรับเวอร์ชันเก่า:
เป็นเรื่องปกติที่ {{ และ }} จะปรากฏในโค้ด LaTeX เมื่อเขียนสมการทางคณิตศาสตร์ เพื่อให้แน่ใจว่าสมการ LaTeX ของคุณจะไม่ขัดแย้งกับการแทนที่ช่องข้อมูลของ Anki คุณสามารถเปลี่ยนตัวคั่นเป็นอย่างอื่นได้
ตัวอย่างเช่น หากคุณมีเทมเพลต:
{{latex field}}
การเปลี่ยนเป็นแบบต่อไปนี้จะทำให้โอกาสที่ LaTeX จะขัดแย้งกันน้อยลง:
{{=<% %>=}}
<%latex field%>
ความขัดแย้งของ Cloze
การลบคำในช่องว่าง (Cloze deletions) จะสิ้นสุดด้วย }} ซึ่งอาจขัดแย้งกับ }} ที่ปรากฏใน LaTeX ของคุณ เพื่อป้องกันไม่ให้ LaTeX ถูกตีความว่าเป็นเครื่องหมายปิดของ cloze คุณสามารถใส่ช่องว่างระหว่างวงเล็บปีกกาปิดสองอันใดๆ ที่ไม่ได้หมายถึงจุดสิ้นสุดของ cloze ดังนั้น
{{c1::\[$\]\frac{foo}{\frac{bar}{baz}}\[/$\] blah blah blah.}}
จะทำงานไม่ถูกต้อง แต่
{{c1::\[$\]\frac{foo}{\frac{bar}{baz} }\[/$\] blah blah blah.}}
จะทำงานได้ (และ LaTeX จะไม่สนใจช่องว่างในโหมดคณิตศาสตร์ ดังนั้นสมการของคุณจะแสดงผลเหมือนเดิม) หากคุณต้องการหลีกเลี่ยงการเพิ่มช่องว่างพิเศษลงในข้อความที่แสดงผล (ตัวอย่างเช่น เมื่อคุณสร้างการ์ด Cloze สำหรับการเรียนรู้ภาษาโปรแกรม) อีกทางเลือกหนึ่งคือการใช้ความคิดเห็น HTML เมื่อแก้ไขการ์ดในโหมด HTML:
{{c1::\[$\]\frac{foo}{\frac{bar}{baz}<!-- -->}\[/$\] blah blah blah.}}
คุณสามารถใช้วิธีแก้ปัญหาอย่างใดอย่างหนึ่งได้หากคุณต้องการใช้ลำดับอักขระ :: ภายในข้อความที่ถูกลบแบบ Cloze การ์ดใบแรกที่สร้างขึ้นสำหรับข้อความบันทึกต่อไปนี้จะอ่านว่า [type] in C++ is a type-safe union:
{{c1::std:<!-- -->:variant::~type~}} in C++ is a {{c2::type-safe union}}
คำสั่งที่ไม่ปลอดภัย
Anki ห้ามใช้คำสั่งบางอย่างเช่น \input หรือ \def บนการ์ดหรือในเทมเพลต เพราะการอนุญาตให้ใช้คำสั่งเหล่านี้อาจทำให้สำรับที่แชร์ที่เป็นอันตรายสามารถทำลายระบบของคุณได้ (เพื่อความปลอดภัย คำสั่งเหล่านี้จะถูกห้ามแม้ในความคิดเห็น ดังนั้นหากคุณได้รับข้อผิดพลาดนี้แต่ไม่คิดว่าคุณได้ใช้คำสั่งใดๆ โปรดตรวจสอบความคิดเห็นใดๆ ที่คุณมีในส่วนหัว เทมเพลต และการ์ดของคุณอีกครั้ง) หากคุณจำเป็นต้องใช้คำสั่งเหล่านี้ โปรดเพิ่มลงในแพ็คเกจระบบและนำเข้าแพ็คเกจนั้นตามที่อธิบายไว้ในส่วนก่อนหน้า