اولین بار است که به اینجا می‌آیید؟ راهنمای سایت را بخوانید!
+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}
با این روش هم اگر محیط LTRbibitems را استفاده کنم شناخته شده نیست:
LaTeX Error: Environment LTRbibitems undefined
ممکن است بفرمایید اشکال از کجاست؟
البته قصد اصلی من استفاده از RTLbibitems است اما برای اینکه فعلا در یک مثال کمینه انگلیسی درگیر متن فارسی هم نباشیم، محیط LTRbibitems را امتحان کردم.
توسط (3.8k امتیاز)
احتمالاً به این خاطر که در اینجا هم بسته bidi فراخوانی نمی‌شود. هر زمان به نتیجه رسیدم، پاسخم را بروز می‌کنم.
توسط (25.1k امتیاز)
سپاس‌گزارم.
توسط (3.8k امتیاز)
@دکتر وفا
هر گونه hook را از بسته‌های مختلف هم تست می‌کنم باز نتیجه همین است!
فقط یک سوال؟
اگر
\AtEndPreamble{
\hypersetup{pdftitle={Your New Title}}
}
را قبل از شروع سند استفاده کنیم مشکلی نیست و جواب می‌دهد اما اگر از همین برای لود بسته بی‌دی استفاده کنیم با خطای
! TeX capacity exceeded, sorry [input stack size=5000]
مواجه می‌شویم! البته این اتفاق برای بسته‌های دیگر نمی‌افتد و بدون مشکل لود می‌شوند؟!
توسط (4.4k امتیاز)
البته با این روش ظاهراً بازهم یک تعدادی بسته بعد از بی‌دی لود می‌شود! به طور دقیق‌تر پیام زیر نمایش داده می‌شود:

(/usr/local/texlive/2015/texmf-dist/tex/xelatex/bidi/loadingorder-xetex-bidi.de
f)) (./test.aux) (/usr/local/texlive/2015/texmf-dist/tex/latex/tipa/t3cmr.fd)
(/usr/local/texlive/2015/texmf-dist/tex/latex/microtype/mt-cmr.cfg)
(/usr/local/texlive/2015/texmf-dist/tex/latex/hyperref/nameref.sty
(/usr/local/texlive/2015/texmf-dist/tex/generic/oberdiek/gettitlestring.sty))
(./test.out) (./test.out)

Package hyperref Warning: Rerun to get /PageLabels entry.

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

No pages of output.
Transcript written on test.log.
توسط (4.4k امتیاز)
آقای رضویان لطفاً پاسخ ویرایش‌شده من و نکته ۲ را ببینید.

آقای امین‌طوسی من پاسخم را ویرایش کردم. الان نباید مشکلی داشته باشید.
توسط (25.1k امتیاز)
از وقتی که گذاشتید و پاسخ شما بسیار بسیار ممنونم.
توسط (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.1k امتیاز)
بله درست می‌فرمایید. دیشب فقط مثال کوچک قبلی را امتحان کردم و با روش آقای رضویان خطای مورد اشاره در پرسش صادر نمی‌شد.
چند دقیقه پیش در مثال از دستور LTRbibitems استفاده کردم و خطا داد! ظاهرا همان‌گونه که می‌فرمایید بسته bidi فراخوانی نمی‌شود.
توسط (3.8k امتیاز)
پرسیدن سوال
وب‌سایت پرسش و پاسخ پارسی‌لاتک جایی برای پرسش و پاسخ درباره سیستم حروف‌چینی لاتک و بسته زی‌پرشین است. در اینجا می‌توانید سوال‌های خود را بپرسید و به سوال‌های دیگران پاسخ دهید.

7.1k پرسش

6.6k پاسخ

23.5k نظر

7.5k کاربر

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

رفع خطا جدول 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
...