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

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

به هم ریختگی عنوان listings

نویسنده alimaximum, جولای 16, 2014, 02:20:09 بعد از ظهر

« قبلی - بعدی »

alimaximum

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

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

محیط LTR رو به داخل محیط listing منتقل کنین.

alimaximum

من هر کار کردم نشد.
میشه داخل همون فایل تغییر بدید تا بهتر متوجه شم.

alimaximum


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

نقل قول از: alimaximum در جولای 16, 2014, 06:22:58 بعد از ظهر
من هر کار کردم نشد.
میشه داخل همون فایل تغییر بدید تا بهتر متوجه شم.
توضیحم خیلی واضح بود و وقت و دسترسی نداتشم توی فایل برای مشا انجام بدم متاسفانه.
نقل قول از: alimaximum در جولای 18, 2014, 01:09:57 بعد از ظهر
خودم راه حلشو پیدا کردم ممنون
خب راه حلشو بگین بقیه هم استفاده کننن! اینجا تالار گفتگوی آموزشی هست :)

alimaximum

#5
باید این کد رو هم اضافه کنیم :
\makeatletter
\renewcommand\lstlistingname{\if@RTLmain برنامه\else Listings\fi}
\long\def\@makecaption#1#2{%
   \vskip\abovecaptionskip
   \sbox\@tempboxa{#1: #2}%
   \ifdim \wd\@tempboxa >\hsize
     \if@RTLmain\beginR\fi#1: #2\if@RTLmain\endR\fi\par
   \else
     \global \@minipagefalse
     \hb@xt@\hsize{\if@RTLmain\beginR\fi\hfil\box\@tempboxa\hfil\if@RTLmain\endR\fi}%
   \fi
   \vskip\belowcaptionskip}%
\makeatother


توی فایل گذاشتم نمونشو.

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

منظور من این بود که به این صورت بشه:

\begin{listings}
\begin{LTR}
... write code here....
\end{LTR}
\end{listings}

خیلی ممنون. اینو از کجا پیدا کردین؟

محمود امین‌طوسی

#7
نقل قول از: هادی صفی‌اقدم در جولای 18, 2014, 02:25:07 بعد از ظهر
منظور من این بود که به این صورت بشه:

\begin{listings}
\begin{LTR}
... write code here....
\end{LTR}
\end{listings}

آقا هادی روش شما اشتباه است چرا که دستورات داخل این محیط مستقیما به خروجی برده می‌شوند و لذا محیط LTR در داخل آن عمل نخواهد کرد.
نقل قول از: هادی صفی‌اقدم در جولای 18, 2014, 02:25:07 بعد از ظهر
خیلی ممنون. اینو از کجا پیدا کردین؟
به کدهای آقای کارن‌پهلو می‌ماند.
در واقع مشکل اصلی به این دلیل بوجود می‌آمد که محیط لیستینگ را داخل محیطهای چپ‌چین قرار میدهیم.

ضمنا در نسخه زی‌پرشینی که من دارم دستور تعریف معادل برای lstlistingname در کد اصلی زی‌پرشین ایراد دارد و خطا می‌گیرد که برای کارهای خودم آنرا در ابتدای سند خودم اصلاح می‌کردم. رفع این اشکال هم در کد داده شده هست:
نقل قول از: alimaximum در جولای 18, 2014, 01:57:11 بعد از ظهر
باید این کد رو هم اضافه کنیم :
\makeatletter
\renewcommand\lstlistingname{\if@RTLmain برنامه\else Listings\fi}
\makeatothe

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

قبل از اطلاع از شیوه‌ای که ایشان ارائه کردند من برای حل مشکل از captionof استفاده می‌کردم.
مثال پیوست هم راه حل قبلی من و هم راه حل درست جدید را به همراه مثالهایی با شماره خط فارسی و لاتین و عنوان در بالا و پایین نشان می‌دهد.
دقت فرمایید که تعویض قلم سند و استیل کد خروجی را تحت تاثیر قرار خواهد داد.
حضرت علی (علیه السلام):دوستی و محبت را از دل بپرسید، چرا که دلها گواهانی رشوه ناپذیرند.
‎کمک مالی به پارسی‌لاتک‎

alimaximum

نقل قول از: هادی صفی‌اقدم در جولای 18, 2014, 02:25:07 بعد از ظهر
منظور من این بود که به این صورت بشه:

\begin{listings}
\begin{LTR}
... write code here....
\end{LTR}
\end{listings}

خیلی ممنون. اینو از کجا پیدا کردین؟

اینو از داخل یکی از مثالها پیدا کردم.
نمیدونم کوتاهتر از این هم هست یا نه.
ولی روش شما همونطور که آقای امین طوسی گفتن جواب نداد.

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

روشی که گفتن حتما اصولی‌تر هست که دکتر کارن‌پهلو گفتنش.
ولی من فایل شما رو با اون روش خودم اجرا گرفتم و خروجی داد رو به‌همراه فایل log ضمیمه کردم.

محمود امین‌طوسی

نقل قول از: هادی صفی‌اقدم در جولای 18, 2014, 05:17:17 بعد از ظهر
ولی من فایل شما رو با اون روش خودم اجرا گرفتم و خروجی داد رو به‌همراه فایل log ضمیمه کردم.
آقا هادی نمی‌دانم چرا روش شما خطا نمی‌دهد! به همین دلیل پست قبلی خودم را ویرایش کردم.
ولی روش شما خروجی درست نمی‌دهد. اصلا هیچ کدی نمایش داده نمی‌شود.
حضرت علی (علیه السلام):دوستی و محبت را از دل بپرسید، چرا که دلها گواهانی رشوه ناپذیرند.
‎کمک مالی به پارسی‌لاتک‎

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

نقل قول از: محمود امین‌طوسی در جولای 18, 2014, 06:32:33 بعد از ظهر
آقا هادی نمی‌دانم چرا روش شما خطا نمی‌دهد! به همین دلیل پست قبلی خودم را ویرایش کردم.
ولی روش شما خروجی درست نمی‌دهد. اصلا هیچ کدی نمایش داده نمی‌شود.
ممنون باری تست این روش.
من فایل شما را اجرا گرفتم و خروجی که کدها هم دیده میشن و فایل log رو ضمیمه کردم.
البته فایل IRzar رو نداشتم الان و غیرفعالش کردم. نکنه بخاطر اینه که کدی دیده نمیشه؟ میشه فونت لاتین برای فایل تعیین کنین و نتجیه رو بفرمایین بیزحمت؟

vafa

نقل قول از: alimaximum در جولای 16, 2014, 02:20:09 بعد از ظهر
سلام
من هر کاری میکنم نمیتونم به هم ریختگی عنوان کد ها رو درستش کنم. چطوری باید این مشکلو حل کنم.
تو فایل توضیح دادم.
از نسخه 14.1 بسته xepersian و نسخه 15.1 بسته bidi استفاده کن. در این نسخه امکاناتی برای جهت حروف‌چینی caption به بسته listings اضافه شده. من فایل خودت رو بر مبنای نسخه‌های جدید تغییر دادم. برای توضیحات بیشتر قسمت 2.4 بسته bidi یعنی قسمت The listings package رو بخون. کدی که قرار دادی، کامل نیست. حروف‌چینی متن caption دو قسمت داره:

۱) اگر این متن کمتر از \textwidth هست.
۲) اگر این متن بیشتر از \textwidth هست.

کد شما تنها مورد ۱ رو انجام میده و ۲ رو انجام نمیده. بنابراین بهتره از امکانات \ بسته bidi استفاده کنید. اگر تک‌لایو خودت رو طی دو سه روز آینده بروز کنی، می‌تونی از این امانات استفاده کنی.