سلام، لطفا وارد شوید یا عضو شوید.

نویسنده موضوع: به دست آوردن سایز طولانی‌ترین خط در یک پاراگراف  (دفعات بازدید: 2661 بار)

آفلاین فرشاد ترابی

  • مدیر تالار
  • Hero Member
  • **
  • تشکر
  • -اهدا شده: 204
  • -دریافت شده: 474
  • ارسال: 1,779
    • ديدن مشخصات
سلام دوستان

به فایل پیوست دقت کنید! در این فایل یک ماکرو نوشته شده که در اون قراره یک آرگومان دریافت بشه.
این آرگومان میتونه دارای شکست خط یا حتی خط خالی به عنوان پاراگراف باشه.
حالا باید بین خطوط بگرده و طولانی‌ترین خط را پیدا کنه و پهنای یک parbox را برابر با آن قرار بده.

ولی وقتی برنامه اجرا میشه، خطوط شکست را صرف نظر می‌کنه و طول به دست آمده صحیح نیست.
راه حل چیه؟

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

  • Administrator
  • Hero Member
  • *****
  • تشکر
  • -اهدا شده: 452
  • -دریافت شده: 718
  • ارسال: 2,107
    • ديدن مشخصات
    • http://www.damanafshan.ir
اگر درست منظورتون رو متوجه شده باشم، کد پایین، مشکل‌تون رو حل نمی‌کنه؟
اگر نه، می‌شه بیشتر توضیح بدین؟
\documentclass[10pt]{article}
\usepackage{lipsum}
\newcommand{\Class}[1]
{
\par\noindent\fbox{\begin{tabular}{l}
 #1
\end{tabular}}\par
}
\begin{document}
\lipsum[1]
\Class
{double Width \\
 double Height this is some text\\
 double Perimeter\\
 double Area\\
}
\lipsum[1]
\end{document}

آفلاین فرشاد ترابی

  • مدیر تالار
  • Hero Member
  • **
  • تشکر
  • -اهدا شده: 204
  • -دریافت شده: 474
  • ارسال: 1,779
    • ديدن مشخصات
نه این مشکل را حل نمیکنه چون وقتی مثل کد زیر برای فونت  آرگومان از دستور \texttt استفاده می‌شه، دیگه شکست خط توش خطا می‌ده.
برنامه زیر را پردازش کنید:

\documentclass[10pt]{article}
\usepackage{lipsum}
\newcommand{\Class}[1]
{
\par\noindent\fbox{\begin{tabular}{l}
\texttt{ #1}
\end{tabular}}\par
}
\begin{document}
\lipsum[1]
\Class
{double Width \\
 double Height this is some text\\
 double Perimeter\\
 double Area\\
}
\lipsum[1]
\end{document}


آفلاین فرشاد ترابی

  • مدیر تالار
  • Hero Member
  • **
  • تشکر
  • -اهدا شده: 204
  • -دریافت شده: 474
  • ارسال: 1,779
    • ديدن مشخصات
راه حلش رو پیدا کردم. از ترکیب کاری که شما کردید با کاری که خودم کردم. به اینصورت

\sbox{\myboxxx}{\begin{tabular}{l}#1\end{tabular}}
\fbox{\parbox{\wd\myboxxx}{\lr{\texttt{#1}}}}

البته احتمال بسیار زیاد راه حل های بهتر هم داره ولی این هم کار می‌کنه.

آفلاین vafa

  • مشاور
  • Hero Member
  • *
  • تشکر
  • -اهدا شده: 78
  • -دریافت شده: 2012
  • ارسال: 4,429
    • ديدن مشخصات
یک مثال، بدون استفاده از محیط tabular اما با استفاده از بسته varwidth و محیط varwidth. همچنین در این نمونه به جای دستور، محیط تعریف کردم که برای متنهای طولانی، کارایی بهتری دارد:
\documentclass{article}
\usepackage{varwidth}
\makeatletter
\newsavebox\mybox
\newenvironment{myfbox}{%
\begin{lrbox}{\mybox}%
\begin{varwidth}{\linewidth}
}{%
\end{varwidth}
\end{lrbox}%
\vskip10pt
\noindent
\fbox{\usebox\mybox}%
\vskip10pt
}
\makeatother
\begin{document}
\begin{myfbox}
This is the first test\\
This is the second test\\
This is the third test which is much longer
\end{myfbox}
\end{document}
« آخرين ويرايش: فوریه 18, 2013, 06:28:59 pm توسط وفا خلیقی »

آفلاین vafa

  • مشاور
  • Hero Member
  • *
  • تشکر
  • -اهدا شده: 78
  • -دریافت شده: 2012
  • ارسال: 4,429
    • ديدن مشخصات
سلام دوستان

به فایل پیوست دقت کنید! در این فایل یک ماکرو نوشته شده که در اون قراره یک آرگومان دریافت بشه.
این آرگومان میتونه دارای شکست خط یا حتی خط خالی به عنوان پاراگراف باشه.
حالا باید بین خطوط بگرده و طولانی‌ترین خط را پیدا کنه و پهنای یک parbox را برابر با آن قرار بده.

ولی وقتی برنامه اجرا میشه، خطوط شکست را صرف نظر می‌کنه و طول به دست آمده صحیح نیست.
راه حل چیه؟
به این خاطر که شما از \sbox استفاده کردید که برای کادرهای افقی کاربرد دارد نه برای کادرهای عمودی.

 

ایجاد لیست های طولانی در بیش از یک اسلاید

نویسنده e.roknabadiانجمن سبک نوشتار

پاسخ ها: 4
مشاهده: 4926
آخرين ارسال اكتبر 17, 2009, 11:01:35 am
توسط vafa
فرمول‌های طولانی

نویسنده sunانجمن باگ‌های نسخه ۱.۰.۴

پاسخ ها: 2
مشاهده: 5148
آخرين ارسال دسامبر 16, 2009, 10:29:08 am
توسط sun
آدرسهای طولانی

نویسنده sunانجمن باگ‌های نسخه ۱.۰.۴

پاسخ ها: 5
مشاهده: 5037
آخرين ارسال دسامبر 26, 2009, 04:46:28 pm
توسط امیرمسعود
چطور همه ی خطوط یک پاراگراف به جز اولی را کمی داخل تر بنویسم؟

نویسنده ir1979انجمن انجمن تازه‌کاران

پاسخ ها: 11
مشاهده: 5378
آخرين ارسال مه 20, 2010, 11:07:42 am
توسط شهاب
مناسب‌ترین بسته برای رسم اشکال مختلف در مقالات

نویسنده amirjadidiانجمن گرافیک، جدول و شکل

پاسخ ها: 2
مشاهده: 4646
آخرين ارسال مه 23, 2010, 05:32:57 pm
توسط محمود امین‌طوسی
بزرگ کردن سایز همه فرمول‌ها

نویسنده vnikoofardانجمن ریاضیات و علوم

پاسخ ها: 13
مشاهده: 11079
آخرين ارسال سپتامبر 25, 2012, 03:07:47 pm
توسط ali_da
اشکال در زیرنویس‌های طولانی

نویسنده kei2eانجمن حروف‌چینی مستندات

پاسخ ها: 7
مشاهده: 4077
آخرين ارسال اوت 08, 2010, 12:58:14 pm
توسط وفا خلیقی
تغییر دادن سایز قلم زیر بخشها و زیر زیر بخشها

نویسنده khanumBAHARانجمن انجمن تازه‌کاران

پاسخ ها: 4
مشاهده: 4390
آخرين ارسال نوامبر 13, 2010, 11:59:44 pm
توسط هادی صفی‌اقدم