如何使用 BibTex 在 LTR 文章中插入 RTL 引用?

如何使用 BibTex 在 LTR 文章中插入 RTL 引用?

如何使用 BibTeX 在 LTR(例如英语)文章中插入 RTL 引用(例如波斯语)?

答案1

首先你应该知道没有 bibtex 的解决方案。解决方案在以下示例中进行了解释:

\documentclass[10pt,twocolumn,a4paper]{article}

\usepackage{fontspec}

\newfontfamily\Persianfont[Script=Arabic,Scale=1]{XB Niloofar}
\makeatletter
\TeXXeTstate=1
\def\Persiantext#1{\begingroup\beginR\Persianfont#1\endR\endgroup}
\def\Persianbibitem#1{\begin{RTLbibitems}\Persiantext{#1}\par\end{RTLbibitems}}
\makeatother

\usepackage{bidi}

\begin{document}

\section{Introduction}
You can use Persian and Arabic text between Latin text, with bidi package and the
    above Persiantext command.
For example you may have an Arabic paragraph such as follows:

\begin{RTL}
\Persiantext{آدمی در عالم خاکی نمی‌آید بدست}
\end{RTL}

Or a brief text such as:
\Persiantext{این متن}
between your Latin text.

Also you may have Persian or Arabic references such as this  Persian
    \cite{Amintoosi87afzayesh} and this Latin \cite{Baker02limits} references
    with the above Persianbibitem command.

\begin{thebibliography}{1}

\bibitem{Amintoosi87afzayesh}
\Persianbibitem{
امین‌طوسی، محمود، مزینی، ناصر، و فتحی، محمود. افزایش وضوح ناحیه‌ای. در  چهاردهمین کنفرانس ملی سالانه انجمن کامپیوتر ایران،  صفحات ۱۰۱-۱۰۸، تهران،  ایران، اسفند ۱۳۸۷. دانشگاه امیرکبیر.}

\bibitem{Baker02limits}
Baker, Simon and Kanade, Takeo. Limits on super-resolution and how to break them. IEEE Trans. Pattern Anal. Mach. Intell., 24(9):1167--1183,  2002.

\end{thebibliography}

\end{document}

之后我会用bibtex来解释解决方案。

答案2

[ persian-bib] 包为双语(波斯语/英语)文档提供了一些广泛使用的 bibtex 样式的改编。因此,您应该使用 中提供的 bibtex 样式之一persian-bib

  • unsrt-fa
  • plain-fa
  • acm-fa
  • ieeetr-fa
  • plainnat-fa(需要natbib
  • chicago-fa(需要natbib
  • asa-fa(需要natbib

因此,一篇包含波斯语和英语参考文献的文章的 MWE 如下

%!TEX TS-PROGRAM=xelatex
\begin{filecontents}{refs.bib}
@article{h1,
 author = {حسن ذاکری and سجاد ازگلی},
 year = {1392},
 title = {روش طراحی کنترلگر \lr{PI} برای دسته‌ای از سامانه‌های غیرخطی دارای عدم قطعیت به کمک تجزیه مجموع مربعات},
 pages = {47--59},
 volume = {11},
 number = {2},
 journal = {مجله کنترل},
 language={persian}
}

@inproceedings{h2,
  title={Robust PI Design for Chaos Control Using Sum of Squares Approach},
  author={Zakeri, Hasan and Ozgoli, Sadjaad},
  booktitle={The 2nd International Conference on Control, Instrumentation, and Automation (ICCIA2011)},
  language={latin}
}
\end{filecontents}
\documentclass{article}
\usepackage{xepersian}
\begin{document}
سلام. این یک تکه متن فارسی~\مرجع{h1} همراه با چند مرجع می‌باشد~\cite{h2}.
سلام. این یک تکه متن فارسی~\مرجع{h1} همراه با چند مرجع می‌باشد~\cite{h2}.
سلام. این یک تکه متن فارسی~\مرجع{h1} همراه با چند مرجع می‌باشد~\cite{h2}.
سلام. این یک تکه متن فارسی~\مرجع{h1} همراه با چند مرجع می‌باشد~\cite{h2}.
\begin{latin}
Some latin text~\cite{h1} with some citation~\cite{h1,h2}.
Some latin text~\cite{h1} with some citation~\cite{h1,h2}.
Some latin text~\cite{h1} with some citation~\cite{h1,h2}.
Some latin text~\cite{h1} with some citation~\cite{h1,h2}.
\end{latin}
\bibliographystyle{ieeetr-fa}
\bibliography{refs.bib}
\end{document}

还,

  • 记下language每个 bibtex 条目的标签;
  • \مرجع相当于\cite

答案3

在新版本中波斯语围兜包(版本 0.8)中,我添加了一个新的样式 Persian-fa-inLTR.bst,可用于这些情况。以下示例显示了如何使用它:

% !TEX TS-program = XeLaTeX 
\begin{filecontents}{SomeReferences.bib}
@CONFERENCE{Amintoosi87afzayesh,
  AUTHOR =       {امین‌طوسی,محمود and مزینی,ناصر and  فتحی,محمود},
  TITLE =        {افزایش وضوح ناحیه‌ای},
  BOOKTITLE =    {چهاردهمین کنفرانس ملی سالانه انجمن کامپیوتر ایران},
  YEAR =         {۱۳۸۷},
  ORGANIZATION = {دانشگاه امیرکبیر},
  ADDRESS =      {تهران، ایران},
  month =        {اسفند},
  pages = {۱۰۱-۱۰۸},
  LANGUAGE =     {Persian},  
  url = {http://www.civilica.com/Paper-ACCSI14-ACCSI14_107.htm}
}

@article{Baker02limits,
 author = {Baker,, Simon and Kanade,, Takeo},
 title = {Limits on Super-Resolution and How to Break Them},
 journal = {IEEE Trans. Pattern Anal. Mach. Intell.},
 volume = {24},
 number = {9},
 year = {2002},
 issn = {0162-8828},
 pages = {1167--1183},
 publisher = {IEEE Computer Society},
 address = {Washington, DC, USA}
 }
\end{filecontents}

\documentclass[10pt,a4paper]{article}

\usepackage{listings}

\usepackage{fontspec}

\newfontfamily\Persianfont[Script=Arabic,Scale=1]{Yas}
\makeatletter
\TeXXeTstate=1
\def\Persiantext#1{\begingroup\beginR\Persianfont#1\endR\endgroup}
\makeatother

\usepackage{bidi}

\begin{document}
\title{Persian-Arabic References in Latin Documnets}
\author{ Mahmood Amintoosi \\
Hakim Sabzevari University\\
Sabzevar, Iran\\
{\small [email protected] }}
\date{}

\maketitle

\section{Introduction}
Suppose the you want to have Persian or Arabic references such as this  Persian
    \cite{Amintoosi87afzayesh} and this Latin \cite{Baker02limits} references. In this case - with the power of bidi package - Persian-faLTR.bst style in Persian-bib package is the right solution.
You should insert the following codes in the premable of your document and use a suitable style in your documnet:

\begin{lstlisting}[language=tex,breaklines=true, basicstyle=\ttfamily, numberstyle=\footnotesize, numbersep=10pt, captionpos=b, frame=single, breakatwhitespace=false]
\usepackage{fontspec}
\newfontfamily\Persianfont[Script=Arabic,Scale=1]{Yas}
\makeatletter
\TeXXeTstate=1
\def\Persiantext#1{\begingroup\beginR\Persianfont#1\endR\endgroup}
\makeatother
\end{lstlisting}

Note that the encoding of your .bib file should be UTF-8. 

Also you can use Persian and Arabic text between Latin text, with bidi package and the
    above Persiantext command.
For example you may have a Persian paragraph such as follows:

\begin{RTL}
\Persiantext{آدمی در عالم خاکی نمی‌آید بدست}
\end{RTL}

Or a brief text such as:
\Persiantext{این متن}
between your Latin text.


\bibliographystyle{plain-fa-inLTR}
\bibliography{SomeReferences}

\end{document}

相关内容