تالار گفتگوی پارسیلاتک
لاتک LATEX => طراحی صفحه => نويسنده: alimaximum در ژوئیه 16, 2014, 02:20:09 pm
-
سلام
من هر کاری میکنم نمیتونم به هم ریختگی عنوان کد ها رو درستش کنم. چطوری باید این مشکلو حل کنم.
تو فایل توضیح دادم.
-
محیط LTR رو به داخل محیط listing منتقل کنین.
-
من هر کار کردم نشد.
میشه داخل همون فایل تغییر بدید تا بهتر متوجه شم.
-
خودم راه حلشو پیدا کردم ممنون
-
من هر کار کردم نشد.
میشه داخل همون فایل تغییر بدید تا بهتر متوجه شم.
توضیحم خیلی واضح بود و وقت و دسترسی نداتشم توی فایل برای مشا انجام بدم متاسفانه.
خودم راه حلشو پیدا کردم ممنون
خب راه حلشو بگین بقیه هم استفاده کننن! اینجا تالار گفتگوی آموزشی هست :)
-
باید این کد رو هم اضافه کنیم :
\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}
خیلی ممنون. اینو از کجا پیدا کردین؟
-
منظور من این بود که به این صورت بشه:
\begin{listings}
\begin{LTR}
... write code here....
\end{LTR}
\end{listings}
آقا هادی روش شما اشتباه است چرا که دستورات داخل این محیط مستقیما به خروجی برده میشوند و لذا محیط LTR در داخل آن عمل نخواهد کرد.
خیلی ممنون. اینو از کجا پیدا کردین؟
به کدهای آقای کارنپهلو میماند.
در واقع مشکل اصلی به این دلیل بوجود میآمد که محیط لیستینگ را داخل محیطهای چپچین قرار میدهیم.
ضمنا در نسخه زیپرشینی که من دارم دستور تعریف معادل برای lstlistingname در کد اصلی زیپرشین ایراد دارد و خطا میگیرد که برای کارهای خودم آنرا در ابتدای سند خودم اصلاح میکردم. رفع این اشکال هم در کد داده شده هست:
باید این کد رو هم اضافه کنیم :
\makeatletter
\renewcommand\lstlistingname{\if@RTLmain برنامه\else Listings\fi}
\makeatothe
و نمیدانم که آیا این مشکل در نسخههای جدید زیپرشین برطرف شده است یا خیر. دوستانی که از نسخههایی از زیپرشین استفاده میکنند که این دستورش مشکل دارد، دستور فوق را بعد از فراخوانی بسته زیپرشین قرار دهند تا مشکلشان برطرف شود.
قبل از اطلاع از شیوهای که ایشان ارائه کردند من برای حل مشکل از captionof استفاده میکردم.
مثال پیوست هم راه حل قبلی من و هم راه حل درست جدید را به همراه مثالهایی با شماره خط فارسی و لاتین و عنوان در بالا و پایین نشان میدهد.
دقت فرمایید که تعویض قلم سند و استیل کد خروجی را تحت تاثیر قرار خواهد داد.
-
منظور من این بود که به این صورت بشه:
\begin{listings}
\begin{LTR}
... write code here....
\end{LTR}
\end{listings}
خیلی ممنون. اینو از کجا پیدا کردین؟
اینو از داخل یکی از مثالها پیدا کردم.
نمیدونم کوتاهتر از این هم هست یا نه.
ولی روش شما همونطور که آقای امین طوسی گفتن جواب نداد.
-
روشی که گفتن حتما اصولیتر هست که دکتر کارنپهلو گفتنش.
ولی من فایل شما رو با اون روش خودم اجرا گرفتم و خروجی داد رو بههمراه فایل log ضمیمه کردم.
-
ولی من فایل شما رو با اون روش خودم اجرا گرفتم و خروجی داد رو بههمراه فایل log ضمیمه کردم.
آقا هادی نمیدانم چرا روش شما خطا نمیدهد! به همین دلیل پست قبلی خودم را ویرایش کردم.
ولی روش شما خروجی درست نمیدهد. اصلا هیچ کدی نمایش داده نمیشود.
-
آقا هادی نمیدانم چرا روش شما خطا نمیدهد! به همین دلیل پست قبلی خودم را ویرایش کردم.
ولی روش شما خروجی درست نمیدهد. اصلا هیچ کدی نمایش داده نمیشود.
ممنون باری تست این روش.
من فایل شما را اجرا گرفتم و خروجی که کدها هم دیده میشن و فایل log رو ضمیمه کردم.
البته فایل IRzar رو نداشتم الان و غیرفعالش کردم. نکنه بخاطر اینه که کدی دیده نمیشه؟ میشه فونت لاتین برای فایل تعیین کنین و نتجیه رو بفرمایین بیزحمت؟
-
سلام
من هر کاری میکنم نمیتونم به هم ریختگی عنوان کد ها رو درستش کنم. چطوری باید این مشکلو حل کنم.
تو فایل توضیح دادم.
از نسخه 14.1 بسته xepersian و نسخه 15.1 بسته bidi استفاده کن. در این نسخه امکاناتی برای جهت حروفچینی caption به بسته listings اضافه شده. من فایل خودت رو بر مبنای نسخههای جدید تغییر دادم. برای توضیحات بیشتر قسمت 2.4 بسته bidi یعنی قسمت The listings package رو بخون. کدی که قرار دادی، کامل نیست. حروفچینی متن caption دو قسمت داره:
۱) اگر این متن کمتر از \textwidth هست.
۲) اگر این متن بیشتر از \textwidth هست.
کد شما تنها مورد ۱ رو انجام میده و ۲ رو انجام نمیده. بنابراین بهتره از امکانات \ بسته bidi استفاده کنید. اگر تکلایو خودت رو طی دو سه روز آینده بروز کنی، میتونی از این امانات استفاده کنی.