وقتی از گزینه nonamebreak بسته natbib استفاده میکنید، دستور \NAT@nmfmt که بصورت عادی تعریف زیر را دارد
\def\NAT@nmfmt#1{{\NAT@up#1}}
بصورت زیر بازتعریف میشود
\def\NAT@nmfmt#1{\mbox{\NAT@up#1}}
که در این بازتعریف دستور \mbox استفاده شده است که باعث میشود متن بین دو سطر شکسته نشود.
دستور \NAT@nmfm تنها در دستور \NAT@citex استفاده شده است و نه در دستور \@citex. در آغاز نوشتار دستور \NAT@set@cites اجرا میشود. کاری که این دستور (قسمتی که ما علاقهمند به آن هستیم) انجام میدهد بصورت زیر است
\ifNAT@numbers
...
\else
...
\let\@citex\NAT@citex
...
\fi
بنابراین تنها زمانی دستور \@citex معادل دستور \NAT@citex خواهد بود که دستور شرطی \ifNAT@numbers نادرست باشد و زمانی که شما از گزینه numbers استفاده میکنید این دستور شرطی مقدار درست دارد بنابراین \@citex معادل دستور \NAT@citex نخواهد بود.
دستور citeauthor از دستور \@citex استفاده میکند (آیا میتوانید دنبال کنید که چه اتفاقی میافتد؟) بنابراین برای اینکه کاری را که میخواهید انجام دهید بصورت اساسی انجام دهید باید این دستور \citeauthor را بازتعریف کنید و به جای استفاده از \@citex در تعریف آن از \NAT@citex استفاده کنید. در نمونه زیر من دستور \citeauthor را باز تعریف نکردهام بلکه دستور جدیدی به نام دستور \myciteauthor تعریف کردهام تا مخالفتی با رفتار پیشفرض بسته natbib نداشته باشد.
\documentclass[10pt,a4paper]{article}
\usepackage[nonamebreak,numbers]{natbib}
\usepackage[breaklinks,colorlinks,linkcolor=blue,citecolor=magenta]{hyperref}
\usepackage[Kashida,KashidaXBFix]{xepersian}
\settextfont[Scale=1.2]{Yas}
\usepackage{ifthen}
%%%%%
\makeatletter
\DeclareRobustCommand\myciteauthor
{\begingroup\NAT@swafalse\let\NAT@ctype\@ne\NAT@parfalse
\@ifstar{\NAT@fulltrue\my@NAT@citetp}{\NAT@fullfalse\my@NAT@citetp}}
\newcommand\my@NAT@citetp{\@ifnextchar[{\my@NAT@@citetp}{\my@NAT@@citetp[]}}
\newcommand\my@NAT@@citetp{}
\def\my@NAT@@citetp[#1]{\@ifnextchar[{\NAT@citex[#1]}{\NAT@citex[][#1]}}
\makeatother
\newcommand{\mycite}[2][]{%
\ifthenelse{\equal{#1}{}}{({\myciteauthor{#2}}, {\citeyear{#2}})}{({\myciteauthor{#2}}, {\citeyear{#2}}: #1)}%
}
%%%%%%%%%%%%%
\usepackage{filecontents}
\begin{filecontents*}{mybibdb.bib}
@article{marvel99,
author = {L.M. Marvel AND C.G. Boncelet and C.T. Retter},
title = {Spread spectrum image steganography},
journal = {IEEE Trans. on Image Processing},
year = {1999},
volume = {8},
number = {8},
pages = {1075--1083},
month = {Aug},
authorfa = {مارول and بونسلت and رتر}
}
\end{filecontents*}
%%%%%%%%%%%%%%%%%%%%
\begin{document}
لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با
\mycite{marvel99}
استفاده از طراحان گرافیک است. چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است و برای شرایط فعلی تکنولوژی مورد نیاز و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد. کتابهای زیادی در شصت و سه درصد گذشته، حال و آینده شناخت فراوان جامعه و متخصصان را می طلبد تا با نرم افزارها شناخت بیشتری را برای طراحان رایانه ای علی الخصوص طراحان خلاقی و فرهنگ پیشرو در زبان فارسی ایجاد کرد. در این صورت می توان امید داشت که تمام و دشواری موجود در ارائه راهکارها و شرایط سخت تایپ به پایان رسد وزمان مورد نیاز شامل حروفچینی دستاوردهای اصلی و جوابگوی سوالات پیوسته اهل دنیای موجود طراحی اساسا مورد استفاده قرار گیرد.
\bibliographystyle{plainnat-fa}
\bibliography{mybibdb}
\end{document}
