پارسی‌لاتک

لاتک LATEX => ریاضیات و علوم => نويسنده: مهدی تابعی در فبریه 27, 2014, 10:04:29 بعد از ظهر

عنوان: نوشتن معادله چند خطی
رسال شده توسط: مهدی تابعی در فبریه 27, 2014, 10:04:29 بعد از ظهر
با سلام
می خواستم یک معادله طولانی را در مقاله ای بنویسم که یک ستونی است. از دستور \begin{align} استفاده کردم که جواب نداد و اگر از \begin{equation} استفاده کنم نیز معادله از خط بیرون می زند. در ضمن از دستور \\ نیز استفاده می کنم که ان هم جواب نمی دهد. فایل کوچکی را برای مثال ضمیمه کرده ام
با تشکر فراوان
عنوان: پاسخ : نوشتن معادله
رسال شده توسط: ابوالفضل دیانت در فبریه 27, 2014, 10:11:23 بعد از ظهر
با سلام
الف) شما باید از محیط eqnarray استفاده کنید.

\begin{eqnarray}\label{eq4}
IP_i=X\cdot y_i&=&(x_{n-1}x_{n-2}\cdots x_1 x_0)\cdot y_i\\
&=& x_{n-1}y_i,x_{n-2}y_i,\cdots x_1b_i,x_0y_i\nonumber \\
&=& p_{n-1,i},p_{n-2,i},\cdots p_{1,i},p_{0,i}\nonumber
\end{eqnarray}

اشتباه شما این بود که یک & می گذاشتید. باید دوتا && بگذارید و در تمامی خطوط نیز باید گذاشته شود.

ب) در محیط eqnarray شما مکان‌هایی را که می خواهید زیر هم بیافتد را باید با && مشخص کنید. همان رابطه بالا را مشاهده کنید.
ج) در ضمن شما در نوشتن خود فرمول نیز مشکل داشتید. وقتی می خواهید بنویسید x که اندیس پایینش n-1 است باید به صورت زیر بنویسید.

x_{n-1}

یعنی کل اندیس در داخل یک جفت آکولاد باشد.

د) راه‌هایی برای کوچکتر کردن اندازه فرمول و جا شدن آن در یک خط وجود دارد اما اصلا راه کار های خوب و استانداردی نیستند. پس بهتر است برای فرمول‌های بزرگ از فرمول های چندخطی
که با محیط eqnarray نوشته می شود، استفاده کنید.

نکته الف) برای یادگیری هرچه بهتر فرمول نویسی در latex لینک زیر را حتما بخوانید. در این لینک یک کتاب به نام مقدمه ای نه چندان کوتاه بر لاتک وجود دارد که به زبان فارسی است.
فایل pdf اش را می توانید دانلود کنید. در یکی از فصول آن به زیبایی در مورد نوشتن فرمول و انواع معادلات در latex صحبت کرده است.

http://www.ctan.org/tex-archive/info/lshort/persian
(http://www.ctan.org/tex-archive/info/lshort/persian)
در لینک زیر هم چند مثال از eqnarray برای آشنایی بیشتر وجود دارد.

http://www.personal.ceu.hu/tex/cookbook.html
(http://www.personal.ceu.hu/tex/cookbook.html)

نکته ب) پست شما بیشتر مناسب بود که در قسمت ریاضیات انجمن مطرح شود نه در قسمت مستندات. این طوری دوستان دیگری که همین سوال را داشته باشند، می توانند
بهتر و راحت‌تر پست های مرتبط را پیدا کنند.

نکته ج) اگر احساس می‌کنید فاصله خطوط در یک فرمول کم یا زیاد است، با روش زیر می‌توانید فاصله بین دو خط فرمول چندخطی را کم یا زیاد کنید.

\begin{eqnarray}\label{eq4}
IP_i=X\cdot y_i&=&(x_{n-1}x_{n-2}\cdots x_1 x_0)\cdot y_i\\*[6mm]
&=& x_{n-1}y_i,x_{n-2}y_i,\cdots x_1b_i,x_0y_i\nonumber \\*[6mm]
&=& p_{n-1,i},p_{n-2,i},\cdots p_{1,i},p_{0,i}\nonumber
\end{eqnarray}

در این حالت من فاصله بین دو فرمول را ۶ میلی متر بیشتر از حالت عادی قرار دادم. اگر مقدار منفی بگذارید فاصله کمتر از حالت عادی خواهد شد.
باتشکر
عنوان: پاسخ : نوشتن معادله
رسال شده توسط: حسن ذاکری در فبریه 27, 2014, 10:40:49 بعد از ظهر
نقل قول از: ابوالفضل دیانت در فبریه 27, 2014, 10:11:23 بعد از ظهر
با سلام
الف) شما باید از محیط eqnarray استفاده کنید.
...
سلام.
با تشکر از جواب طولانی و مفید شما، اما در کل استفاده از eqnarray اشتباه است. دلایل زیادی هم برای این کار وجود دارد که من به ارجاع به دو آدرس زیر بسنده می‌کنم:
http://tug.org/TUGboat/tb33-1/tb103madsen.pdf
http://www.math.uiuc.edu/~hildebr/tex/displays.html

اما نوشتن این معادله با align تفاوت زیادی با eqnarray ندارد:

\begin{align}\label{eq4}
IP_i=X\cdot y_i&=(x_{n-1}x_{n-2}\cdots x_1 x_0)\cdot y_i\\
&= x_{n-1}y_i,x_{n-2}y_i,\cdots x_1b_i,x_0y_i\nonumber \\
&= p_{n-1,i},p_{n-2,i},\cdots p_{1,i},p_{0,i}\nonumber
\end{align}


یک نکته دیگر اینکه اگر قرار است کل معادله یک شماره داشته باشد، بهتر است از محیط‌های equation و aligned استفاده شود:
\begin{equation}
\label{eq5}\begin{aligned}
IP_i=X\cdot y_i&=(x_{n-1}x_{n-2}\cdots x_1 x_0)\cdot y_i\\
&= x_{n-1}y_i,x_{n-2}y_i,\cdots x_1b_i,x_0y_i\\
&= p_{n-1,i},p_{n-2,i},\cdots p_{1,i},p_{0,i}
\end{aligned}
\end{equation}


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


همونطور که آقای دیانت فرمودند، من این مطلب رو به بخش ریاضیات و علوم منتقل می‌کنم.
عنوان: پاسخ : نوشتن معادله چند خطی
رسال شده توسط: مهدی تابعی در فبریه 27, 2014, 10:45:02 بعد از ظهر
سلام
از جواب های بسیار مفید دوستان بسیار بسیار متشکرم