تالار گفتگوی پارسی‌لاتک

لاتک LATEX => سبک نوشتار => نويسنده: hrzazad در ژوئن 11, 2012, 09:15:21 pm

عنوان: حذف علامت مربع در انتهای محیط proof
رسال شده توسط: hrzazad در ژوئن 11, 2012, 09:15:21 pm
سلام.
می‌خواستم در محیط proof مربع در انتهای اثبات ظاهر نشه. چیکارکنم.
عنوان: پاسخ : حذف علامت مربع در انتهای محیط proof
رسال شده توسط: وحید دامن‌افشان در ژوئن 12, 2012, 03:12:36 am
کد زیر رو ببینین.
\documentclass{article}‎
‎\usepackage{amsthm‎}‎
‎\usepackage{xepersian}‎
‎\settextfont{XB‎ ‎Niloofar‎‎‎‎}‎
‎‎‎\renewcommand{\qedsymbol‎}{}‎‎
‎\begin{document}‎
‎\begin{proof}‎‎
‎‎‎این یک اثبات است.
‎\end{proof}‎
‎\end{document}‎
عنوان: پاسخ : حذف علامت مربع در انتهای محیط proof
رسال شده توسط: hrzazad در ژوئن 12, 2012, 04:22:21 pm
ممنون. کد جواب میده. ولی با توجه به فایل ضمیمه شده دو تا مشکل وجود داره.
۱- در فایل ضمیمه شده با فعال شدن دستور \renewcommand{qedsymbol}{} مربع حذف میشه ولی خطی که مربع در اون قرار گرفته خذف نمیشه و بصورت فضای خای باقی میمونه.

۲- اگر بخوام مربع از اینجایی که الان هست حذف بشه (البته با خذف خطی که در اون قرار گرفته) و دقیقا بعد از آخرین کلمه یا فرمول اثبات ظاهر بشه چه کار باید کرد؟
عنوان: پاسخ : حذف علامت مربع در انتهای محیط proof
رسال شده توسط: vafa در ژوئن 12, 2012, 05:15:01 pm
\documentclass{article}
\usepackage{amsthm,amsmath}
\usepackage{xepersian}
\makeatletter
\bidi@AtEndEnvironment{proof}{\let\popQED\relax}
\makeatother
\begin{document}
\begin{proof}
برهان به‌صورت زیر است
\begin{align}
&m(X\odot (Y\oplus Z))=m(X).m(Y\oplus Z)=m(x).(m(Y)+m(Z))=\nonumber \\
&m(X).m(Y)+m(X).m(Z)=m((X\odot Y)\oplus( X\odot Z)).\nonumber
\end{align}
\end{proof}
در بالا یک اثبات را می‌بینیم.
\end{document}
عنوان: پاسخ : حذف علامت مربع در انتهای محیط proof
رسال شده توسط: hrzazad در ژوئن 13, 2012, 11:08:00 am
ممنون. کد برای سوال اول جواب میده. برای سوال دوم باید مربع رو دستی بعد از آخرین کلمه یا فرمول اضافه کنم یا راهی وجود داره که خودکار برای همه اثبات‌ها انجام بشه؟
عنوان: پاسخ : حذف علامت مربع در انتهای محیط proof
رسال شده توسط: vafa در ژوئن 13, 2012, 11:20:17 am
\documentclass{article}
\usepackage{amsthm,amsmath}
\usepackage{xepersian}
\makeatletter
\bidi@AtEndEnvironment{proof}{\let\popQED\relax\qedsymbol}
\makeatother
\begin{document}
\begin{proof}
برهان به‌صورت زیر است
\begin{align}
&m(X\odot (Y\oplus Z))=m(X).m(Y\oplus Z)=m(x).(m(Y)+m(Z))=\nonumber \\
&m(X).m(Y)+m(X).m(Z)=m((X\odot Y)\oplus( X\odot Z)).\nonumber
\end{align}
و این ادمه اثبات است.
\end{proof}
در بالا یک اثبات را می‌بینیم.
\end{document}
عنوان: پاسخ : حذف علامت مربع در انتهای محیط proof
رسال شده توسط: hrzazad در ژوئن 13, 2012, 07:05:51 pm
این کد فقط برای اثبات‌هایی که به یک کلمه ختم میشن جواب میده و برای اثبات‌هایی که به یک فرمول ختم میشن جواب نمیده. مثلا در همین کد بالا اگر «و این ادامه اثبات است.» حذف شود باز هم مربع در یک سطر پایین‌تر ظاهر می‌شود.
عنوان: پاسخ : حذف علامت مربع در انتهای محیط proof
رسال شده توسط: vafa در ژوئن 13, 2012, 11:44:52 pm
این کد فقط برای اثبات‌هایی که به یک کلمه ختم میشن جواب میده و برای اثبات‌هایی که به یک فرمول ختم میشن جواب نمیده. مثلا در همین کد بالا اگر «و این ادامه اثبات است.» حذف شود باز هم مربع در یک سطر پایین‌تر ظاهر می‌شود.
واقعاُ حرفت با عقل جور درمیاد؟  شما دارید دو تا محیط مختلف رو تو در تو استفاده می‌کنید پس کد من کار درستی اتجام می‌ده که در پایان محیط proof اون مربع رو قرار می‌ده، شما ممکنه فرمول رو با هزار و یک گونه محیط قرار بدید، محیط proof از کجا باید بفهمه که شما از چه محیطی استفاده کردید و بعد از اینکه تشخیص داد از چه محیطی استفاده کردید، آخر سر اون مربع رو آخر اون محیط قرار بده؟
عنوان: پاسخ : حذف علامت مربع در انتهای محیط proof
رسال شده توسط: hrzazad در ژوئن 14, 2012, 04:51:15 pm
واقعاُ حرفت با عقل جور درمیاد؟  شما دارید دو تا محیط مختلف رو تو در تو استفاده می‌کنید پس کد من کار درستی اتجام می‌ده که در پایان محیط proof اون مربع رو قرار می‌ده، شما ممکنه فرمول رو با هزار و یک گونه محیط قرار بدید، محیط proof از کجا باید بفهمه که شما از چه محیطی استفاده کردید و بعد از اینکه تشخیص داد از چه محیطی استفاده کردید، آخر سر اون مربع رو آخر اون محیط قرار بده؟
پس با این اوصاف در مورد اثبات‌هایی که به فرمول ختم میشن، باید مربع رو دستی بذاریم انتهای فرمول. اگه راه دیگه‌ای هست راهنمایی کنید.
عنوان: پاسخ : حذف علامت مربع در انتهای محیط proof
رسال شده توسط: وحید دامن‌افشان در ژوئن 17, 2012, 04:07:05 am
۲- اگر بخوام مربع از اینجایی که الان هست حذف بشه (البته با خذف خطی که در اون قرار گرفته) و دقیقا بعد از آخرین کلمه یا فرمول اثبات ظاهر بشه چه کار باید کرد؟
بلاخره این مربع باشه یا نباشه؟ ;D
برای حل این مشکل، باید از دستور qedhere\ به صورت زیر استفاده کنین.
\documentclass{article}‎ ‎\usepackage{amsthm,amsmath}‎
‎\usepackage{xepersian}‎
‎\settextfont{XB Niloofar}‎
‎%‎‎\renewcommand{\qedsymbol}{}‎
‎\begin{document}‎
‎\begin{proof}‎
برهان به‌صورت زیر است
‎\begin{align}‎
‎&m(X\odot (Y\oplus Z))=m(X).m(Y\oplus Z)=m(x).(m(Y)+m(Z))=\nonumber \\‎
‎&m(X).m(Y)+m(X).m(Z)=m((X\odot Y)\oplus( X\odot Z)).\nonumber‎ ‎‎\qedhere‎‎
‎\end{align}‎
‎\end{proof}‎
در بالا یک اثبات را می‌بینیم.
‎\end{document}

و اگه می‌خواین اون مربع ظاهر نشه و در عین حال، خط اضافی هم تولید نشه، دستور
‎‎\renewcommand{\qedsymbol}{}‎ رو فعال کنین.
عنوان: پاسخ : حذف علامت مربع در انتهای محیط proof
رسال شده توسط: وحید دامن‌افشان در ژوئن 17, 2012, 04:10:06 am
پس با این اوصاف در مورد اثبات‌هایی که به فرمول ختم میشن، باید مربع رو دستی بذاریم انتهای فرمول. اگه راه دیگه‌ای هست راهنمایی کنید.
تا اونجایی که من می‌دونم، تنها راه‌حل، استفاده از همین دستور qedhere\ هستش که توی پست قبلی درباره‌ش نوشتم.
عنوان: پاسخ : حذف علامت مربع در انتهای محیط proof
رسال شده توسط: hrzazad در آوریل 09, 2013, 07:38:51 pm
با عرض سلام
قبلا از TeX Live 2011 استفاده می‌کردم، بعد از مدتی ویندوزم رو عوض کردم و همون TeX Live 2011 رو نصب کردم ولی از همون خط مربوط به مربع (\bidi@AtEndEnvironment{proof}{\let\popQED\relax\qedsymbol}) خطا می‌گیره خطا بصورت زیره:
! Undefined control sequence.
l.101 \bidi@AtEndEnvironment
                            {proof}{\let\popQED\relax\qedsymbol}
در حالی که قبلا کار می‌کرد. دلیلش چیه؟
(در ضمن هم با TeXworks و هم با TeXmaker خطا ایجاد می‌شه.)
logفایل رو هم ضمیمه کردم.
عنوان: پاسخ : حذف علامت مربع در انتهای محیط proof
رسال شده توسط: وحید دامن‌افشان در آوریل 10, 2013, 12:25:16 am
با عرض سلام
قبلا از TeX Live 2011 استفاده می‌کردم، بعد از مدتی ویندوزم رو عوض کردم و همون TeX Live 2011 رو نصب کردم ولی از همون خط مربوط به مربع (\bidi@AtEndEnvironment{proof}{\let\popQED\relax\qedsymbol}) خطا می‌گیره خطا بصورت زیره:
! Undefined control sequence.
l.101 \bidi@AtEndEnvironment
                            {proof}{\let\popQED\relax\qedsymbol}
در حالی که قبلا کار می‌کرد. دلیلش چیه؟
(در ضمن هم با TeXworks و هم با TeXmaker خطا ایجاد می‌شه.)
logفایل رو هم ضمیمه کردم.
شاید دستورهای دیگه‌ای توی فایل‌تون باشه که باعث ایجاد این مشکل شدن. لطفاً یه فایل کمینه پیوست کنین که مشکل رو نشون بده. فایل لاگ مربوط به این فایل رو هم پیوست کنین.
عنوان: پاسخ : حذف علامت مربع در انتهای محیط proof
رسال شده توسط: hrzazad در آوریل 10, 2013, 08:34:37 am
پاسخ شماره 3 همین موضوع رو امتحان کردم و همون خطا رو گرفتم.texفایل و logفایل همون پاسخ شماره ۳ رو پیوست کردم.
البته وقتی با TeXmaker اجراش می‌کنم از همون خط خطا می‌گیره ولی pdf رو می‌سازه که البته مشکل داره.مثلا دقیقا اول متن عبارت proof و یه مربع می‌ذاره و اعداد موجود در فرمول‌های ریاضی بصورت لاتین درج می‌شن.
ممکنه مشکل از TeX Live من باشه؟
عنوان: پاسخ : حذف علامت مربع در انتهای محیط proof
رسال شده توسط: وحید دامن‌افشان در آوریل 10, 2013, 01:50:26 pm
پاسخ شماره 3 همین موضوع رو امتحان کردم و همون خطا رو گرفتم.texفایل و logفایل همون پاسخ شماره ۳ رو پیوست کردم.
البته وقتی با TeXmaker اجراش می‌کنم از همون خط خطا می‌گیره ولی pdf رو می‌سازه که البته مشکل داره.مثلا دقیقا اول متن عبارت proof و یه مربع می‌ذاره و اعداد موجود در فرمول‌های ریاضی بصورت لاتین درج می‌شن.
ممکنه مشکل از TeX Live من باشه؟
متاسفانه راه‌حلی به ذهنم نمی‌رسه.
عنوان: پاسخ : حذف علامت مربع در انتهای محیط proof
رسال شده توسط: vafa در آوریل 10, 2013, 02:40:41 pm
با عرض سلام
قبلا از TeX Live 2011 استفاده می‌کردم، بعد از مدتی ویندوزم رو عوض کردم و همون TeX Live 2011 رو نصب کردم ولی از همون خط مربوط به مربع (\bidi@AtEndEnvironment{proof}{\let\popQED\relax\qedsymbol}) خطا می‌گیره خطا بصورت زیره:
! Undefined control sequence.
l.101 \bidi@AtEndEnvironment
                            {proof}{\let\popQED\relax\qedsymbol}
در حالی که قبلا کار می‌کرد. دلیلش چیه؟
(در ضمن هم با TeXworks و هم با TeXmaker خطا ایجاد می‌شه.)
logفایل رو هم ضمیمه کردم.
تک‌لایوت اونقدر بروز نیست که:

۱) بسته biditools وجود داشته باشه یا
۲) بسته biditools وجود داره اما دستور \bidi@AtEndEnvironment تعریف نشده.

راه‌حل: نصب تک‌لایو 2012 و بروز کردنش یا اگر کمی بیشتر صبر کنی، نصب تک‌لایو 2013.
عنوان: پاسخ : حذف علامت مربع در انتهای محیط proof
رسال شده توسط: hrzazad در آوریل 11, 2013, 06:52:06 pm
ممنون از آقای دامن‌افشان و آقای کارن‌پهلو.
همون TeX Live 2012 که بصورت فایل iso هست رو نصب کردم، مشکل حل شد(بدون بروز رسانی).

جسارتا فکر کنم با توجه به مواردی که در این پست مطرح شده اگه موضوعش تغییر کنه بهتره.مثلا: حذف علامت مربع در انتهای محیط proof و همچنین قرار گرفتن آن بعد از آخرین کلمه‌ی اثبات.

در ضمن جا داره از همه دوستانی که تو این سایت فعالیت می‌کنن و به سؤالات جواب میدن تشکر کنم. بدون شک حضورشون تو این سایت باعث دلگرمی همه کاربران هست.