سلام
من هر کاری میکنم نمیتونم به هم ریختگی عنوان کد ها رو درستش کنم. چطوری باید این مشکلو حل کنم.
تو فایل توضیح دادم.
محیط LTR رو به داخل محیط listing منتقل کنین.
من هر کار کردم نشد.
میشه داخل همون فایل تغییر بدید تا بهتر متوجه شم.
خودم راه حلشو پیدا کردم ممنون
نقل قول از: alimaximum در جولای 16, 2014, 06:22:58 بعد از ظهر
من هر کار کردم نشد.
میشه داخل همون فایل تغییر بدید تا بهتر متوجه شم.
توضیحم خیلی واضح بود و وقت و دسترسی نداتشم توی فایل برای مشا انجام بدم متاسفانه.
نقل قول از: alimaximum در جولای 18, 2014, 01:09:57 بعد از ظهر
خودم راه حلشو پیدا کردم ممنون
خب راه حلشو بگین بقیه هم استفاده کننن! اینجا تالار گفتگوی آموزشی هست :)
باید این کد رو هم اضافه کنیم :
\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}
خیلی ممنون. اینو از کجا پیدا کردین؟
نقل قول از: هادی صفیاقدم در جولای 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 استفاده میکردم.
مثال پیوست هم راه حل قبلی من و هم راه حل درست جدید را به همراه مثالهایی با شماره خط فارسی و لاتین و عنوان در بالا و پایین نشان میدهد.
دقت فرمایید که تعویض قلم سند و استیل کد خروجی را تحت تاثیر قرار خواهد داد.
نقل قول از: هادی صفیاقدم در جولای 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 رو نداشتم الان و غیرفعالش کردم. نکنه بخاطر اینه که کدی دیده نمیشه؟ میشه فونت لاتین برای فایل تعیین کنین و نتجیه رو بفرمایین بیزحمت؟
نقل قول از: alimaximum در جولای 16, 2014, 02:20:09 بعد از ظهر
سلام
من هر کاری میکنم نمیتونم به هم ریختگی عنوان کد ها رو درستش کنم. چطوری باید این مشکلو حل کنم.
تو فایل توضیح دادم.
از نسخه 14.1 بسته xepersian و نسخه 15.1 بسته bidi استفاده کن. در این نسخه امکاناتی برای جهت حروفچینی caption به بسته listings اضافه شده. من فایل خودت رو بر مبنای نسخههای جدید تغییر دادم. برای توضیحات بیشتر قسمت 2.4 بسته bidi یعنی قسمت The listings package رو بخون. کدی که قرار دادی، کامل نیست. حروفچینی متن caption دو قسمت داره:
۱) اگر این متن کمتر از \textwidth هست.
۲) اگر این متن بیشتر از \textwidth هست.
کد شما تنها مورد ۱ رو انجام میده و ۲ رو انجام نمیده. بنابراین بهتره از امکانات \ بسته bidi استفاده کنید. اگر تکلایو خودت رو طی دو سه روز آینده بروز کنی، میتونی از این امانات استفاده کنی.