• Welcome to پارسی‌لاتک.
 
از تاریخ ۱۳۹۳/۸/۱۴ به دلیل ارائه خدمات بهتر به سایت جدید پرسش و پاسخ مهاجرت کرده‌ایم؛ از این رو امکان عضویت و ارسال پست در تالار غیرفعال شده است. لطفاً برای پرسیدن سوال‌های خود به سایت جدید مراجعه کنید.

ورود به سایت جدید

طراحی تجملی با بسته ntheorem

نویسنده مرتضی, ژانویه 18, 2013, 01:51:55 بعد از ظهر

« قبلی - بعدی »

مرتضی

چطور می‌توان محیطی مانند ضمیمه درست کرد؟ در واقع چطور می‌توان به کلمات نکته و شماره‌ی جلویش حالت تجملی داد؟

vafa


مرتضی

کاری که تا به حال انجام دادم ضمیمه شده.
در حال حاضر دو تا مساله وجود داره:

  • می‌خوام پهنای خط افقی، به اندازه‌ی کلمه نکته و شماره‌ی جلوش باشه (در حال حاضر این عدد رو دستی وارد کرده‌ام).
  • می‌خوام جداکننده‌ی عنوان این محیط (کلمه‌ی نکته و شماره جلویش) و متن خود محیط، newline باشد؛ یعنی متن اصلی محیط نکته از خط بعد شروع بشه

فرشاد ترابی

من با استفاده از یک محیط جدید این کار رو کردم. فقط:

1. نمیدونم چرا کلمه نکته را کمی فاصله داده.
2. یک خط برای اضافه کردن به شمارنده نوشتم که باید حذف کنید. خواستم ببینم که اگر طول شمارنده زیاد بشه چی میشه.

مرتضی

نقل قول از: Farschad در ژانویه 18, 2013, 09:14:59 بعد از ظهر
من با استفاده از یک محیط جدید این کار رو کردم

با تشکر از پاسخ شما. ولی این راه حل، یکی از مشکلات را حل می‌کند، در عوض چند مشکل به آن اضافه می‌کند.
چند نکته رو باید مدنظر داشت:

  • علت استفاده از ntheorem این بود که علامت qed را در انتهای خط فعلی قرار می‌ده؛ خواه این خط شامل متن باشه، خواه شامل فرمول.
  • همونطور که قبلا گفتم، می‌خوام پهنای خط افقی، به اندازه‌ی کلمه‌ی نکته + عدد جلوش باشه و نه بیشتر یا کمتر.
  • اساسا ترجیح میدم newenvironment ای برای این موضوع تعریف نکنم؛ چون کلی مشکل در پی خواهد داشت

وحید دامن‌افشان

#5
نقل قول از: مرتضی در ژانویه 18, 2013, 01:51:55 بعد از ظهر
چطور می‌توان محیطی مانند ضمیمه درست کرد؟ در واقع چطور می‌توان به کلمات نکته و شماره‌ی جلویش حالت تجملی داد؟
فایل پیوست رو ببینین. شاید راه‌حل تر و تمیز‌تری هم باشه.


دلیل ویرایش: اصلاح یک ایراد کوچولو

مرتضی

نقل قول از: وحید دامن‌افشان در ژانویه 19, 2013, 11:37:48 قبل از ظهر
فایل پیوست رو ببینین.

خیلی ممنون از پاسختون.
یه فاصله‌ای در حد یک میلیمتر، قبل از شروع محتوای نکته‌ی اول دیده میشه. به نظرتون علتش چیه و چطور میشه اونو حذف کرد؟ (ignorespaces  باعث شده این فاصله در مورد محتوای نکته‌ی دوم از بین بره؛ ولی نمیدونم چرا در مورد اولی، فاصله‌ی اضافی رو از بین نبرده)

وحید دامن‌افشان

نقل قول از: مرتضی در ژانویه 20, 2013, 01:31:25 قبل از ظهر
خیلی ممنون از پاسختون.
یه فاصله‌ای در حد یک میلیمتر، قبل از شروع محتوای نکته‌ی اول دیده میشه. به نظرتون علتش چیه و چطور میشه اونو حذف کرد؟ (ignorespaces  باعث شده این فاصله در مورد محتوای نکته‌ی دوم از بین بره؛ ولی نمیدونم چرا در مورد اولی، فاصله‌ی اضافی رو از بین نبرده)
دلیلش، وجود دستور ‎‎\label{p1}‎‎‎ هستش و فعلاً هم چیزی به ذهنم نمی‌رسه. اما فعلاً می‌تونین با گذاشتن علامت ٪ بعد از دستور ‎‎\label{p1}‎‎‎ مشکل رو رفع کنین.

مرتضی

#8

  • به یه چیز عجیب برخوردم. وقتی تعداد نکته‌ها به ۱۰ میرسه (یعنی «نکته ۱-۱۰»)، خط افقی، فقط تا بالای رقم صفر میاد و کل عدد ۱۰ رو نمیپوشونه. و این در حالیه که برای همه نکته‌ها بغیر از عدد ۱۰ درست کار میکنه و کل عددها را میپوشونه. به نظرتون اینو چیکار کنیم؟
  • به نظرم فاصله عمودی بین خط و نکته زیاده. چطور میتونم این فاصله رو کم کنم؟
    اگر از \vspace استفاده کنم، به خط و به کلمه‌ی نکته، مثل دو عنصر جدا از هم نگریسته میشه؛ در این حالت اگر نکته در انتهای صفحه قرار بگیره، ممکنه خط افقی رسم بشه و خود نکته و محتواش به صفحه بعد منتقل بشه. در واقع می‌خوام حالتی داشته باشم که انگار بین این خط و کلمه نکته چسب ریختیم و اینها رو به هم چسبوندیم؛ و در عین حال یک فاصله منطقی (مثلا در حد ۲ میلیمتر) هم از هم داشته باشند.

نقل قول از: وحید دامن‌افشان در ژانویه 20, 2013, 01:41:42 قبل از ظهر
دلیلش، وجود دستور ‎‎\label{p1}‎‎‎ هستش. فعلاً می‌تونین با گذاشتن علامت ٪ بعد از دستور ‎‎\label{p1}‎‎‎ مشکل رو رفع کنین.
اینطور که من تست کردم، این فاصله دقیقا یک میلیمتر هستش. با این فرض، میشه اونو با \hspace{-1mm} قبل از ignorespaces حذف کرد (البته میدونم که این، یک راه حل ابتداییه :) ).

وحید دامن‌افشان

مشکل شماره ۱ برای خودم هم خیلی عجیبه. جوابش رو فعلا نمی‌دونم. جالبه که فقط برای شماره‌هایی مثل ۱۰، ۱۰۰، ۱۰۰۰ و ... که از یه «۱» و چند تا صفر تشکیل شدن، پیش میاد.
برای مشکل شماره ۲ هم یه راه‌حلی با استفاده از بسته needspace پیدا کردم. اما قطعاً باید راه‌حل ساده‌تری هم داشته باشه.
به محض پیدا کردن راه‌حل، اینجا قرارش می‌دم.

مرتضی

نقل قول از: وحید دامن‌افشان در ژانویه 21, 2013, 02:45:18 بعد از ظهر
برای مشکل شماره ۲ هم یه راه‌حلی با استفاده از بسته needspace پیدا کردم.

من تو متن اصلیم هم از needspace استفاده کردم، ولی برای فاصله‌های مثبت. در اینجا فاصله منفی می‌خواهیم. بنابراین خوشحال میشم اگه همون راه‌حلی که با needspace بهش رسیدید رو اینجا قرار بدید (میزان پیچیدگیش هم مهم نیس  :) )

وحید دامن‌افشان

نقل قول از: مرتضی در ژانویه 21, 2013, 04:43:17 بعد از ظهر
من تو متن اصلیم هم از needspace استفاده کردم، ولی برای فاصله‌های مثبت. در اینجا فاصله منفی می‌خواهیم. بنابراین خوشحال میشم اگه همون راه‌حلی که با needspace بهش رسیدید رو اینجا قرار بدید (میزان پیچیدگیش هم مهم نیس  :) )
متاسفانه با یه مقدار تست بیشتر، متوجه شدم که مشکل داره. بنابراین برای جلوگیری از انتشار روش غلط توی تالار، اینجا قرارش نمی‌دم.
امیدوارم دوستان دیگه بتونن کمک‌تون کنن.

مرتضی

#12
نقل قول از: وحید دامن‌افشان در ژانویه 21, 2013, 02:45:18 بعد از ظهر
مشکل شماره ۱ برای خودم هم خیلی عجیبه. جوابش رو فعلا نمی‌دونم. جالبه که فقط برای شماره‌هایی مثل ۱۰، ۱۰۰، ۱۰۰۰ و ... که از یه «۱» و چند تا صفر تشکیل شدن، پیش میاد.
علتِ این مشکل عجیب و جالب رو پیدا کردم:
دستور autowidth مثل این میمونه که یه phantom تعریف کنیم. محتویات این phantom، همون مثلا «نکته ۱-۱» هستش. منتها شمارنده‌ای که در این phantom تعریف میشه، یکی کمتر از شمارنده اصلی محیط نکته میشماره. یعنی وقتی میخوایم روی «نکته ۱-۱۰» خط بکشیم. در واقع محتویات این phantom، «نکته ۱-۹» هستش. از اونجایی که عدد ۱۰، دو رقمی و عدد ۹، یک رقمی هست، این خط افقی کاملا عدد ۱۰ رو نمیپوشونه. در مورد اعداد ۱۰۰، ۱۰۰۰ و ... هم همینطوره.

نقل قول از: وحید دامن‌افشان در ژانویه 21, 2013, 02:45:18 بعد از ظهر
برای مشکل شماره ۲ هم یه راه‌حلی با استفاده از بسته needspace پیدا کردم. اما قطعاً باید راه‌حل ساده‌تری هم داشته باشه.
برای این مشکل هم یه پیشنهاد دارم: میتونیم از یه tabular (با @{}) استفاده کنیم که یه خونه داره و خط افقی بالاش رو بکشیم.

مرتضی

با روش ضمیمه تونستم هر دو مشکل رو حل کنم.
خوشحال میشم اگه ایرادی داره، بفرمائید.

وحید دامن‌افشان

نقل قول از: مرتضی در ژانویه 28, 2013, 03:49:51 بعد از ظهر
با روش ضمیمه تونستم هر دو مشکل رو حل کنم.
خوشحال میشم اگه ایرادی داره، بفرمائید.
یار در خانه و ما گرد جهان می‌گردیم. اصلاً به دستور \newtheoremstyle توی راهنمای بسته ntheorem توجه نکرده بودم.
ممنون که راه‌حل درست رو با ما به اشتراک گذاشتین.


جواب‌های قبلی رو برای جلوگیری از اتلاف وقت آیندگان، پاک می‌کنم.