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

سلام

موقع استفاده همزمان از بسته‌های hyperref و apacite زمانی که رفرنس طولانی باشه و بین دو خط شکسته بشه، تمام متن موجود در اون دو خط رنگی و هایپررف میشه، مطالب مرتبط قبلی رو هم بررسی کردم ولی متاسفانه راه حل مناسبی پیدا نکردم.


\documentclass[a4paper,12pt]{report}

\usepackage{graphicx}
\usepackage[pagebackref=false,colorlinks,linkcolor=blue,citecolor=magenta]{hyperref}

\usepackage{amsmath}
\usepackage{siunitx}
\sisetup{group-separator = {,}}
\usepackage{array}
\usepackage{caption}
\usepackage{apacite}	

\usepackage{supertabular}
\usepackage{hhline}
\usepackage{mdframed}
\usepackage{tocbibind}

\usepackage[Kashida]{xepersian}

\settextfont[Scale=1.1]{B Nazanin}

%%%%%%%%%%%		SOLVING     CODES     FOR     \setmathdigitfont		%%%%%%%%%%%
\ExplSyntaxOn
\cs_set_eq:NN
\etex_iffontchar:D
\tex_iffontchar:D
\cs_undefine:N \c_one
\int_const:Nn \c_one { 1 }
\ExplSyntaxOff
%%%%%%%%%%%		SOLVING     CODES     FOR     \setmathdigitfont		%%%%%%%%%%%

\setmathdigitfont{XB Yas}
\settextdigitfont{XB Yas}
\linespread{1.2}
\setlength{\parskip}{0.15cm}

\begin{document}

\tableofcontents
\newpage

\section{مقدمه}

است، پتانسیل بسیار خوبی را برای بهبود اطلاعات در شرایط اضطراری و مدیریت بحران دارد \lr{\cite{rathore2017}}. همچنین اینکه استفاده از شبکه‌های اجتماعی مانند توییتر به هنگام وقوع بحران‌ها و در شرایط اضطراری می‌تواند فرصت‌های بدیعی جهت آگاهی‌بخشی و برانگیختن عموم را در اختیار ‌گذارد که در شیوه‌های سنتی رایج وجود نداشته است \lr{\cite{lachlan2016}}. علاوه بر ظرفیت‌های بیان شده، با توجه به تنوع گسترده محتوای منتشر شده در توییتر، این پلتفرم شبکه اجتماعی به منبع مهمی از داده برای تشخیص شیوع بیماری‌ها و درک نگرش‌ها و رفتارهای عموم مردم به هنگام وقوع بحران‌ها نیز تبدیل شده است\lr{\cite{garcia2021}}. شیوع بیماری کرونا در سطح جهانی (همه‌گیری) از ابتدای سال 2020، پیامدهای ناشی از آن و تبدیل شدن این بحران به اصلی‌ترین چالش پیش روی دولتها، یکی از بارزترین مصادیق این حوزه است، به طوری که همواره سهم قابل توجهی از محتوای منتشر شده توسط نهادهای رسمی، مقامات دولت‌ها، مسئولین حوزه سلامت عمومی، متخصصین و کاربران عادی در توییتر را به خود اختصاص داده است. این محتواها حاوی اطلاعات ارزشمندی است که می‌تواند از زوایای گوناگون مورد مطالعه و بررسی قرار گیرد، اطلاعاتی که به منظور مقابله موثر با بحران کرونا و مدیریت تبعات متعدد آن بسیار کاربردی و ضروری خواهد بود.

\section{بیان مساله}
\section{ضرورت پژوهش}
\section{تشریح و بیان موضوع}
\subsection{ادبیات پژوهش}
\subsection{پیشینه پژوهش}
\section{روش‌شناسی}

%%%%%%%%%%%%%%%%%%%%%%%%%%      CODES    FOR    APA    STYLE      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\setLTRbibitems
\makeatletter
\bidi@AtBeginEnvironment{thebibliography}{\renewcommand{\bibname}{کتاب‌نامه}
    \latinfont}
\makeatother
\bibliographystyle{apacite}
%%%%%%%%%%%%%%%%%%%%%%%%%%      CODES    FOR    APA    STYLE      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\bibliography{MinimumExample01} 

\end{document}

مثالی از هایپررف شدن متن

فایل(های) پیوست:
سلام
این لینک رو ببینین

http://qa.parsilatex.com/6383

یه لینک دیگه هم داره داخلش، اونم اگه ببینین بد نمی‌شه. برای اطلاع، این نظر رو دادم.
توسط (3.3k امتیاز)
این هم ممکنه مفید باشه

http://qa.parsilatex.com/12637/
توسط (3.3k امتیاز)

2 پاسخ

0 رای

سلام


مشکل از استفادهٔ هم‌زمان بسته‌های hyperref و apacite نیست؛ مشکل برمی‌گرده به نحوهٔ عملکرد بستهٔ (x)color (برای اطلاعات بیشتر: این و این لینک رو ببینین). برای رفعش بایستی از بستهٔ xecolor برای رنگ‌کردن استفاده کنین.
در بستهٔ hyperref، از دستور \color برای رنگ‌کردن استفاده می‌شه. می‌تونیم اون رو تغییر بدیم به \xecolor با این کدها:

\makeatletter
\def\HyColor@@@UseColor[#1]#2\@nil{%
	\xecolor[{#1}]{#2}%
}
\def\HyColor@@@@UseColor#1\@nil{%
	\xecolor{#1}%
}
\makeatother

بعد از تغییر، در قسمت مراجع، رنگ‌ها رو از دست می‌دیم! پس درست قبل از ایجاد مراجع، تعریف اولیه رو اعمال می‌کنیم.


کد کامل:

\documentclass[a4paper,12pt]{report}


\usepackage{graphicx}
\usepackage{xecolor} % <--- added
\usepackage[pagebackref=false,colorlinks,linkcolor=blue,citecolor=magenta]{hyperref}

\usepackage{amsmath}
\usepackage{siunitx}
\sisetup{group-separator = {,}}

\usepackage{array}
\usepackage{caption}
\usepackage{apacite}	

\usepackage{supertabular}
\usepackage{hhline}
\usepackage{mdframed}

\usepackage{tocbibind}


\usepackage[Kashida]{xepersian}


\settextfont[Scale=1.1]{B Nazanin}

%%%%%%%%%%		SOLVING     CODES     FOR     \setmathdigitfont		%%%%%%%%%%%
\ExplSyntaxOn
\cs_set_eq:NN
\etex_iffontchar:D
\tex_iffontchar:D
\cs_undefine:N \c_one
\int_const:Nn \c_one { 1 }
\ExplSyntaxOff
%%%%%%%%%%%		SOLVING     CODES     FOR     \setmathdigitfont		%%%%%%%%%%%

\setmathdigitfont{XB Yas}
\settextdigitfont{XB Yas}


\linespread{1.2}
\setlength{\parskip}{0.15cm}
%%%%%%%%%%%% added %%%%%%%%%%%%
\makeatletter
\def\HyColor@@@UseColor[#1]#2\@nil{%
	\xecolor[{#1}]{#2}%
}
\def\HyColor@@@@UseColor#1\@nil{%
	\xecolor{#1}%
}
\makeatother
%%%%%%%%%%%% added %%%%%%%%%%%%
\begin{document}

\tableofcontents
\newpage


\section{مقدمه}

است، پتانسیل بسیار خوبی را برای بهبود اطلاعات در شرایط اضطراری و مدیریت بحران دارد \lr{\cite{rathore2017}}. همچنین اینکه استفاده از شبکه‌های اجتماعی مانند توییتر به هنگام وقوع بحران‌ها و در شرایط اضطراری می‌تواند فرصت‌های بدیعی جهت آگاهی‌بخشی و برانگیختن عموم را در اختیار ‌گذارد که در شیوه‌های سنتی رایج وجود نداشته است \lr{\cite{lachlan2016}}. علاوه بر ظرفیت‌های بیان شده، با توجه به تنوع گسترده محتوای منتشر شده در توییتر، این پلتفرم شبکه اجتماعی به منبع مهمی از داده برای تشخیص شیوع بیماری‌ها و درک نگرش‌ها و رفتارهای عموم مردم به هنگام وقوع بحران‌ها نیز تبدیل شده است\lr{\cite{garcia2021}}. شیوع بیماری کرونا در سطح جهانی (همه‌گیری) از ابتدای سال 2020، پیامدهای ناشی از آن و تبدیل شدن این بحران به اصلی‌ترین چالش پیش روی دولتها، یکی از بارزترین مصادیق این حوزه است، به طوری که همواره سهم قابل توجهی از محتوای منتشر شده توسط نهادهای رسمی، مقامات دولت‌ها، مسئولین حوزه سلامت عمومی، متخصصین و کاربران عادی در توییتر را به خود اختصاص داده است. این محتواها حاوی اطلاعات ارزشمندی است که می‌تواند از زوایای گوناگون مورد مطالعه و بررسی قرار گیرد، اطلاعاتی که به منظور مقابله موثر با بحران کرونا و مدیریت تبعات متعدد آن بسیار کاربردی و ضروری خواهد بود.

\section{بیان مساله}


\section{ضرورت پژوهش}


\section{تشریح و بیان موضوع}

\subsection{ادبیات پژوهش}


\subsection{پیشینه پژوهش}

\section{روش‌شناسی}

%%%%%%%%%%%%%%%%%%%%%%%%%%      CODES    FOR    APA    STYLE      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\setLTRbibitems
\makeatletter
\bidi@AtBeginEnvironment{thebibliography}{\renewcommand{\bibname}{کتاب‌نامه}
    \latinfont}
%%%%%%%%%%%% added %%%%%%%%%%%%
\def\HyColor@@@UseColor[#1]#2\@nil{%
	\color[{#1}]{#2}%
}
\def\HyColor@@@@UseColor#1\@nil{%
	\color{#1}%
}
%%%%%%%%%%%% added %%%%%%%%%%%%
\makeatother
\bibliographystyle{apacite}
%%%%%%%%%%%%%%%%%%%%%%%%%%      CODES    FOR    APA    STYLE      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\bibliography{MinimumExample01} 


\end{document}
بسیار سپاسگزارم جناب میرزاخانی، مشکل رنگی شدن بقیه متن با استفاده از کدهای بسته xecolor برطرف شد، اما هنوز مشکل هایپررف شدن پابرجاست!

+ البته یه مشکل کوچک هم ایجاد شده، اینکه در قسمت فهرست جایی که متن فارسی و لاتین باهم به کار رفته، قسمت فارسی به درستی آبی رنگ باقی مونده ولی قسمت لاتین مشکی شده! همچنین اینکه رنگ شماره مربوط به پانویس‌ها هم از بین رفته.
++ احتمالا با اصلاح مساله هایپررف این موضوع مجدد تکرار بشه.
ویرایش شده توسط
توسط (5 امتیاز)
بله متأسفانه به لینک‌دار باقی‌موندن اون دو خط دقت نکردم بعد از اصلاح رنگ.

در مورد رنگ‌های دیگر قسمت‌ها، ظاهراً xecolor روی متون لاتین تأثیر ندارد! فعلاً تیک پاسخ رو بردارید که اساتید اگه راه‌حلی داشتند، پاسخ بدن؛ ولی تا جایی که یادمه، باید سعی کنین موارد ارجاعی در متن، در یک خط تمام بشن و نشکنن. وقتی شکسته می‌شن این مشکل هم پیش میاد.
باز اگه راه‌حلی پیدا کردم اطلاع می‌دم.
توسط (3.3k امتیاز)
مساله مشکی موندن عبارات لاتین در قسمت فهرست رو تونستم با انتقال کدهای اصلاحی xecolor به بعد از دستور \tableofcontents حل کنم (هر چند نمی‌دونم چقدر این کار اصولیه!)، ولی هنوز برای رنگ شماره پانویس‌ها و لینک‌دار موندن عبارات عادی راهی پیدا نکردم.
در هر صورت سپاس از شما
توسط (5 امتیاز)
یه پیشنهادی دارم. می‌تونین از روی نویسنده‌ها لینک رو بردارید و فقط روی سال بمونه. لزومی نداره روی تمام نویسنده‌ها لینک باشه. اگه خواستین، پاسخ رو بذارم. در ضمن دیگه از xecolor هم نیاز نیست استفاده کنین و رنگ‌ها مشکلی نخواهند داشت.
توسط (3.3k امتیاز)
بی‌زحمت این رو بفرستید امتحان بکنم که چطوری میشه
توسط (5 امتیاز)
0 رای

اگه بخوایم فقط سال، لینک داشته باشه، کافیه کدهای اضافه‌شده رو شما هم استفاده کنین. دقت داشته باشین به‌جای دستور \cite می‌بایست از دستور \citep برای انتهای جمله و از دستور \citet برای وسط جمله به کار ببرین.

\documentclass[a4paper,12pt]{report}


\usepackage{graphicx}
\usepackage[pagebackref=false,colorlinks,linkcolor=blue,citecolor=magenta]{hyperref}

\usepackage{amsmath}
\usepackage{siunitx}
\sisetup{group-separator = {,}}

\usepackage{array}
\usepackage{caption}

\usepackage{etoolbox} % <--- added
\usepackage[natbibapa]{apacite} % <--- changed

\usepackage{supertabular}
\usepackage{hhline}
\usepackage{mdframed}

\usepackage{tocbibind}

\usepackage[Kashida]{xepersian}

\settextfont[Scale=1.1]{B Nazanin}

%%%%%%%%%      SOLVING     CODES     FOR     \setmathdigitfont     %%%%%%%%%%%
\ExplSyntaxOn
\cs_set_eq:NN
\etex_iffontchar:D
\tex_iffontchar:D
\cs_undefine:N \c_one
\int_const:Nn \c_one { 1 }
\ExplSyntaxOff
%%%%%%%%%%     SOLVING     CODES     FOR     \setmathdigitfont     %%%%%%%%%%%

\setmathdigitfont{XB Yas}
\settextdigitfont{XB Yas}


\linespread{1.2}
\setlength{\parskip}{0.15cm}

%%%%%%%%%%%%%%%%%% added %%%%%%%%%%%%%%%%%%
% https://tex.stackexchange.com/questions/352272
\makeatletter
\let\oldciteauthor\citeauthor
\def\citeauthor#1{{\NoHyper\oldciteauthor{#1}}}
% Patch case where name and year are separated by aysep
\patchcmd{\NAT@citex}
  {\@citea\NAT@hyper@{%
     \NAT@nmfmt{\NAT@nm}%
     \hyper@natlinkbreak{\NAT@aysep\NAT@spacechar}{\@citeb\@extra@b@citeb}%
     \NAT@date}}
  {\@citea\NAT@nmfmt{\NAT@nm}%
   \NAT@aysep\NAT@spacechar\NAT@hyper@{\NAT@date}}{}{}
% Patch case where name and year are separated by opening bracket
\patchcmd{\NAT@citex}
  {\@citea\NAT@hyper@{%
     \NAT@nmfmt{\NAT@nm}%
     \hyper@natlinkbreak{\NAT@spacechar\NAT@@open\if*#1*\else#1\NAT@spacechar\fi}%
       {\@citeb\@extra@b@citeb}%
     \NAT@date}}
  {\@citea\NAT@nmfmt{\NAT@nm}%
   \NAT@spacechar\NAT@@open\if*#1*\else#1\NAT@spacechar\fi\NAT@hyper@{\NAT@date}}
  {}{}
\makeatother
%%%%%%%%%%%%%%%%%% added %%%%%%%%%%%%%%%%%%

\begin{document}

\tableofcontents
\newpage


\section{مقدمه}

است، پتانسیل بسیار خوبی را برای بهبود اطلاعات در شرایط اضطراری و مدیریت بحران دارد \lr{\citep{rathore2017}}. همچنین اینکه استفاده از شبکه‌های اجتماعی مانند توییتر به هنگام وقوع بحران‌ها و در شرایط اضطراری می‌تواند فرصت‌های بدیعی جهت آگاهی‌بخشی و برانگیختن عموم را در اختیار ‌گذارد که در شیوه‌های سنتی رایج وجود نداشته است \lr{\citep{lachlan2016}}. علاوه بر ظرفیت‌های بیان شده، با توجه به تنوع گسترده محتوای منتشر شده در توییتر، این پلتفرم شبکه اجتماعی به منبع مهمی از داده برای تشخیص شیوع بیماری‌ها و درک نگرش‌ها و رفتارهای عموم مردم به هنگام وقوع بحران‌ها نیز تبدیل شده است\lr{\citep{garcia2021}}. شیوع بیماری کرونا در سطح جهانی (همه‌گیری) از ابتدای سال 2020، پیامدهای ناشی از آن و تبدیل شدن این بحران به اصلی‌ترین چالش پیش روی دولتها، یکی از بارزترین مصادیق این حوزه است، به طوری که همواره سهم قابل توجهی از محتوای منتشر شده توسط نهادهای رسمی، مقامات دولت‌ها، مسئولین حوزه سلامت عمومی، متخصصین و کاربران عادی در توییتر را به خود اختصاص داده است. این محتواها حاوی اطلاعات ارزشمندی است که می‌تواند از زوایای گوناگون مورد مطالعه و بررسی قرار گیرد، اطلاعاتی که به منظور مقابله موثر با بحران کرونا و مدیریت تبعات متعدد آن بسیار کاربردی و ضروری خواهد بود.

\section{بیان مساله}


\section{ضرورت پژوهش}


\section{تشریح و بیان موضوع}

\subsection{ادبیات پژوهش}


\subsection{پیشینه پژوهش}

\section{روش‌شناسی}

%%%%%%%%%%%%%%%%%%%%%%%%%%      CODES    FOR    APA    STYLE      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\setLTRbibitems
\makeatletter
\bidi@AtBeginEnvironment{thebibliography}{\renewcommand{\bibname}{کتاب‌نامه}
    \latinfont}
\makeatother
\bibliographystyle{apacite}
%%%%%%%%%%%%%%%%%%%%%%%%%%      CODES    FOR    APA    STYLE      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\bibliography{MinimumExample01} 


\end{document}

خروجی:

enter image description here

درود بر شما جناب میرزاخانی، این روش اخیر رو امتحان کردم که نتیجه خیلی جالبی داد و به نظرم در حالت ضرورت هم مناسب باشه، ولی ترجیحم اینه که در صورت پیدا کردن راه‌حل اصولی از همون روش اول استفاده کنم (امیدوارم دوستان هم یاری کنن :) )

فقط یک سوال، اینکه چه لزومی داشت که به جای آپشن کلاسیک apa از آپشن natbibapa استفاده کردید؟ (که لازم باشه citationها هم تغییر بکنه)

بسیار ممنونم از پیگیریتون
توسط (5 امتیاز)
آپشن natbibapa در واقع بستهٔ natbib رو فراخوانی می‌کنه. بستهٔ خوب و قدرتمندیه برای مدیریت مراجع. به‌کمک دستورات اون بسته، لینک نویسنده‌ها حذف شدن و دستورهای citep و citet هم از همین بسته‌ست. همچنین توصیه شده اون دو تا بسته، به‌جای اینکه جدا فراخوانی بشن، این‌طوری فراخوانی کنیم.
خودم به خروجی بستهٔ biblatex و برنامه biber بیشتر اعتماد دارم تا سایر؛ چون به‌روزترن. خروجی این پاسخ هم شبیه biblatex است (از نظر لینک). باز خودتون یه سرچی بکنین.
ویرایش شده توسط
توسط (3.3k امتیاز)
حتی می‌تونم بگم خروجی apacite در حال حاضر درست نیست! چون توی apa، بیشتر از دو یا سه نویسنده، به‌صورت نویسندهٔ اول و et al. باید بیاد؛ در حالی که الان هر پنج تا نویسنده هم اومدن!
توصیه می‌کنم از biblatex استفاده کنین.
ویرایش شده توسط
توسط (3.3k امتیاز)
natbib و دستوراتش رو نسبتا می‌شناسم ولی biblatex و biber رو هنوز کار نکردم حتما بهشون یه سری می‌زنم، نمی‌دوستم میشه با natbib لینک نویسنده‌ها رو حذف کرد، بسیار جالب بود برام ممنون

+ در رابطه با نحوه آوردن et at در apacite، این طور که از اسناد بسته فهمیدم، این مساله نه تنها اشکال apacite نیست بلکه آپشنش محسوب میشه! در apacite بناست دو نویسنده همیشه «به صورت کامل» و از 6 نویسنده به بالا «همیشه با et al» بیاد، ولی تنها در مواردی که تعداد نویسنده‌ها از 3 تا 5 نفر باشه، برای بار اول ارجاع «به صورت کامل» و در موارد بعدی «همراه با et al» میاد، البته امکان غیر فعال کردنش هم دیده شده.
توسط (5 امتیاز)
بله در ویرایش ششم استایل apa، اون‌طوریه و کاملاً حق با شماست؛ ولی از اکتبر ۲۰۱۹ به‌بعد که ویرایش هفتم اومد، از سه نویسنده به بالا، دیگه نویسنده‌ها کامل نمیان.
آخرین به‌روزرسانی بستهٔ apacite هم فکر کنم برمی‌گرده به ۲۰۱۳ که طبیعتاً از ویرایش ششم استفاده می‌کنه.
مهم اینه که چه ویرایشی مدنظر باشه.
ویرایش شده توسط
توسط (3.3k امتیاز)
پرسیدن سوال
وب‌سایت پرسش و پاسخ پارسی‌لاتک جایی برای پرسش و پاسخ درباره سیستم حروف‌چینی لاتک و بسته زی‌پرشین است. در اینجا می‌توانید سوال‌های خود را بپرسید و به سوال‌های دیگران پاسخ دهید.

7.1k سوال

6.6k پاسخ

23.4k دیدگاه

7.0k کاربر

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

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