ریاضیات و نمادها

MathJax

MathJax سیستم حروف‌چینی مدرنِ مبتنی بر مرورگر است که برای معادله‌های ریاضی و شیمیایی سودمند است. نصب هیچ نرم‌افزار اضافه‌ای نمی‌خواهد؛ پس استفاده از آن آسان است و برای بیشتر کاربران توصیه می‌شود.

MathJax در آنکی 2.1+، AnkiMobile و AnkiDroid 2.9+ به‌صورت آماده پشتیبانی می‌شود.

برای امتحانش:

  1. موارد زیر را در فیلدی تایپ کنید:

    \sqrt{x}
    
  2. متنی را که تایپ کردید انتخاب کنید.

  3. روی راست‌ترین دکمه ویرایشگر کلیک کنید و "MathJax inline" را از منو انتخاب کنید. آنکی متن را طوری تغییر می‌دهد که این شود:

    \(\sqrt{x}\)
    
  4. روی دکمه Cards... کلیک کنید. پیش‌نمایشی از ظاهر معادله هنگام مرور کارت می‌بینید.

    $$ \sqrt{x} $$ پشتیبانی MathJax آنکی محتوا را به قالب TeX انتظار دارد. اگر با قالب‌بندی TeX آشنا نیستید، این برگه راهنما را ببینید. توجه کنید نکته ۱ در آنکی اعمال نمی‌شود — آنکی از \( و \) برای معادله‌های درون‌خطی و از \[ و \] برای معادله‌های نمایشی استفاده می‌کند.

اگر می‌خواهید در عبارت MathJax خط جدید بگذارید، به‌جای Enter ساده از Shift+Enter استفاده کنید، چون خط جدید معمولی مانع کار درست MathJax می‌شود.

آنکی پشتیبانی داخلی mhchem برای رندر معادله‌های شیمیایی دارد. برای اطلاعات بیشتر، بخش «معادله‌های شیمیایی» و بخش‌های پس از آن را ببینید: https://mhchem.github.io/MathJax-mhchem/

سفارشی‌سازی MathJax

پشتیبانی MathJax همراه آنکی پیش از محتوای کارت بارگیری می‌شود؛ پس اگر بخواهید MathJax را سفارشی کنید باید به شیوه خاصی انجامش دهید. مثالی اینجا آمده است.

<script>
MathJax.config.tex['macros'] = {
    R: '{\\mathbb {R}}',
};
if (typeof is_already_run == 'undefined') {
  is_already_run = true
  MathJax.startup.getComponents();
}
</script>

Note

آنکی منطق ویژه‌ای برای حذف‌های اطلاعاتی دارد که اگر جداکننده‌های استاندارد معادله‌های MathJax را تغییر دهید ممکن است درست کار نکند.

LaTeX

LaTeX سیستم حروف‌چینی قدرتمندی است که برای ورود فرمول‌های ریاضی، فرمول‌های شیمیایی، نت‌نویسی موسیقی و غیره سودمند است. آنکی مقداری پشتیبانی از LaTeX فراهم می‌کند که به شما اجازه می‌دهد کد LaTeX در یادداشت‌هایتان وارد کنید. هنگام مرور کارت، آنکی LaTeX را فراخوانی و تصویر تولیدشده را به‌جایش نمایش می‌دهد.

راه‌اندازی LaTeX کار بیشتری می‌برد و تصاویر فقط با نسخه رایانه‌ای آنکی قابل تولیدند — البته پس از تولید، تصاویر را کلاینت‌های موبایل می‌توانند نمایش دهند. به‌دلیل پیچیدگی اضافه‌ای که LaTeX می‌آورد، فقط برای کاربرانی توصیه می‌شود که به قابلیت‌های بیشتری از آنچه MathJax فراهم می‌کند نیاز دارند.

فعال‌کردن LaTeX

Danger

کد LaTeX می‌تواند دستورهای مخربی در بر داشته باشد که می‌توانند داده‌های غیرآنکی روی رایانه شما را بخوانند یا بنویسند. به همین دلیل، نسخه‌های اخیر آنکی به‌طور پیش‌فرض از تولید تصاویر LaTeX سر باز می‌زنند.

به‌شدت توصیه می‌کنیم اگر از دسته‌های اشتراکی استفاده می‌کنید، یا فکر می‌کنید در آینده دسته اشتراکی درون‌ریزی خواهید کرد، این گزینه را فعال نکنید؛ چون عملاً به هر سازنده دسته اشتراکی دسترسی به رایانه خودتان می‌دهید.

اگر می‌خواهید از LaTeX روی کارت‌های خودتان استفاده کنید، باید گزینه Generate LaTeX images را در صفحه تنظیمات فعال کنید.

برای دسته‌های اشتراکی لازم نیست این گزینه را فعال کنید. اگر سازنده دسته اشتراکی پیش از به‌اشتراک‌گذاری، همه تصاویر را درست تولید کرده باشد، تصاویر باید از قبل موجود باشند.

دانش فرض‌شده

پشتیبانی LaTeX آنکی آمادهِ کارِ فوری نیست: فرض می‌شود از قبل با LaTeX کار کردن را بلدید و آن را نصب دارید. اگر تجربه‌ای با LaTeX ندارید، لطفاً به یکی از راهنماهای بسیار موجود در اینترنت مراجعه کنید. اگر با نشانه‌گذاری مشکل دارید، لطفاً در انجمن LaTeX بپرسید.

برای نصب LaTeX، در ویندوز از MiKTeX؛ در macOS از MacTeX و در لینوکس از مدیر بسته توزیع‌تان استفاده کنید. Dvipng هم باید نصب باشد.

در ویندوز، به Settings در پنجره نگهداری MikTeX بروید و مطمئن شوید "Install missing packages on the fly" روی "Always" است، نه "Ask me first". اگر همچنان مشکل داشتید، کاربری گزارش کرده که اجرای آنکی به‌عنوان مدیر (administrator) تا زمانی که همه بسته‌ها گرفته شوند کمک کرد.

در 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 روی آن را مرور می‌کنید، آنکی برای آن LaTeX تصویری تولید می‌کند و تصویر را برای استفاده بعدی در پوشه رسانه مجموعه‌تان می‌گذارد. کلاینت‌های وب و موبایل این تصاویر را اگر از قبل موجود باشند نمایش می‌دهند، اما نمی‌توانند خودشان تصاویر را تولید کنند.

برای اینکه مجبور نباشید پیش از مطالعه روی کلاینت‌های دیگر، همه کارت‌هایتان را دست‌کم یک بار مرور کنید، آنکی می‌تواند تصاویر را فله‌ای برایتان تولید کند. برای تولید همه تصاویر، به Tools>Check Media بروید. پس از آن، همگام‌سازی باید رسانه‌های تولیدشده را به AnkiWeb و کلاینت‌های دیگر بارگذاری کند.

مثال

عمومی‌ترین راه ورود محتوای LaTeX، احاطه‌کردنش با برچسب‌های [latex][/latex] است. برای این کار دکمه میان‌بری هست که در بخش ویرایشگر مستند شده است.

برچسب‌های [latex] باید داخل فیلد استفاده شوند — قراردادنشان در قالب کارت مشکل ایجاد می‌کند.

مثلاً ورود موارد زیر در روی فلش‌کارت آنکی:

Does [latex]\begin{math}\sum_{k = 1}^{\infty}\frac{1}{k}\end{math}[/latex] converge?

هنگام نمایش فلش‌کارت این را تولید می‌کند:

پرسش همگرایی

فرمول در مثال بالا «فرمول متنی» نامیده می‌شود، چون درست درون متن غیرریاضی نمایش داده می‌شود. در مقابل، مثال زیر «فرمول نمایشی» را نشان می‌دهد:

Does the sum below converge?

[latex]\begin{displaymath}\sum_{k = 1}^{\infty}\frac{1}{k}\end{displaymath}[/latex]

پرسش همگرایی ۲

«فرمول‌های متنی» و «فرمول‌های نمایشی» رایج‌ترین نوع عبارت‌های LaTeX‌اند؛ پس آنکی نسخه‌های مخفف‌شده آن‌ها را فراهم کرده است. عبارت‌های به شکل:

[latex]\begin{math}...\end{math}[/latex]

را می‌توان کوتاه کرد به

[$]...[/$]

و عبارت‌های به شکل

[latex]\begin{displaymath}...\end{displaymath}[/latex]

را می‌توان کوتاه کرد به

[$$]...[/$$]

مثلاً دو قطعه LaTeXِ نشان‌داده‌شده در قبل، به‌ترتیب معادل‌اند با

Does [$]\sum_{k = 1}^{\infty}\frac{1}{k}[/$] converge?

و

Does the sum below converge?

[$$]\sum_{k = 1}^{\infty}\frac{1}{k}[/$$]

بسته‌ها

آنکی به شما اجازه می‌دهد پیش‌گفتار 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 بگذارید و آزمایش کنید آیا می‌توانید از خط فرمان آن را کامپایل کنید. وقتی مطمئن شدید بسته موجود و کارا است، می‌توانیم آن را با آنکی یکپارچه کنیم.

برای استفاده از بسته با آنکی، در پنجره اصلی "Add" را کلیک کنید، سپس دکمه انتخاب نوع یادداشت را بزنید. روی دکمه "Manage" کلیک کنید، نوع یادداشتی را که قصد استفاده دارید انتخاب و "Options" را بزنید. سربرگ و پانوشت 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}

پس از آن، باید بتوانید خطوطی مانند زیر در کارت‌های آنکی‌تان بگنجانید:

[latex]\ethene{H}{H$_3$C}{CH$_3$}{Br}[/latex]

ناسازگاری با قالب‌ها

از آنکی 2.1.20 / AnkiMobile 2.0.56 / AnkiDroid 2.13، این راه‌حل دیگر لازم نیست، چون متن {{field}} داخل فیلدها دیگر مشکل ایجاد نمی‌کند. اگر لازم دارید از نسخه‌های قدیمی‌تر پشتیبانی کنید و می‌خواهید به استفاده از این نحو ادامه دهید، مطمئن شوید رشته {{=<% %>=}} را درست در بالای قالب روی و پشتتان می‌گذارید، چون نسخه‌های اخیر آنکی آن را جز در ابتدا نمی‌شناسند.

برای نسخه‌های قدیمی‌تر:

کاملاً رایج است که هنگام نوشتن معادله‌های ریاضی، {{ و }} در کد LaTeX ظاهر شوند. برای اطمینان از اینکه معادله‌های LaTeX شما با جایگزینی‌های فیلد آنکی ناسازگار نشوند، ممکن است جداکننده را به چیز دیگری تغییر دهید.

مثلاً اگر قالبی دارید:

{{latex field}}

تغییرش به موارد زیر نامحتمل می‌کند که LaTeX ناسازگار شود:

{{=<% %>=}}
<%latex field%>

ناسازگاری با cloze

حذف‌های اطلاعاتی با }} پایان می‌یابند که می‌تواند با }} ظاهرشده در 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}}

دستورهای ناامن

آنکی برخی دستورها مانند \input یا \def را روی کارت‌ها یا در قالب‌ها ممنوع می‌کند، چون اجازه دادن به آن‌ها می‌تواند به دسته‌های اشتراکی مخرب اجازه آسیب به سیستم‌تان بدهد. (برای احتیاط، این دستورها حتی در توضیحات هم ممنوع‌اند؛ پس اگر این خطا را می‌گیرید اما فکر نمی‌کنید از آن‌ها استفاده کرده‌اید، لطفاً توضیحات موجود در سربرگ‌ها، قالب‌ها و کارت‌هایتان را دوباره بررسی کنید.) اگر لازم است از این دستورها استفاده کنید، آن‌ها را به بسته سیستمی بیفزایید و آن بسته را مطابق بخش قبل درون‌ریزی کنید.