اولین بار است که به اینجا می‌آیید؟ راهنمای سایت را بخوانید!
Close Sidebar
وب‌سایت پرسش و پاسخ پارسی‌لاتک جایی برای پرسش و پاسخ درباره سیستم حروف‌چینی لاتک و بسته زی‌پرشین است. در اینجا می‌توانید سوال‌های خود را بپرسید و به سوال‌های دیگران پاسخ دهید.

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

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

خطای فراخوانی بسته hyperref قبل از bidi‌ در moderncv

+1 رای
3,293 بازدید

در ایجاد رزومه به زبان انگلیسی با 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 مشکل را برطرف کنم ولی نشد.
مشکل و روش رفع آن چیست؟

سوال شده آبان 4, 1394 توسط محمود امین‌طوسی (3,818 امتیاز)
برچسب گذاری دوباره آبان 6, 1394 توسط وحید دامن‌افشان

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

(/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.
آقای رضویان لطفاً پاسخ ویرایش‌شده من و نکته ۲ را ببینید.

آقای امین‌طوسی من پاسخم را ویرایش کردم. الان نباید مشکلی داشته باشید.
از وقتی که گذاشتید و پاسخ شما بسیار بسیار ممنونم.
@جناب وفای عزیز
ممنون از صبح درگیر آن شده بودم و در همان نقطه‌ای که شما فرمودید متوقف شده بودم و حتی به ذهنم رسید که سایز پشته تک را نیز تغییر دهم که آن نیز مساله را حل نکرد!.
ممنون
جناب آقای رضویان از توجه شما هم بسیار ممنونم. فایل اصلی من با صرفنظر کردن از خطا اجرا می‌شد، اما قصد دارم آنرا به دیگر همکاران بدهم و دوست نداشتم که خطا داشته باشد.
+2 رای

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

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

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

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