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

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

یکسان سازی طول برچسب شکل با اندازه طول خود شکل

نویسنده Mohsen Avaji, دسامبر 17, 2012, 10:27:59 قبل از ظهر

« قبلی - بعدی »

Mohsen Avaji

سلام
برای اینکه توضیحات زیر شکل (caption) به اندازه طول شکل باشه از چه دستوری باید استفاده کنم؟
نخستین نشانه فساد ترک صداقت است. (میشل دو مونتی)

vafa


\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}

هادی صفی‌اقدم

#2
این روش توصیه میشه؟
\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}

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

فکر کنم راه‌حل زیر، ساده‌تر باشه و کمتر وقت بگیره:
\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:00:56 بعد از ظهر
فکر کنم راه‌حل زیر، ساده‌تر باشه و کمتر وقت بگیره:
\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

سلام
عرض متن در متغیر textwidth ذخیره میشه، آیا عرض یک شکل در متغبر خاصی (مانند figurewidth) ذخیره میشه؟
این چیزی که آقای صفی اقدم فرمودن \captionsetup{width=7cm} تنظیم دستیه، میشه در این دستور از متغیری که عرض شکل داخلش ذخیره شده استفاده کرد؟
نخستین نشانه فساد ترک صداقت است. (میشل دو مونتی)

هادی صفی‌اقدم

نقل قول از: Mohsen Avaji در دسامبر 17, 2012, 02:12:34 بعد از ظهر
سلام
عرض متن در متغیر textwidth ذخیره میشه، آیا عرض یک شکل در متغبر خاصی (مانند figurewidth) ذخیره میشه؟
این چیزی که آقای صفی اقدم فرمودن \captionsetup{width=7cm} تنظیم دستیه، میشه در این دستور از متغیری که عرض شکل داخلش ذخیره شده استفاده کرد؟
شما توی لاتک میخاین استفاده کنین یا با زی‌پرشین؟

Mohsen Avaji

نخستین نشانه فساد ترک صداقت است. (میشل دو مونتی)

vafa

نقل قول از: Mohsen Avaji در دسامبر 17, 2012, 02:12:34 بعد از ظهر
سلام
عرض متن در متغیر textwidth ذخیره میشه، آیا عرض یک شکل در متغبر خاصی (مانند figurewidth) ذخیره میشه؟
این چیزی که آقای صفی اقدم فرمودن \captionsetup{width=7cm} تنظیم دستیه، میشه در این دستور از متغیری که عرض شکل داخلش ذخیره شده استفاده کرد؟
در مورد قسمت اول سوالت خیر. در مورد قسمت دوم خیلی راحته. شکلت رو داخل یک جعبه اول ذخیره می‌کنی، عرض جعبه را محاسبه می‌کنی و اندازه عرض خط توضیح شکل را به اندازه عرض جعبه درمی‌آوری. به همین راحتی.

هادی صفی‌اقدم

نقل قول از: وفا کارن‌پهلو در دسامبر 17, 2012, 06:12:50 بعد از ظهر
در مورد قسمت اول سوالت خیر. در مورد قسمت دوم خیلی راحته. شکلت رو داخل یک جعبه اول ذخیره می‌کنی، عرض جعبه را محاسبه می‌کنی و اندازه عرض خط توضیح شکل را به اندازه عرض جعبه درمی‌آوری. به همین راحتی.
دکتر کارن‌پهلو؟ بیزحمت میشه لطف کنین نگاه کنین ببینین درست انجام دادم یا نه؟
با تشکر قبلی

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

نقل قول از: Mohsen Avaji در دسامبر 17, 2012, 10:27:59 قبل از ظهر
سلام
برای اینکه توضیحات زیر شکل (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}

منبع: یکی از کدهای آقا وفا.

هادی صفی‌اقدم

بیزحمت فایل ضمیمه شده را ببینین.
چرا وقتی خط ۱۱ را غیر فعال میکنم، عرض شکل اِعمال نمیشه.
در صورتی که از دستور ‪\captionsetup‬ در خط‌های بعدی استفاده شده.
با تشکر قبلی

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

نقل قول از: هادی صفی‌اقدم در دسامبر 17, 2012, 10:15:44 بعد از ظهر
بیزحمت فایل ضمیمه شده را ببینین.
چرا وقتی خط ۱۱ را غیر فعال میکنم، عرض شکل اِعمال نمیشه.
در صورتی که از دستور ‪\captionsetup‬ در خط‌های بعدی استفاده شده.
با تشکر قبلی
دستور \myinputfigurewidth بدون دستور \captionsetup هیچ اثری روی فایلت نمی‌ذاره و هیچ خاصیتی نداره. به عبارت دیگه، بدون دستور \captionsetup، انگاری باد هوا تعریف کردیم. به عبارت دیگه، بدون دستور \captionsetup، فقط اومدیم شکل‌ها رو داخل یه box گذاشتیم، بدون هیچ خاصیت دیگه‌ای. پس چون داریم شکل‌ها رو با دستور \myinputfigurewidth فراخوانی می‌کنیم و این دستور هم، دستور \captionsetup رو توی خودش نداره، پس هیچ اتفاقی هم در مورد عرض برچسب شکل‌ها نمی‌افته.
امیدوارم که خوب توضیح داده باشم.

هادی صفی‌اقدم

نقل قول از: وحید دامن‌افشان در دسامبر 18, 2012, 01:13:59 قبل از ظهر
دستور \myinputfigurewidth بدون دستور \captionsetup هیچ اثری روی فایلت نمی‌ذاره و هیچ خاصیتی نداره. به عبارت دیگه، بدون دستور \captionsetup، انگاری باد هوا تعریف کردیم. به عبارت دیگه، بدون دستور \captionsetup، فقط اومدیم شکل‌ها رو داخل یه box گذاشتیم، بدون هیچ خاصیت دیگه‌ای. پس چون داریم شکل‌ها رو با دستور \myinputfigurewidth فراخوانی می‌کنیم و این دستور هم، دستور \captionsetup رو توی خودش نداره، پس هیچ اتفاقی هم در مورد عرض برچسب شکل‌ها نمی‌افته.
امیدوارم که خوب توضیح داده باشم.
ممنون وحید جان بابت وقتی که در اختیارم گذاشتی.
(گذاشتن عکس با یک دستور یک مطلب هست و تغییر فرمت caption بک مطلب دیگه.)
ولی وقتی من دستور ‪\captionsetup{width=\the\myfigurewidth}‬ را توی فایلم گذاشتم، باید همه ی captionها را با این فرمت تولید کنه.
درسته؟
پس چرا نمیکنه؟

Mohsen Avaji

سلام
در فایل ضمیه از دستوراتی که آقای دامن افشان فرمودن استفاده کردم اما دستور زیر توی فایل کار نمیکنه، به نظر شما علت چیه، سپاسگزارم.
‎\captionsetup{format=hang}‎

نخستین نشانه فساد ترک صداقت است. (میشل دو مونتی)