اولین بار است که به اینجا می‌آیید؟ راهنمای سایت را بخوانید!
+1 رای
4.6k بازدید

در ایجاد رزومه به زبان انگلیسی با moderncv مشکلی ندارم، اما می‌خواهم رزومه‌ای انگلیسی داشته باشم و تالیفات به زبان فارسی را به همان زبان فارسی در رزومه داشته باشم. به این منظور باید از محیط RTLbibitems بسته bidi استفاده کنم.
اما وقتی در یک سند ساده بسته bidi را فراخوانی می‌کنم با خطای عدم رعایت ترتیب بارگزاری مواجه می‌شوم، با اینکه هیچ بسته‌ای بعد از Bidi فراخوانی نکرده‌ام:

! Package bidi Error: Oops! you have loaded package hyperref after bidi package
. Please load package hyperref before bidi package, and then try to run xelatex
 on your document again.

مثال کمینه به صورت زیر است:

% !TEX TS-program = XeLaTeX
%\PassOptionsToPackage{urlcolor=link-text, colorlinks=true, linkcolor=link-text, setpagesize=false, pdfpagemode=FullScreen}{hyperref}
\documentclass[10pt,a4paper]{moderncv}
\moderncvstyle{casual} 
\moderncvcolor{blue} 

\usepackage{bidi}

\firstname{Mahmood}
\familyname{Amintoosi}
\title{Resume}
\address{ Hakim Sabzevari University, Sabzevār, Iran}   
                                                          
\begin{document}
\maketitle

\section{Education}
\cventry{1990-1994}{B.Sc.}{Ferdowsi University of Mashhad}{Mashhad}{Iran}{Mathematics (with Computer specialization)}  
\cventry{1995-1998}{M.Sc.}{Ferdowsi University of Mashhad}{Mashhad}{Iran}{Computer Engineering (Software)}  
\cventry{2006-2011}{Ph.D.}{Iran University of Science and Technology}{Tehran}{Iran}{Computer Engineering (Artificial Intelligence), Image Proccessing}  

\end{document}

سعی کردم با PassOptionsToPackage مشکل را برطرف کنم ولی نشد.
مشکل و روش رفع آن چیست؟

2 پاسخ

+2 رای
 
بهترین پاسخ

در اینجا دو مشکل وجود دارد:

۱) کلاس moderncv بسته hyperref را خیلی دیر فراخوانی می‌کند.
۲) از آنجایی که بسته bidi و بخصوص تغییراتی که این بسته در بسته hyperref می‌دهد انتظار دارد که دستور \maketitle نسخه استاندارد باشد، نه نسخه‌ای که بسته hyperref آن را بازتعریف کرده است زیرا که هنگامی که فایل hyperref-xetex-bidi.def فراخوانی می‌شود، خودش \maketitle را بصورتی که باید توسط بسته hyperref بازتعریف شود، بازتعریف می‌کند و در اینجا دوبار این کار انجام می‌شود: یک بار بسته hyperref این کار را می‌کند و بار دیگر فایل hyperref-xetex-bidi.def که باعث خطای زیر خواهد شد:

./test.tex:19: TeX capacity exceeded, sorry [input stack size=5000].
\@ifnextchar #1#2#3->\let \reserved@d =#1
                                         \def \reserved@a {#2}\def \reserved...
l.19 

با امکاناتی که بسته biditools در اختیار قرار می‌دهد، حل هر دو مشکل بسیار ساده است اما متأسفانه فهمیدن منبع مشکل مقداری زمان گرفت:

\RequirePackage{biditools}
\makeatletter
\bidi@BeforePackage{hyperref}{\let\orig@maketitle\maketitle}
\bidi@AfterAtEndOfPackage{hyperref}{\let\maketitle\orig@maketitle\usepackage{bidi}}
\makeatother
\documentclass[10pt,a4paper]{moderncv}
\moderncvstyle{casual} 
\moderncvcolor{blue} 



\firstname{Mahmood}
\familyname{Amintoosi}
\title{Resume}
\address{ Hakim Sabzevari University, Sabzevār, Iran}   

\begin{document}
\maketitle

\section{Education}
\cventry{1990-1994}{B.Sc.}{Ferdowsi University of Mashhad}{Mashhad}{Iran}{Mathematics (with Computer specialization)}  
\cventry{1995-1998}{M.Sc.}{Ferdowsi University of Mashhad}{Mashhad}{Iran}{Computer Engineering (Software)}  
\cventry{2006-2011}{Ph.D.}{Iran University of Science and Technology}{Tehran}{Iran}{Computer Engineering (Artificial Intelligence), Image Proccessing}  

\end{document}
از وقتی که گذاشتید و پاسخ شما بسیار بسیار ممنونم.
توسط (3.8k امتیاز)
@جناب وفای عزیز
ممنون از صبح درگیر آن شده بودم و در همان نقطه‌ای که شما فرمودید متوقف شده بودم و حتی به ذهنم رسید که سایز پشته تک را نیز تغییر دهم که آن نیز مساله را حل نکرد!.
ممنون
توسط (4.4k امتیاز)
جناب آقای رضویان از توجه شما هم بسیار ممنونم. فایل اصلی من با صرفنظر کردن از خطا اجرا می‌شد، اما قصد دارم آنرا به دیگر همکاران بدهم و دوست نداشتم که خطا داشته باشد.
توسط (3.8k امتیاز)
+2 رای

طراح استایل moderncv آمده دقیقاً قبل از شروع سند با کمک دستور ‍‍\AtEndPreamble بسته hyperref و البته یکی دو تا بسته دیگر را لود کرده است و مشکل از همین ناشی می‌شود. برای رفع مشکل کد زیر را دقیقاً قبل شروع سند قرار دهید؛ یعنی خط بلافاصله بعدی خطوط زیر باید که \begin{document} باشد.

\makeatletter
\@ifpackageloaded{hyperref}{\usepackage{bidi}}{}
\makeatother

گمان کنم که بعد از این را خودتان بهتر می‌دانید. :دی

بسیار ممنونم.
۱- با روشی که اشاره فرمودید، فراخوانی قبلی بسته bidi‌ در کد فوق هم باید حذف شود. که در صورت صلاحدید به پاسخ خود اضافه فرمایید.
۲- حدسم این بود که ممکن است آقا وفا یا شما راه حلی مبتنی بر biditools داشته باشید. این دستور ifpackageloaded مربوط به biditools است؟
توسط (3.8k امتیاز)
متأسفانه با کد شما اصلاً بسته bidi فراخوانی نمی‌شود زیرا که دستور \AtEndPreamble محتوایش را آخر پیش‌درآمد (preamble) و قبل از خوانده شدن فایل aux اصلی قرار می‌دهد. این محتوا قبل از \AtBeginDocument قرار داده می‌شود. اگر هم بعد از \begin{document} کدتان را قرار دهید، خطا خواهید گرفت به این خاطر که دستور \usepackage بعد از \begin{document} مجاز نیست.
توسط (25.0k امتیاز)
بله درست می‌فرمایید. دیشب فقط مثال کوچک قبلی را امتحان کردم و با روش آقای رضویان خطای مورد اشاره در پرسش صادر نمی‌شد.
چند دقیقه پیش در مثال از دستور LTRbibitems استفاده کردم و خطا داد! ظاهرا همان‌گونه که می‌فرمایید بسته bidi فراخوانی نمی‌شود.
توسط (3.8k امتیاز)
پرسیدن سوال
وب‌سایت پرسش و پاسخ پارسی‌لاتک جایی برای پرسش و پاسخ درباره سیستم حروف‌چینی لاتک و بسته زی‌پرشین است. در اینجا می‌توانید سوال‌های خود را بپرسید و به سوال‌های دیگران پاسخ دهید.

7.1k پرسش

6.6k پاسخ

23.5k نظر

7.3k کاربر

محبوب‌ترین برچسب‌ها

رفع خطا جدول xepersian مراجع ریاضی‌نویسی شکل bidi فونت فهرست مطالب شماره‌گذاری منابع پانویس بیب‌تک tikz تک‌لایو parsilatex بیمر اسلاید زی‌پرشین پاورقی bibtex سربرگ نماد رسم شکل فرمول‌نویسی ارجاع‌دهی biditexmaker هدر ویرایشگر قالب beamer واژه‌نامه اندازه فونت texstudio عنوان فصل ماتریس اعمال نشدن تغییرات در پی‌دی‌اف رسم جدول شماره صفحه bidipresentation حاشیه رنگ عنوان شکل اسلاید فارسی محیط قضیه گراف مکان شکل tikzpicture enumerate حروف‌چینی کد شماره فصل tabriz_thesis نمایه align زیرنویس شکل کادر itemize فهرست اشکال الگوریتم عدم اجرا listings نیم‌فاصله متن لاتین و فارسی بسته فاصله بین خطوط قالب پایان‌نامه فرمول نصب تک‌لایو فارسی‌تک hyperref شماره فرمول glossaries کپشن نمودار خروجی لاتک حروف‌چینی چندستونی فونت فارسی و انگلیسی ماکرونویسی biditools شماره پاورقی پیوست‌ سوال امتحانی فاصله‌گذاری فرمول چندضابطه‌ای extrafootnotefeatures subfigure biditufte-book header texmaker pdf خطا tex longtable تصویر شمارنده زیرنویس texlive2015 دیاگرام رسم نمودار شماره‌گذاری صفحات پایان نامه فهرست جداول میک‌تک texlive2016 تنظیم جدول آکولاد شعر kashida بولد تورفتگی texworks caption اندیس اعداد فارسی lollipop iust-thesis multicol فصل‌نویسی سوال چهارگزینه‌ای فاصله عمودی pgfplots xindy چپ‌چینی اوبونتو میکروسافت ورد قاب geometry xelatex texlive fancyhdr وسط‌چینی تک لایو 2015 tcolorbox عنوان بخش شماره گذاری به‌روزرسانی بسته aimc46 صفر توخالی فرمول طولانی بیرون‌زدگی کاما پوستر فاصله سطرها نوشتافت شکست خط tex-programming فونت اعداد قرآن tabriz-thesis
...