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

لاتک LATEX => گرافیک، جدول و شکل => نويسنده: Mohsen Avaji در دسامبر 17, 2012, 10:27:59 am

عنوان: یکسان سازی طول برچسب شکل با اندازه طول خود شکل
رسال شده توسط: Mohsen Avaji در دسامبر 17, 2012, 10:27:59 am
سلام
برای اینکه توضیحات زیر شکل (caption) به اندازه طول شکل باشه از چه دستوری باید استفاده کنم؟
عنوان: پاسخ : یکسان سازی طول برچسب شکل با اندازه طول خود شکل
رسال شده توسط: vafa در دسامبر 17, 2012, 10:48:01 am
\documentclass{article}
\usepackage[demo]{graphicx}
\usepackage{xepersian}
\begin{document}
\begin{figure}
\includegraphics[width=8cm]{demo}
\caption{%
\hangindent \dimexpr(\hsize-8cm)
\hangafter0
گروه پارسی‌لاتک کار خود را از سال ۱۳۸۷ آغاز کرده است و هدف آن، ساخت و پشتیبانی از ابزارهایی است که حروف‌چینی پارسی با لاتک را آسان می‌کنند. این گروه، همچنین سایت حاضر، تالار گفتگو و ویکی پارسی‌لاتک را نیز جهت ارتباط بیشتر و جواب‌گویی به کاربران راه‌اندازی کرده است به گونه‌ای که تا زمان نوشتن این مطلب (۹۱/۹/۲۲)، بیش از ۱۷۰۰۰ پرسش و پاسخ بین کاربران و اعضای گروه پارسی‌لاتک رد و بدل شده است. تمام تلاش‌های اعضای پروژه، به صورت داوطلبانه و بدون هیچ‌گونه پشتیبانی مالی صورت گرفته است. با این حال، پروژه پارسی‌لاتک جهت ادامه فعالیت‌های خود، تامین هزینه‌های میزبانی سایت و دامنه، برگزاری کارگاه‌های آموزشی، توزیع دی‌وی‌دی‌های پارسی‌لاتک در کارگاه‌ها و ... نیازمند حمایت شما است.
}
\end{figure}
\end{document}
عنوان: پاسخ : یکسان سازی طول برچسب شکل با اندازه طول خود شکل
رسال شده توسط: هادی صفی‌اقدم در دسامبر 17, 2012, 11:00:20 am
این روش توصیه میشه؟
\documentclass{article}
\usepackage{floatrow}
\begin{document}

\begin{figure}
\ffigbox[\FBwidth]
{\caption{caption text caption text caption text caption text
caption text caption text caption text caption text
caption text caption text caption text caption text }\label{...}}
{\rule{50mm}{20mm}}
\end{figure}

\end{document}
عنوان: پاسخ : یکسان سازی طول برچسب شکل با اندازه طول خود شکل
رسال شده توسط: وحید دامن‌افشان در دسامبر 17, 2012, 12:00:56 pm
فکر کنم راه‌حل زیر، ساده‌تر باشه و کمتر وقت بگیره:
\documentclass{article}
\usepackage[demo]{graphicx}
\usepackage[margin={0cm,0cm}]{caption}
\captionsetup{width=7cm}
\usepackage{xepersian}
\begin{document}
\begin{figure}[t]
\centering{\includegraphics[width=7cm]{myfig}}
\caption{
مقداری متن مقداری متن مقداری متن مقداری متن مقداری متن مقداری متن مقداری متن مقداری متن مقداری متن مقداری متن مقداری متن مقداری متن
}
\end{figure}
\end{document}
در ضمن، اگه شکل‌هاتون پهنای متفاوتی دارن، می‌تونین از دستور خط چهارم، علاوه بر قسمت preamble،  داخل خود محیط figure (قبل از دستور caption\) هم استفاده کنین.

@هادی: بسته floatrow با زی‌پرشین سازگار نیست و بنابراین نمی‌شه ازش استفاده کرد.
عنوان: پاسخ : یکسان سازی طول برچسب شکل با اندازه طول خود شکل
رسال شده توسط: هادی صفی‌اقدم در دسامبر 17, 2012, 12:51:10 pm
فکر کنم راه‌حل زیر، ساده‌تر باشه و کمتر وقت بگیره:
\documentclass{article}
\usepackage[demo]{graphicx}
\usepackage[margin={0cm,0cm}]{caption}
\captionsetup{width=7cm}
\usepackage{xepersian}
\begin{document}
\begin{figure}[t]
\centering{\includegraphics[width=7cm]{myfig}}
\caption{
مقداری متن مقداری متن مقداری متن مقداری متن مقداری متن مقداری متن مقداری متن مقداری متن مقداری متن مقداری متن مقداری متن مقداری متن
}
\end{figure}
\end{document}
در ضمن، اگه شکل‌هاتون پهنای متفاوتی دارن، می‌تونین از دستور خط چهارم، علاوه بر قسمت preamble،  داخل خود محیط figure (قبل از دستور caption\) هم استفاده کنین.

@هادی: بسته floatrow با زی‌پرشین سازگار نیست و بنابراین نمی‌شه ازش استفاده کرد.
این روش به اندازه‌ی عرض شکل نمیکنه. به عرض داده شده ما می‌کنه.
یک روشی در یک انجمن لاتک گفته بودن که پیداش میکنم و اینجا میارم.
«سازگار نیست» فکر نکنم عبارت درستی باشه. باید بگیم «پشتیبانی نمیشه»؟
چون بعضی بسته‌ها را من استفاده می‌کنم که توی لیست پشتیبانی نیست ولی مشکلی فعلا پیش نیاورده.
عنوان: پاسخ : یکسان سازی طول برچسب شکل با اندازه طول خود شکل
رسال شده توسط: Mohsen Avaji در دسامبر 17, 2012, 02:12:34 pm
سلام
عرض متن در متغیر textwidth ذخیره میشه، آیا عرض یک شکل در متغبر خاصی (مانند figurewidth) ذخیره میشه؟
این چیزی که آقای صفی اقدم فرمودن \captionsetup{width=7cm} تنظیم دستیه، میشه در این دستور از متغیری که عرض شکل داخلش ذخیره شده استفاده کرد؟
عنوان: پاسخ : یکسان سازی طول برچسب شکل با اندازه طول خود شکل
رسال شده توسط: هادی صفی‌اقدم در دسامبر 17, 2012, 02:14:29 pm
سلام
عرض متن در متغیر textwidth ذخیره میشه، آیا عرض یک شکل در متغبر خاصی (مانند figurewidth) ذخیره میشه؟
این چیزی که آقای صفی اقدم فرمودن \captionsetup{width=7cm} تنظیم دستیه، میشه در این دستور از متغیری که عرض شکل داخلش ذخیره شده استفاده کرد؟
شما توی لاتک میخاین استفاده کنین یا با زی‌پرشین؟
عنوان: پاسخ : یکسان سازی طول برچسب شکل با اندازه طول خود شکل
رسال شده توسط: Mohsen Avaji در دسامبر 17, 2012, 02:16:05 pm
در زی پرشین برای تایپ فارسی.
عنوان: پاسخ : یکسان سازی طول برچسب شکل با اندازه طول خود شکل
رسال شده توسط: vafa در دسامبر 17, 2012, 06:12:50 pm
سلام
عرض متن در متغیر textwidth ذخیره میشه، آیا عرض یک شکل در متغبر خاصی (مانند figurewidth) ذخیره میشه؟
این چیزی که آقای صفی اقدم فرمودن \captionsetup{width=7cm} تنظیم دستیه، میشه در این دستور از متغیری که عرض شکل داخلش ذخیره شده استفاده کرد؟
در مورد قسمت اول سوالت خیر. در مورد قسمت دوم خیلی راحته. شکلت رو داخل یک جعبه اول ذخیره می‌کنی، عرض جعبه را محاسبه می‌کنی و اندازه عرض خط توضیح شکل را به اندازه عرض جعبه درمی‌آوری. به همین راحتی.
عنوان: پاسخ : یکسان سازی طول برچسب شکل با اندازه طول خود شکل
رسال شده توسط: هادی صفی‌اقدم در دسامبر 17, 2012, 08:15:03 pm
در مورد قسمت اول سوالت خیر. در مورد قسمت دوم خیلی راحته. شکلت رو داخل یک جعبه اول ذخیره می‌کنی، عرض جعبه را محاسبه می‌کنی و اندازه عرض خط توضیح شکل را به اندازه عرض جعبه درمی‌آوری. به همین راحتی.
دکتر کارن‌پهلو؟ بیزحمت میشه لطف کنین نگاه کنین ببینین درست انجام دادم یا نه؟
با تشکر قبلی
عنوان: پاسخ : یکسان سازی طول برچسب شکل با اندازه طول خود شکل
رسال شده توسط: وحید دامن‌افشان در دسامبر 17, 2012, 08:44:33 pm
سلام
برای اینکه توضیحات زیر شکل (caption) به اندازه طول شکل باشه از چه دستوری باید استفاده کنم؟
کد زیر رو ببینین. توی این روش، پهنای شکل، به طور خودکار محاسبه می‌شه و توی دستور captionsetup\ قرار می‌گیره.

\documentclass{article}
\usepackage[demo]{graphicx}
\usepackage[margin={0cm,0cm}]{caption}
\usepackage{xepersian}
\newcommand{\figwidth}[1]{%
\setbox0=\hbox{#1}
\captionsetup{width=\wd0}
\centering#1%
}
\begin{document}
\begin{figure}[t]
\figwidth{\includegraphics{myfig}}
\caption{
مقداری متن مقداری متن مقداری متن مقداری متن مقداری متن مقداری متن مقداری متن مقداری
}
\end{figure}
\end{document}
منبع: یکی از کدهای آقا وفا.
عنوان: پاسخ : یکسان سازی طول برچسب شکل با اندازه طول خود شکل
رسال شده توسط: هادی صفی‌اقدم در دسامبر 17, 2012, 10:15:44 pm
بیزحمت فایل ضمیمه شده را ببینین.
چرا وقتی خط ۱۱ را غیر فعال میکنم، عرض شکل اِعمال نمیشه.
در صورتی که از دستور ‪\captionsetup‬ در خط‌های بعدی استفاده شده.
با تشکر قبلی
عنوان: پاسخ : یکسان سازی طول برچسب شکل با اندازه طول خود شکل
رسال شده توسط: وحید دامن‌افشان در دسامبر 18, 2012, 01:13:59 am
بیزحمت فایل ضمیمه شده را ببینین.
چرا وقتی خط ۱۱ را غیر فعال میکنم، عرض شکل اِعمال نمیشه.
در صورتی که از دستور ‪\captionsetup‬ در خط‌های بعدی استفاده شده.
با تشکر قبلی
دستور \myinputfigurewidth بدون دستور \captionsetup هیچ اثری روی فایلت نمی‌ذاره و هیچ خاصیتی نداره. به عبارت دیگه، بدون دستور \captionsetup، انگاری باد هوا تعریف کردیم. به عبارت دیگه، بدون دستور \captionsetup، فقط اومدیم شکل‌ها رو داخل یه box گذاشتیم، بدون هیچ خاصیت دیگه‌ای. پس چون داریم شکل‌ها رو با دستور \myinputfigurewidth فراخوانی می‌کنیم و این دستور هم، دستور \captionsetup رو توی خودش نداره، پس هیچ اتفاقی هم در مورد عرض برچسب شکل‌ها نمی‌افته.
امیدوارم که خوب توضیح داده باشم.
عنوان: پاسخ : یکسان سازی طول برچسب شکل با اندازه طول خود شکل
رسال شده توسط: هادی صفی‌اقدم در دسامبر 18, 2012, 01:28:08 am
دستور \myinputfigurewidth بدون دستور \captionsetup هیچ اثری روی فایلت نمی‌ذاره و هیچ خاصیتی نداره. به عبارت دیگه، بدون دستور \captionsetup، انگاری باد هوا تعریف کردیم. به عبارت دیگه، بدون دستور \captionsetup، فقط اومدیم شکل‌ها رو داخل یه box گذاشتیم، بدون هیچ خاصیت دیگه‌ای. پس چون داریم شکل‌ها رو با دستور \myinputfigurewidth فراخوانی می‌کنیم و این دستور هم، دستور \captionsetup رو توی خودش نداره، پس هیچ اتفاقی هم در مورد عرض برچسب شکل‌ها نمی‌افته.
امیدوارم که خوب توضیح داده باشم.
ممنون وحید جان بابت وقتی که در اختیارم گذاشتی.
(گذاشتن عکس با یک دستور یک مطلب هست و تغییر فرمت caption بک مطلب دیگه.)
ولی وقتی من دستور ‪\captionsetup{width=\the\myfigurewidth}‬ را توی فایلم گذاشتم، باید همه ی captionها را با این فرمت تولید کنه.
درسته؟
پس چرا نمیکنه؟
عنوان: پاسخ : یکسان سازی طول برچسب شکل با اندازه طول خود شکل
رسال شده توسط: Mohsen Avaji در دسامبر 21, 2012, 01:24:21 pm
سلام
در فایل ضمیه از دستوراتی که آقای دامن افشان فرمودن استفاده کردم اما دستور زیر توی فایل کار نمیکنه، به نظر شما علت چیه، سپاسگزارم.
‎\captionsetup{format=hang}‎
عنوان: پاسخ : یکسان سازی طول برچسب شکل با اندازه طول خود شکل
رسال شده توسط: vafa در دسامبر 21, 2012, 02:18:56 pm
سلام
در فایل ضمیه از دستوراتی که آقای دامن افشان فرمودن استفاده کردم اما دستور زیر توی فایل کار نمیکنه، به نظر شما علت چیه، سپاسگزارم.
‎\captionsetup{format=hang}‎
دستور \figwidth هر باری که استفاده بشه محتویات \captionsetup رو reset می‌کنه.