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

لاتک LATEX => گرافیک، جدول و شکل => نويسنده: مرتضی در دسامبر 17, 2012, 09:05:15 pm

عنوان: ترسیم جدول با/بدون بسته booktabs
رسال شده توسط: مرتضی در دسامبر 17, 2012, 09:05:15 pm
با استفاده از بسته booktabs، عناصر جدول از خط افقیِ بالا و پایینشان اندکی فاصله می‌گیرند که منجر به زیبایی جدول می‌شود. مشکل بزرگی که این بسته دارد این است که خطوط عمودی را منقطع ترسیم می‌کند. بنابراین برای ترسیم جدول دو راه داریم:
۱) از booktabs استفاده کرده و مشکل خطوط عمودی را حل کنیم.
۲) از این بسته استفاده نکنیم و کدی بنویسیم که بین عناصر جدول و خطوط افقی بالایی و پایینیشان اندکی فاصله ایجاد کند.

به نظر شما کدام راه را انتخاب کنم و چگونه آنرا انجام دهم؟
عنوان: پاسخ : ترسیم جدول با/بدون بسته booktabs
رسال شده توسط: هادی صفی‌اقدم در دسامبر 17, 2012, 10:35:33 pm
\setlength{\belowrulesep}{0mm}
\setlength{\aboverulesep}{0mm}
فاصله‌‌ها را از بین میبره. فکر نکنم هدف‌تون باشه. درسته؟
booktabs فکر کنم پشتیبانی نمیشه.
عنوان: پاسخ : ترسیم جدول با/بدون بسته booktabs
رسال شده توسط: مرتضی در دسامبر 17, 2012, 11:21:13 pm
با تشکر از تلاش شما.
ولی این راه مناسبی برای حل مشکل خطوط عمودی در جدول ترسیم‌شده با booktabs نیست چون با این کار جدول خروجی دقیقا مانند جدول معمولی می‌شود و فاصله‌هایی که باعث زیبایی جدول می‌شد از بین می‌رود.
با توجه به ضمیمه پست قبلی‌ام، جدولی می‌خواهم که خطوط عمودی‌اش مثل جدول بالایی و فاصله‌های عمودی درون جدول، مثل جدول پایینی باشد.
عنوان: پاسخ : ترسیم جدول با/بدون بسته booktabs
رسال شده توسط: هادی صفی‌اقدم در دسامبر 17, 2012, 11:30:04 pm
الان فهمیدم!
‪\renewcommand{\arraystretch}{1.1}
این خوبه؟
عنوان: پاسخ : ترسیم جدول با/بدون بسته booktabs
رسال شده توسط: مرتضی در دسامبر 17, 2012, 11:40:47 pm
استفاده از دستوراتی که در پست قبلی فرمودید، باعث میشه جدول ترسیم‌شده با booktabs عینا مثل جدول معمولی بشه. بنابراین اگر در این حالت، arraystretch را تغییر دهیم، مثل این است که این دستور را در جدول معمولی (بدون booktabs) استفاده کنیم.
لازم به ذکره که در این حالت، این دستور همه فاصله‌های عمودی اعم از فاصله بین خطوط افقی و محتویات جدول و هم‌چنین فاصله عمودی بین دو عنصر جدول که زیر هم قرار گرفته‌اند، را تغییر می‌دهد. در صورتی که اگر از booktabs بطور معمول استفاده شود، فاصله خطوط افقی و محتویات جدول تغییر می‌کند ولی میزان تغییر در فاصله بین دو عنصر جدول که زیر هم هستند کمتر خواهد بود.
عنوان: پاسخ : ترسیم جدول با/بدون بسته booktabs
رسال شده توسط: حسن ذاکری در دسامبر 18, 2012, 12:19:47 am
با استفاده از بسته booktabs، عناصر جدول از خط افقیِ بالا و پایینشان اندکی فاصله می‌گیرند که منجر به زیبایی جدول می‌شود. مشکل بزرگی که این بسته دارد این است که خطوط عمودی را منقطع ترسیم می‌کند. بنابراین برای ترسیم جدول دو راه داریم:
۱. اگر راهنمای booktabs رو خونده باشید، دقیق ذکر کرده که نباید از خطوط عمودی استفاده کرد، برای این کار هم چند دلیل از جمله زیبایی و ظاهر شیک‌تر و حرفه‌ای‌تر آورده.
این‌که گفته از خطوط عمودی استفاده نکنید مربوط به هرجدولیه، چه بدون و چه با booktabs.
۲. توی راهنماش گفته که خط عمودی علاوه بر زشت بودن، ممکنه با booktab مشکل داشته باشه.

booktabs فکر کنم پشتیبانی نمیشه.
۳. booktabs‌ مشکل پشتیبانی نداره.

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

۴. مشکل با خط عمودی در متن مینیمال انگلیسی و بدون زی‌پرشین هم وجود خواهد داشت.

الان فهمیدم!
‪\renewcommand{\arraystretch}{1.1}
این خوبه؟
\setlength{\belowrulesep}{0mm}
\setlength{\aboverulesep}{0mm}
فاصله‌‌ها را از بین میبره. فکر نکنم هدف‌تون باشه. درسته؟
booktabs فکر کنم پشتیبانی نمیشه.

۵. حذف یا تغییر ناآگاهانه فاصله‌ها و ضرایب افزایش طول در جدول، به شدت خوانایی جدول رو از بین می‌بره.
عنوان: پاسخ : ترسیم جدول با/بدون بسته booktabs
رسال شده توسط: هادی صفی‌اقدم در دسامبر 18, 2012, 12:29:40 am
۱. اگر راهنمای booktabs رو خونده باشید، دقیق ذکر کرده که نباید از خطوط عمودی استفاده کرد، برای این کار هم چند دلیل از جمله زیبایی و ظاهر شیک‌تر و حرفه‌ای‌تر آورده.
این‌که گفته از خطوط عمودی استفاده نکنید مربوط به هرجدولیه، چه بدون و چه با booktabs.
۲. توی راهنماش گفته که خط عمودی علاوه بر زشت بودن، ممکنه با booktab مشکل داشته باشه.
۳. booktabs‌ مشکل پشتیبانی نداره.
الان که نیگاه کردم، توی لیست پشتیبانی نیست.
نقل قول
۴. مشکل با خط عمودی در متن مینیمال انگلیسی و بدون زی‌پرشین هم وجود خواهد داشت.

۵. حذف یا تغییر ناآگاهانه فاصله‌ها و ضرایب افزایش طول در جدول، به شدت خوانایی جدول رو از بین می‌بره.
لطفا بفرمایین:
۱- از کجا بدونیم که چیارو نباید تغییر بدم؟
۲- منظور از خوانایی یعنی چی؟
ممنون
عنوان: پاسخ : ترسیم جدول با/بدون بسته booktabs
رسال شده توسط: مرتضی در دسامبر 18, 2012, 12:40:32 am
۱. اگر راهنمای booktabs رو خونده باشید، دقیق ذکر کرده که نباید از خطوط عمودی استفاده کرد، برای این کار هم چند دلیل از جمله زیبایی و ظاهر شیک‌تر و حرفه‌ای‌تر آورده.
این‌که گفته از خطوط عمودی استفاده نکنید مربوط به هرجدولیه، چه بدون و چه با booktabs.
بله، راهنما رو قبلا مطالعه کردم و به نکته‌ای که ذکر کردید واقفم؛ ولی بنا به دلایلی ناگزیر از استفاده از خطوط عمودی هستم.

نقل قول
۴. مشکل با خط عمودی در متن مینیمال انگلیسی و بدون زی‌پرشین هم وجود خواهد داشت.
بله، ولی بنده صحبتی از زی‌پرشین نکردم و می‌دانم که مشکل از خود booktabs است.

به هر روی همچنان منتظر پاسخ مناسب هستم.
عنوان: پاسخ : ترسیم جدول با/بدون بسته booktabs
رسال شده توسط: هادی صفی‌اقدم در دسامبر 18, 2012, 01:36:23 am
بله، راهنما رو قبلا مطالعه کردم و به نکته‌ای که ذکر کردید واقفم؛ ولی بنا به دلایلی ناگزیر از استفاده از خطوط عمودی هستم.
بله، ولی بنده صحبتی از زی‌پرشین نکردم و می‌دانم که مشکل از خود booktabs است.

به هر روی همچنان منتظر پاسخ مناسب هستم.
نمیخام ناامیدتون کنم ولی توی انجمن‌های لاتین من نتونستم جوابی برای شما پیدا کنم.
ممکنه باز دوستان جوابی باد باشن و بگن.
عنوان: پاسخ : ترسیم جدول با/بدون بسته booktabs
رسال شده توسط: حسن ذاکری در دسامبر 18, 2012, 02:10:17 am
بله، ولی بنده صحبتی از زی‌پرشین نکردم و می‌دانم که مشکل از خود booktabs است.
۱. چرا فکر می‌کنید این یک مشکل است؟ booktabs با این پیش‌فرض‌ها و با این کاربری طراحی شده.

بله، راهنما رو قبلا مطالعه کردم و به نکته‌ای که ذکر کردید واقفم؛ ولی بنا به دلایلی ناگزیر از استفاده از خطوط عمودی هستم.
۲. استفاده از خط عمودی کار سختی نیست، خیلی راحت booktabs رو بیخیال شو

به هر روی همچنان منتظر پاسخ مناسب هستم.
۳. دقیقاً چه پاسخی؟
شاید tkz-tab کارتونو راه بندازه

اگر هم هدف از استفاده از booktabs فقط فاصله‌ها هست، میتونید با \arraystretch یا دستور \rule‌ با عرض ۰ این کار رو انجام بدین (که بهش strut یا شمع هم میگن).
عنوان: پاسخ : ترسیم جدول با/بدون بسته booktabs
رسال شده توسط: حسن ذاکری در دسامبر 18, 2012, 02:19:47 am
الان که نیگاه کردم، توی لیست پشتیبانی نیست.لطفا بفرمایین:
۱- از کجا بدونیم که چیارو نباید تغییر بدم؟
۲- منظور از خوانایی یعنی چی؟
ممنون
فکر کنم نیازی به پشتیبانی نداشته، به هر حال هستند بسته‌هایی که به طور رسمی توسط زی‌پرشین پشتیبانی نمی‌شوند ولی مشکلی هم ندارند.
booktabs به طور حساب شده و قشنگی مقداری فاصله قبل و بعد از \toprule و \midrule و \bottomrule میذاره که باعث خوانایی بیشتر جدول میشه، به این معنی که شما با یک نگاه به جدول می‌تونید بفهمید که اون خونه‌های بالایی حسابشون از وسطی‌ها جداست، یا پایینی به نحوی جمع بندی بالایی‌هاست. این فاصله‌ها رو که دستکاری کنیم، دیگه این اتفاق نمیفته.
ازطرفی، چه فایده داره بسته‌ای استفاده کنیم که این فاصله‌ها رو خودش تنظیم کنه و بعد ما بهمش بزنیم یا صفرش کنیم؟ یا بسته‌ای استفاده کتیم که خط عمودی رو حذف میکنه و بعد اصرار کنیم روی خط عمودی؟ خوب از اول سراغ همچین بسته‌ای نمی‌ریم!
عنوان: پاسخ : ترسیم جدول با/بدون بسته booktabs
رسال شده توسط: هادی صفی‌اقدم در دسامبر 18, 2012, 02:24:46 am
فکر کنم نیازی به پشتیبانی نداشته، به هر حال هستند بسته‌هایی که به طور رسمی توسط زی‌پرشین پشتیبانی نمی‌شوند ولی مشکلی هم ندارند.
booktabs به طور حساب شده و قشنگی مقداری فاصله قبل و بعد از \toprule و \midrule و \bottomrule میذاره که باعث خوانایی بیشتر جدول میشه، به این معنی که شما با یک نگاه به جدول می‌تونید بفهمید که اون خونه‌های بالایی حسابشون از وسطی‌ها جداست، یا پایینی به نحوی جمع بندی بالایی‌هاست. این فاصله‌ها رو که دستکاری کنیم، دیگه این اتفاق نمیفته.
ازطرفی، چه فایده داره بسته‌ای استفاده کنیم که این فاصله‌ها رو خودش تنظیم کنه و بعد ما بهمش بزنیم یا صفرش کنیم؟ یا بسته‌ای استفاده کتیم که خط عمودی رو حذف میکنه و بعد اصرار کنیم روی خط عمودی؟ خوب از اول سراغ همچین بسته‌ای نمی‌ریم!
خیلی ممنون بابت توضیح خوب‌تون. لطف کردین.
نظر شخصی من (سلیقه) اینه که هم اون فاصله‌هایی که برای زیبایی هست باشه و هم اون خط عمودی‌ها.
ولی به این صورت که بشه فاصله‌‌ای که به صورت شکستن در خط‌های عمودی هست را کنترل کرد. یعنی کم و زیاد کرد.
امیدوارم  در نسخه‌های بعدی این امکان را اضافه کنن یا بسته‌ای دیگه نوشته بشه. :)