texlive[69137] Master/texmf-dist: iran-bibtex (15dec23)

commits+karl at tug.org commits+karl at tug.org
Fri Dec 15 23:00:26 CET 2023


Revision: 69137
          https://tug.org/svn/texlive?view=revision&revision=69137
Author:   karl
Date:     2023-12-15 23:00:26 +0100 (Fri, 15 Dec 2023)
Log Message:
-----------
iran-bibtex (15dec23)

Modified Paths:
--------------
    trunk/Master/texmf-dist/bibtex/bst/iran-bibtex/iran.bst
    trunk/Master/texmf-dist/doc/bibtex/iran-bibtex/README.md
    trunk/Master/texmf-dist/doc/bibtex/iran-bibtex/iran-structure.pdf
    trunk/Master/texmf-dist/doc/bibtex/iran-bibtex/iran-structure.tex
    trunk/Master/texmf-dist/tex/latex/iran-bibtex/iran-bibtex.sty

Modified: trunk/Master/texmf-dist/bibtex/bst/iran-bibtex/iran.bst
===================================================================
--- trunk/Master/texmf-dist/bibtex/bst/iran-bibtex/iran.bst	2023-12-15 00:42:55 UTC (rev 69136)
+++ trunk/Master/texmf-dist/bibtex/bst/iran-bibtex/iran.bst	2023-12-15 22:00:26 UTC (rev 69137)
@@ -1,6 +1,6 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %% 
-%% This file is “iran.bst”,
+%% This file is “iran.bst”, 
 %% generated with the DOCSTRIP utility and then modified to support
 %% bilingual (English/Latin, and Persian).
 %% 
@@ -64,6 +64,7 @@
   by                         % the added field
   chapter
   collaboration
+  comment                    % the added field
   commentator                % the added field
   compiler                   % the added field
   doi
@@ -78,6 +79,7 @@
   introduction               % the added field
   isbn
   issn
+  issue                      % the added field
   journal
   key
   language
@@ -474,8 +476,8 @@
 FUNCTION {bbl.techrep}
 {
   is.language.persian
-    {""}
-    {""}
+    {"گزارش"}
+    {"tech. rep."}
   if$
 }
 
@@ -483,7 +485,7 @@
 {
   is.language.persian
     {"مترجم"}
-    {"tran."}
+    {"trans."}
   if$
 }
 
@@ -1091,7 +1093,7 @@
   doi empty$
     { "" }
     {
-      bbl.doi "u" change.case$ ": \doi{" * doi * "}" *
+      bbl.doi "u" change.case$ ":\doi{" * doi * "}" *
     }
   if$
 }
@@ -1123,14 +1125,9 @@
 
 FUNCTION {format.title}
 {
-  title
+  title "title" bibinfo.check
   duplicate$ empty$
     'skip$
-    { "t" change.case$ }
-  if$
-  "title" bibinfo.check
-  duplicate$ empty$
-    'skip$
     {
       bbl.dquote
     }
@@ -1327,19 +1324,113 @@
 
 
 
+FUNCTION {format.article.comment}
+{
+  comment
+}
+
+
+
+FUNCTION {format.article.journal}
+{
+  journal remove.dots emphasize
+}
+
+
+
+FUNCTION {format.article.jour.iss.vol.num.pp}
+{
+  journal empty$ not
+    {
+      issue empty$ not
+        { issue bbl.comma * " " *}
+        { "" }
+      if$
+      format.article.journal *
+      volume empty$ not
+        {
+          number empty$ not
+            {
+              pages empty$ not
+                {
+                  " " * volume * " " *
+                  "(" * number * ")" * ": " *
+                  pages *
+                }
+                {
+                  " " * volume * bbl.comma *
+                  " " * bbl.number * "~" * number *
+                }
+              if$
+            }
+            {
+              pages empty$ not
+                {
+                  " " * volume * ": " *
+                  pages *
+                }
+                {
+                  " " * volume *
+                }
+              if$
+            }
+          if$
+        }
+        {
+          number empty$ not
+            {
+              pages empty$ not
+                {
+                  bbl.comma * " " * bbl.number * "~" * number *
+                  ": " * pages *
+                }
+                {
+                  bbl.comma * " " * bbl.number * "~" * number *
+                }
+              if$
+            }
+            {
+              pages empty$ not
+                {
+                  bbl.comma * " " * pages *
+                }
+                'skip$
+              if$
+            }
+          if$
+        }
+      if$
+    }
+    {
+      "journal" output.check
+    }
+  if$
+}
+
+
+
 FUNCTION {format.btitle}
 {
   title "title" bibinfo.check
   duplicate$ empty$
     'skip$
-    {
-      emphasize
-    }
+    { emphasize }
   if$
 }
 
 
 
+FUNCTION {format.title.in.books}
+{
+  title "title" bibinfo.check
+  duplicate$ empty$
+    'skip$
+    { emphasize }
+  if$
+}
+
+
+
 FUNCTION {either.or.check}
 {
   empty$
@@ -1351,27 +1442,18 @@
 
 FUNCTION {format.bvolume}
 {
-  volume empty$ not
+  volume empty$
+    { "" }
     {
-      volumes empty$ not
-        {
-          bbl.volume volume "~" swap$ * *
-          bbl.of separate.by.space volumes *
-          *
-        }
-        {
-          bbl.volume volume "~" swap$ * *
-        }
+      bbl.volume volume tie.or.space.prefix
+      "volume" bibinfo.check * *
+      series "series" bibinfo.check
+      duplicate$ empty$
+        'pop$
+        { emphasize ", " * swap$ * }
       if$
+      "volume and number" number either.or.check
     }
-    {
-      volumes empty$ not
-        {
-          volumes bbl.volumes "~" swap$ * *
-        }
-        { "" }
-      if$
-    }
   if$
 }
 
@@ -1378,33 +1460,33 @@
 
 FUNCTION {format.number.series}
 {
-  series empty$ not
+  volume empty$
     {
-      number empty$ not
+      number empty$
+        { series field.or.null }
         {
-          series " " * number *
-        }
-        { series  field.or.null }
-      if$
-    }
-    {
-      number empty$ not
-        {
-          output.state mid.sentence =
-            { bbl.number }
-            { bbl.number capitalize }
+          series empty$
+            { number "number" bibinfo.check }
+            {
+              output.state mid.sentence =
+                { bbl.number }
+                { bbl.number capitalize }
+              if$
+              number tie.or.space.prefix "number" bibinfo.check * *
+              bbl.in space.word *
+              series "series" bibinfo.check *
+            }
           if$
-          number "~" swap$ * *
         }
-        { "" }
       if$
     }
+    { "" }
   if$
 }
 
 
 
-FUNCTION {format.bvolume.series.number}
+FUNCTION {format.book.volume.series.number}
 {
   volume empty$ not
     {
@@ -1414,13 +1496,13 @@
             {
               number empty$ not
                 {
-                  bbl.volume "~" * volume *
+                  bbl.volume capitalize "~" * volume *
                   " " * bbl.of * " " * volumes * add.period$
                   " " * series emphasize *
                   " " * number *
                 }
                 {
-                  bbl.volume "~" * volume *
+                  bbl.volume capitalize "~" * volume *
                   " " * bbl.of * " " * volumes * add.period$
                   " " * series emphasize *
                 }
@@ -1429,12 +1511,12 @@
             {
               number empty$ not
                 {
-                  bbl.volume "~" * volume *
+                  bbl.volume capitalize "~" * volume *
                   " " * bbl.of * " " * volumes * add.period$
                   " " * bbl.number * "~" * number *
                 }
                 {
-                  bbl.volume "~" * volume *
+                  bbl.volume capitalize "~" * volume *
                   " " * bbl.of * " " * volumes * 
                 }
               if$
@@ -1446,12 +1528,12 @@
             {
               number empty$ not
                 {
-                  bbl.volume "~" * volume *
+                  bbl.volume capitalize "~" * volume *
                   " " * bbl.of * " " * series emphasize *
                   " " * number *
                 }
                 {
-                  bbl.volume "~" * volume *
+                  bbl.volume capitalize "~" * volume *
                   " " * bbl.of * " " * series emphasize *
                 }
               if$
@@ -1459,11 +1541,11 @@
             {
               number empty$ not
                 {
-                  bbl.volume "~" * volume * add.period$
+                  bbl.volume capitalize "~" * volume * add.period$
                   " " * bbl.number * "~" * number *
                 }
                 {
-                  bbl.volume "~" * volume * add.period$
+                  bbl.volume capitalize "~" * volume * add.period$
                 }
               if$
             }
@@ -1533,6 +1615,441 @@
 
 
 
+FUNCTION {format.booktitle}
+{
+  booktitle "booktitle" bibinfo.check
+  emphasize
+}
+
+
+
+FUNCTION {format.incoll.chapter.booktitle.volume.pages}
+{
+  booktitle empty$ not
+    {
+      chapter empty$ not
+        {
+          bbl.chapter capitalize "~" * chapter *
+          " " * bbl.in * " " * format.booktitle *
+          pages empty$ not
+            {
+              bbl.comma * " " * pages * add.period$
+            }
+            {
+              add.period$
+            }
+          if$
+          volume empty$ not
+            {
+              volumes empty$ not
+                {
+                  " " * bbl.volume capitalize * "~" * volume * " " * bbl.of * " " * volumes * add.period$
+                }
+                {
+                  " " * bbl.volume capitalize * "~" * volume * add.period$
+                }
+              if$
+            }
+            {
+              volumes empty$ not
+                {
+                  " " * volumes * "~" * bbl.volumes * add.period$
+                }
+                {
+                  skip$
+                }
+              if$
+            }
+          if$
+        }
+        {
+          word.in format.booktitle *
+          pages empty$ not
+            {
+              volume empty$ not
+                {
+                  volumes empty$ not
+                    {
+                      " " * volume * ": " * pages * add.period$
+                      " " * volumes * "~" * bbl.volumes * add.period$
+                    }
+                    {
+                      " " * volume * ": " * pages * add.period$
+                    }
+                  if$
+                }
+                {
+                  volumes empty$ not
+                    {
+                      bbl.comma * " " * pages * add.period$
+                      " " * volumes * "~" * bbl.volumes * add.period$
+                    }
+                    {
+                      bbl.comma * " " * pages * add.period$
+                    }
+                  if$
+                }
+              if$
+            }
+            {
+              add.period$
+              volume empty$ not
+                {
+                  volumes empty$ not
+                    {
+                      " " * bbl.volume capitalize * "~" * volume *
+                      " " * bbl.of * " " * volumes * add.period$
+                    }
+                    {
+                      " " * bbl.volume capitalize * "~" * volume * add.period$
+                    }
+                  if$
+                }
+                {
+                  volumes empty$ not
+                    {
+                      " " * volumes * "~" * bbl.volumes * add.period$
+                    }
+                    {
+                      skip$
+                    }
+                  if$
+                }
+              if$
+            }
+          if$
+        }
+      if$
+    }
+    {
+      ""
+    }
+  if$
+}
+
+
+
+INTEGERS { emph.series }
+FUNCTION {format.incoll.series.number}
+{
+  author empty$ not
+    {
+      translator empty$ not
+        { #1 'emph.series := }
+        {
+          edition empty$ not
+            { #1 }
+            { #0 }
+          if$
+          impression empty$ not
+            { #1 }
+            { #0 }
+          if$
+          + 'emph.series :=
+        }
+      if$
+    }
+    {
+      compiler empty$ not
+        {
+          translator empty$ not
+            { #1 'emph.series := }
+            {
+              edition empty$ not
+                { #1 }
+                { #0 }
+              if$
+              impression empty$ not
+                { #1 }
+                { #0 }
+              if$
+              + 'emph.series :=
+            }
+          if$
+        }
+        {
+          editor empty$ not
+            {
+              translator empty$ not
+                { #1 'emph.series := }
+                {
+                  edition empty$ not
+                    { #1 }
+                    { #0 }
+                  if$
+                  impression empty$ not
+                    { #1 }
+                    { #0 }
+                  if$
+                  + 'emph.series :=
+                }
+              if$
+            }
+            {
+              edition empty$ not
+                { #1 }
+                { #0 }
+              if$
+              impression empty$ not
+                { #1 }
+                { #0 }
+              if$
+              + 'emph.series :=
+            }
+          if$
+        }
+      if$
+    }
+  if$
+  series empty$ not
+    {
+      emph.series #0 >
+        {
+          number empty$ not
+            { series emphasize " " * number * }
+            { series emphasize }
+          if$
+        }
+        {
+          number empty$ not
+            { series " " * number * }
+            { series }
+          if$
+        }
+      if$
+    }
+    {
+      number empty$ not
+        { bbl.number capitalize "~" * number * }
+        { "" }
+      if$
+    }
+  if$
+}
+
+
+
+FUNCTION {format.inproc.booktitle.volume.pages}
+{
+  booktitle empty$ not
+    {
+      volume empty$ not
+        {
+          volumes empty$ not
+            {
+              pages empty$ not
+                {
+                  format.booktitle " " *
+                  volume * ": " * pages * add.period$
+                  " " * volumes * "~" * bbl.volumes *
+                }
+                {
+                  format.booktitle add.period$
+                  " " * bbl.volume * "~" * volume * bbl.of * " " * volumes *
+                }
+              if$
+            }
+            {
+              pages empty$ not
+                {
+                  format.booktitle " " *
+                  volume * ": " * pages *
+                }
+                {
+                  format.booktitle add.period$
+                  " " * bbl.volume * "~" * volume *
+                }
+              if$
+            }
+          if$
+        }
+        {
+          volumes empty$ not
+            {
+              pages empty$ not
+                {
+                  format.booktitle " " *
+                  bbl.comma * " " * pages * add.period$
+                  volumes * "~" * bbl.volumes
+                }
+                {
+                  format.booktitle " " * add.period$
+                  " " * volumes * "~" * bbl.volumes *
+                }
+              if$
+            }
+            {
+              pages empty$ not
+                {
+                  format.booktitle " " *
+                  bbl.comma * " " * pages *
+                }
+                {
+                  format.booktitle
+                }
+              if$
+            }
+          if$
+        }
+      if$
+    }
+    {
+      ""
+    }
+  if$
+}
+
+
+
+FUNCTION {format.inproc.series.number}
+{
+  author empty$ not
+    {
+      translator empty$ not
+        { #1 'emph.series := }
+        {
+          edition empty$ not
+            { #1 }
+            { #0 }
+          if$
+          impression empty$ not
+            { #1 }
+            { #0 }
+          if$
+          + 'emph.series :=
+        }
+      if$
+    }
+    {
+      edition empty$ not
+        { #1 }
+        { #0 }
+      if$
+      impression empty$ not
+        { #1 }
+        { #0 }
+      if$
+      + 'emph.series :=
+    }
+  if$
+  series empty$ not
+    {
+      emph.series #0 >
+        {
+          number empty$ not
+            { series emphasize " " * number * }
+            { series emphasize }
+          if$
+        }
+        {
+          number empty$ not
+            { series " " * number * }
+            { series }
+          if$
+        }
+      if$
+    }
+    {
+      number empty$ not
+        { bbl.number capitalize "~" * number * }
+        { "" }
+      if$
+    }
+  if$
+}
+
+
+
+FUNCTION {format.conf.series.number.pages}
+{
+  series empty$ not
+    {
+      number empty$ not
+        {
+          pages empty$ not
+            {
+              series
+              bbl.comma * " " * bbl.number * "~" * number *
+              bbl.comma * " " * pages *
+            }
+            {
+              series
+              bbl.comma * " " * bbl.number * "~" * number *
+            }
+          if$
+        }
+        {
+          pages empty$ not
+            {
+              series
+              bbl.comma * " " * pages *
+            }
+            { series }
+          if$
+        }
+      if$
+    }
+    { "" }
+  if$
+}
+
+
+
+FUNCTION {format.conf.org.publisher.address}
+{
+  organization empty$ not
+    {
+      publisher empty$ not
+        {
+          address empty$ not
+            {
+              organization add.period$
+              address * ": " * publisher *
+            }
+            {
+              organization add.period$
+              publisher *
+            }
+          if$
+        }
+        {
+          address empty$ not
+            {
+              organization
+              bbl.comma * " " * address *
+            }
+            {
+              organization
+            }
+          if$
+        }
+      if$
+    }
+    {
+      publisher empty$ not
+        {
+          address empty$ not
+            { address ": " * publisher *}
+            { publisher }
+          if$
+        }
+        {
+          address empty$ not
+            { address }
+            { "" }
+          if$
+        }
+      if$
+    }
+  if$
+}
+
+
+
+FUNCTION {format.proc.org.publisher.address} { format.conf.org.publisher.address }
+
+
+
 FUNCTION {format.edition}
 {
   edition duplicate$ empty$
@@ -1726,14 +2243,6 @@
 
 
 
-FUNCTION {format.booktitle}
-{
-  booktitle "booktitle" bibinfo.check
-  emphasize
-}
-
-
-
 FUNCTION {format.in.ed.booktitle}
 {
   format.booktitle
@@ -1948,8 +2457,7 @@
 
 FUNCTION {format.incoll.inproc.crossref}
 {
-  word.in
-  " \cite{" * crossref * "}" *
+  word.in " \cite{" * crossref * "}" *
 }
 
 
@@ -1992,6 +2500,13 @@
 
 
 
+FUNCTION {format.organization}
+{
+  organization "organization" bibinfo.check
+}
+
+
+
 STRINGS {oldname}
 
 FUNCTION {name.or.dash}
@@ -2057,7 +2572,7 @@
 
 
 
-FUNCTION {finish.entry}
+FUNCTION {end.bibitem}
 {
   add.period$ write$
   newline$
@@ -2076,42 +2591,8 @@
 
 % Function to format entries
 
-FUNCTION {article}
-{ begin.bibitem
-  format.authors "author" output.check
-  author format.key output
-  name.or.dash
-  format.date "year" output.check
-  date.block
-  format.title "title" output.check
-  new.block
-  crossref missing$
-    {
-      journal
-      remove.dots
-      "journal" bibinfo.check
-      emphasize
-      "journal" output.check
-      add.blank
-      format.vol.num.pages output
-    }
-    { format.article.crossref output.nonnull
-      format.pages output
-    }
-  if$
-  new.block format.issn output
-  new.block format.doi output
-  new.block
-  format.note output
-  new.block format.eprint output
-  new.block format.url output
-  finish.entry
-}
-
-
-
-FUNCTION {book}
-{ 
+FUNCTION {article} % THIS ENTRY TYPE IS NOT COMPATIBLE WITH IRAN MANUAL OF STYLE
+{
   begin.bibitem
   author empty$ not
     {
@@ -2118,34 +2599,127 @@
       format.authors output.nonnull
       name.or.dash
       format.date "year" output.check
-      new.block format.btitle "title" output.check
-      translator empty$
+      new.block format.title "title" output.check
+      new.sentence format.article.comment output
+      new.sentence format.by output
+      crossref missing$
         {
+          new.sentence format.translatedby output
+          new.sentence format.translateyear output
+          new.sentence format.edby output
+          new.sentence format.article.jour.iss.vol.num.pp output
+          new.sentence format.note output
+          new.sentence format.issn output
+          new.sentence format.doi output
+          new.sentence format.urldate output
+          new.sentence format.url output
+        }
+        {
+          format.article.crossref output.nonnull
+          format.pages output
+        }
+      if$
+    }
+    { %%% if author is empty, proceeds with editor
+      editor empty$ not
+        {
+          format.editors output.nonnull
+          name.or.dash
+          format.date "year" output.check
+          new.block format.title "title" output.check
+          new.sentence format.article.comment output
+          new.sentence format.by output
           crossref missing$
             {
-              new.sentence format.edition output
-              new.sentence format.impression output
-              new.sentence format.by output
-              new.sentence format.bvolume.series.number output
-              new.sentence format.incollaborationwith output
-              new.sentence format.commentatedby output
-              new.sentence format.compiledby output
-              new.sentence format.edby output
-              new.sentence format.introby output
-              new.sentence format.prefaceby output
-              new.sentence format.afterwordby output
-              new.sentence format.publisher.address output
+              new.sentence format.translatedby output
+              new.sentence format.translateyear output
+              new.sentence format.article.jour.iss.vol.num.pp output
               new.sentence format.note output
-              new.sentence format.isbn output
+              new.sentence format.issn output
               new.sentence format.doi output
               new.sentence format.urldate output
               new.sentence format.url output
             }
             {
-              new.block format.book.crossref output.nonnull
+              format.article.crossref output.nonnull
+              format.pages output
             }
           if$
         }
+        { %%% if author, and editor are empty, proceeds with translator
+          translator empty$ not
+            {
+              format.translators output.nonnull
+              name.or.dash
+              new.sentence format.translateyear output
+              new.block format.title "title" output.check
+              new.sentence format.article.comment output
+              new.sentence format.by output
+              new.sentence format.date output
+              crossref missing$
+                {
+                  new.sentence format.edby output
+                  new.sentence format.article.jour.iss.vol.num.pp output
+                  new.sentence format.note output
+                  new.sentence format.issn output
+                  new.sentence format.doi output
+                  new.sentence format.urldate output
+                  new.sentence format.url output
+                }
+                {
+                  format.article.crossref output.nonnull
+                  format.pages output
+                }
+              if$
+            }
+            { %%% if author, editor, and translator are empty, proceeds with key
+              key empty$ not
+                {
+                  format.title "title" output.nonnull
+                  name.or.dash
+                  format.date "year" output.check
+                  new.sentence format.by output
+                  crossref missing$
+                    {
+                      new.sentence format.edby output
+                      new.sentence format.article.jour.iss.vol.num.pp output
+                      new.sentence format.note output
+                      new.sentence format.issn output
+                      new.sentence format.doi output
+                      new.sentence format.urldate output
+                      new.sentence format.url output
+                    }
+                    {
+                      format.article.crossref output.nonnull
+                      format.pages output
+                    }
+                  if$
+                }
+                {
+                  "author, translator, and key" output.check
+                }
+              if$
+            }
+          if$
+        }
+      if$
+    }
+  if$
+  end.bibitem
+}
+
+
+
+FUNCTION {book}
+{ 
+  begin.bibitem
+  author empty$ not
+    {
+      format.authors output.nonnull
+      name.or.dash
+      format.date "year" output.check
+      new.block format.title.in.books "title" output.check
+      crossref missing$
         {
           new.sentence format.edition output
           new.sentence format.impression output
@@ -2152,7 +2726,7 @@
           new.sentence format.by output
           new.sentence format.translatedby output
           new.sentence format.translateyear output
-          new.sentence format.bvolume.series.number output
+          new.sentence format.book.volume.series.number output
           new.sentence format.incollaborationwith output
           new.sentence format.commentatedby output
           new.sentence format.compiledby output
@@ -2167,48 +2741,26 @@
           new.sentence format.urldate output
           new.sentence format.url output
         }
+        {
+          new.block format.book.crossref output.nonnull
+        }
       if$
     }
-    { %%% if author field is empty, proceed with compiler
+    { %%% if author field is empty, proceeds with compiler
       compiler empty$ not
         {
           format.compilers output.nonnull
           name.or.dash
           format.date "year" output.check
-          new.block format.btitle "title" output.check
-          translator empty$
+          new.block format.title.in.books "title" output.check
+          crossref missing$
             {
-              crossref missing$
-                {
-                  new.sentence format.edition output
-                  new.sentence format.impression output
-                  new.sentence format.by output
-                  new.sentence format.bvolume.series.number output
-                  new.sentence format.incollaborationwith output
-                  new.sentence format.commentatedby output
-                  new.sentence format.edby output
-                  new.sentence format.introby output
-                  new.sentence format.prefaceby output
-                  new.sentence format.afterwordby output
-                  new.sentence format.publisher.address output
-                  new.sentence format.note output
-                  new.sentence format.isbn output
-                  new.sentence format.doi output
-                  new.sentence format.urldate output
-                  new.sentence format.url output
-                }
-                {
-                  new.block format.book.crossref output.nonnull
-                }
-              if$
-            }
-            {
               new.sentence format.edition output
               new.sentence format.impression output
               new.sentence format.by output
               new.sentence format.translatedby output
               new.sentence format.translateyear output
-              new.sentence format.bvolume.series.number output
+              new.sentence format.book.volume.series.number output
               new.sentence format.incollaborationwith output
               new.sentence format.commentatedby output
               new.sentence format.edby output
@@ -2222,47 +2774,26 @@
               new.sentence format.urldate output
               new.sentence format.url output
             }
+            {
+              new.block format.book.crossref output.nonnull
+            }
           if$
         }
-        { %%% if author, and compiler fields are empty, proceed with editor
+        { %%% if author, and compiler fields are empty, proceeds with editor
           editor empty$ not
             {
               format.editors output.nonnull
               name.or.dash
               format.date "year" output.check
-              new.block format.btitle "title" output.check
-              translator empty$
+              new.block format.title.in.books "title" output.check
+              crossref missing$
                 {
-                  crossref missing$
-                    {
-                      new.sentence format.edition output
-                      new.sentence format.impression output
-                      new.sentence format.by output
-                      new.sentence format.bvolume.series.number output
-                      new.sentence format.incollaborationwith output
-                      new.sentence format.commentatedby output
-                      new.sentence format.introby output
-                      new.sentence format.prefaceby output
-                      new.sentence format.afterwordby output
-                      new.sentence format.publisher.address output
-                      new.sentence format.note output
-                      new.sentence format.isbn output
-                      new.sentence format.doi output
-                      new.sentence format.urldate output
-                      new.sentence format.url output
-                    }
-                    {
-                      new.block format.book.crossref output.nonnull
-                    }
-                  if$
-                }
-                {
                   new.sentence format.edition output
                   new.sentence format.impression output
                   new.sentence format.by output
                   new.sentence format.translatedby output
                   new.sentence format.translateyear output
-                  new.sentence format.bvolume.series.number output
+                  new.sentence format.book.volume.series.number output
                   new.sentence format.incollaborationwith output
                   new.sentence format.commentatedby output
                   new.sentence format.introby output
@@ -2275,20 +2806,23 @@
                   new.sentence format.urldate output
                   new.sentence format.url output
                 }
+                {
+                  new.block format.book.crossref output.nonnull
+                }
               if$
             }
-            { %%% if author, compiler, and editor fields are empty, proceed translator 
+            { %%% if author, compiler, and editor fields are empty, proceeds with translator 
               translator empty$ not
                 {
                   format.translators output.nonnull
                   name.or.dash
                   new.sentence format.translateyear output
-                  new.block format.btitle "title" output.check
+                  new.block format.title.in.books "title" output.check
                   new.sentence format.edition output
                   new.sentence format.impression output
                   new.sentence format.by output
                   new.sentence format.date output
-                  new.sentence format.bvolume.series.number output
+                  new.sentence format.book.volume.series.number output
                   new.sentence format.incollaborationwith output
                   new.sentence format.commentatedby output
                   new.sentence format.introby output
@@ -2301,10 +2835,11 @@
                   new.sentence format.urldate output
                   new.sentence format.url output
                 }
-                { %%% if author, compiler, editor, and translator fields are empty, proceed key 
+                { %%% if author, compiler, editor, and translator fields are empty, proceeds with key
                   key empty$ not
                     {
-                      format.btitle "title" output.check
+                      format.title.in.books "title" output.check
+                      name.or.dash
                       format.date "year" output.check
                       crossref missing$
                         {
@@ -2311,7 +2846,7 @@
                           new.sentence format.edition output
                           new.sentence format.impression output
                           new.sentence format.by output
-                          new.sentence format.bvolume.series.number output
+                          new.sentence format.book.volume.series.number output
                           new.sentence format.incollaborationwith output
                           new.sentence format.commentatedby output
                           new.sentence format.introby output
@@ -2341,13 +2876,14 @@
       if$
     }
   if$
-  finish.entry
+  end.bibitem
 }
 
 
 
-FUNCTION {booklet}
-{ begin.bibitem
+FUNCTION {booklet} % THIS ENTRY TYPE IS NOT COMPATIBLE WITH IRAN MANUAL OF STYLE
+{
+  begin.bibitem
   format.authors output
   author format.key output
   name.or.dash
@@ -2363,13 +2899,14 @@
   format.note output
   format.eprint output
   format.url output
-  finish.entry
+  end.bibitem
 }
 
 
 
-FUNCTION {inbook}
-{ begin.bibitem
+FUNCTION {inbook} % THIS ENTRY TYPE IS NOT COMPATIBLE WITH IRAN MANUAL OF STYLE
+{
+  begin.bibitem
   author empty$
     { format.editors "author and editor" output.check
       editor format.key output
@@ -2389,7 +2926,7 @@
   crossref missing$
     {
       format.bvolume output
-      format.chapter.pages "chapter and pages" output.check
+      format.chapter.pages output%"chapter and pages" output.check
       new.block
       format.number.series output
       format.edition output
@@ -2411,89 +2948,369 @@
   format.note output
   format.eprint output
   format.url output
-  finish.entry
+  end.bibitem
 }
 
 
 
 FUNCTION {incollection}
-{
+{ 
   begin.bibitem
-  format.authors "author" output.check
-  author format.key output
-  name.or.dash
-  format.date "year" output.check
-  date.block
-  format.title "title" output.check
-  new.block
-  crossref missing$
+  author empty$ not
     {
-      format.in.ed.booktitle "booktitle" output.check
-      format.number.series output
-      format.edition output
-      format.chapter.pages output
-      new.sentence
-      format.publisher.address output
-      format.isbn output
+      format.authors output.nonnull
+      name.or.dash
+      format.date "year" output.check
+      new.block format.title "title" output.check
+      crossref missing$
+        {
+          new.sentence format.by output
+          new.sentence format.incoll.chapter.booktitle.volume.pages output
+          new.sentence format.edition output
+          new.sentence format.impression output
+          new.sentence format.translatedby output
+          new.sentence format.translateyear output
+          new.sentence format.incoll.series.number output
+          new.sentence format.compiledby output
+          new.sentence format.edby output
+          new.sentence format.publisher.address output
+          new.sentence format.note output
+          new.sentence format.isbn output
+          new.sentence format.doi output
+          new.sentence format.urldate output
+          new.sentence format.url output
+        }
+        {
+          new.block format.incoll.inproc.crossref output.nonnull
+        }
+      if$
     }
-    {
-      format.incoll.inproc.crossref output.nonnull
-      format.chapter.pages output
+    { %%% if author field is empty, proceeds with compiler
+      compiler empty$ not
+        {
+          format.compilers output.nonnull
+          name.or.dash
+          format.date "year" output.check
+          new.block format.title "title" output.check
+          crossref missing$
+            {
+              new.sentence format.by output
+              new.sentence format.incoll.chapter.booktitle.volume.pages output
+              new.sentence format.edition output
+              new.sentence format.impression output
+              new.sentence format.translatedby output
+              new.sentence format.translateyear output
+              new.sentence format.incoll.series.number output
+              new.sentence format.edby output
+              new.sentence format.publisher.address output
+              new.sentence format.note output
+              new.sentence format.isbn output
+              new.sentence format.doi output
+              new.sentence format.urldate output
+              new.sentence format.url output
+            }
+            {
+              new.block format.incoll.inproc.crossref output.nonnull
+            }
+          if$
+        }
+        { %%% if author, and compiler fields are empty, proceeds with editor
+          editor empty$ not
+            {
+              format.editors output.nonnull
+              name.or.dash
+              format.date "year" output.check
+              new.block format.title "title" output.check
+              crossref missing$
+                {
+                  new.sentence format.by output
+                  new.sentence format.incoll.chapter.booktitle.volume.pages output
+                  new.sentence format.edition output
+                  new.sentence format.impression output
+                  new.sentence format.translatedby output
+                  new.sentence format.translateyear output
+                  new.sentence format.incoll.series.number output
+                  new.sentence format.publisher.address output
+                  new.sentence format.note output
+                  new.sentence format.isbn output
+                  new.sentence format.doi output
+                  new.sentence format.urldate output
+                  new.sentence format.url output
+                }
+                {
+                  new.block format.incoll.inproc.crossref output.nonnull
+                }
+              if$
+            }
+            { %%% if author, compiler, and editor fields are empty, proceeds with translator
+              translator empty$ not
+                {
+                  format.translators output.nonnull
+                  name.or.dash
+                  new.sentence format.translateyear output
+                  new.block format.title "title" output.check
+                  new.sentence format.by output
+                  new.sentence format.date output
+                  new.sentence format.incoll.chapter.booktitle.volume.pages output
+                  new.sentence format.edition output
+                  new.sentence format.impression output
+                  new.sentence format.incoll.series.number output
+                  new.sentence format.compiledby output
+                  new.sentence format.edby output
+                  new.sentence format.publisher.address output
+                  new.sentence format.note output
+                  new.sentence format.isbn output
+                  new.sentence format.doi output
+                  new.sentence format.urldate output
+                  new.sentence format.url output
+                }
+                { %%% if author, compiler, editor, and translator fields are empty, proceeds with key 
+                  key empty$ not
+                    {
+                      format.title "title" output.check
+                      name.or.dash
+                      format.date "year" output.check
+                      new.sentence format.by output
+                      crossref missing$
+                        {
+                          new.sentence format.incoll.chapter.booktitle.volume.pages output
+                          new.sentence format.edition output
+                          new.sentence format.impression output
+                          new.sentence format.incoll.series.number output
+                          new.sentence format.compiledby output
+                          new.sentence format.edby output
+                          new.sentence format.publisher.address output
+                          new.sentence format.note output
+                          new.sentence format.isbn output
+                          new.sentence format.doi output
+                          new.sentence format.urldate output
+                          new.sentence format.url output
+                        }
+                        {
+                          new.block format.incoll.inproc.crossref output.nonnull
+                        }
+                      if$
+                    }
+                    {
+                      "author, compiler, editor, translator, and key" output.check
+                    }
+                  if$
+                }
+              if$
+            }
+          if$
+        }
+      if$
     }
   if$
-  format.doi output
-  new.block
-  format.note output
-  format.eprint output
-  format.url output
-  finish.entry
+  end.bibitem
 }
 
 
 
 FUNCTION {inproceedings}
-{ begin.bibitem
-  format.authors "author" output.check
-  author format.key output
-  name.or.dash
-  format.date "year" output.check
-  date.block
-  format.title "title" output.check
-  new.block
-  crossref missing$
-    { format.in.ed.booktitle "booktitle" output.check
-      format.number.series output
-      format.pages output
-      new.sentence
-      publisher empty$
-        { format.organization.address output }
-        { organization "organization" bibinfo.check output
-          format.publisher.address output
+{
+  begin.bibitem
+  author empty$ not
+    {
+      format.authors output.nonnull
+      name.or.dash
+      format.date "year" output.check
+      new.block format.title "title" output.check
+      new.sentence format.by output
+      crossref missing$
+        {
+          new.sentence format.inproc.booktitle.volume.pages output
+          new.sentence format.edition output
+          new.sentence format.impression output
+          new.sentence format.translatedby output
+          new.sentence format.translateyear output
+          new.sentence format.inproc.series.number output
+          new.sentence format.compiledby output
+          new.sentence format.edby output
+          new.sentence format.publisher.address output
+          new.sentence format.note output
+          new.sentence format.isbn output
+          new.sentence format.issn output
+          new.sentence format.doi output
+          new.sentence format.urldate output
+          new.sentence format.url output
         }
+        {
+          format.incoll.inproc.crossref output.nonnull
+          format.pages output
+        }
       if$
-      format.isbn output
-      format.issn output
     }
-    { format.incoll.inproc.crossref output.nonnull
-      format.pages output
+    { %%% if author field is empty, proceeds with translator
+      translator empty$ not
+        {
+          format.translators output.nonnull
+          name.or.dash
+          new.sentence format.translateyear output
+          new.block format.title "title" output.check
+          new.sentence format.by output
+          new.sentence format.date output
+          crossref missing$
+            {
+              new.sentence format.inproc.booktitle.volume.pages output
+              new.sentence format.edition output
+              new.sentence format.impression output
+              new.sentence format.inproc.series.number output
+              new.sentence format.compiledby output
+              new.sentence format.edby output
+              new.sentence format.publisher.address output
+              new.sentence format.note output
+              new.sentence format.isbn output
+              new.sentence format.issn output
+              new.sentence format.doi output
+              new.sentence format.urldate output
+              new.sentence format.url output
+            }
+            {
+              format.incoll.inproc.crossref output.nonnull
+              format.pages output
+            }
+          if$
+        }
+        { %%% if author, and translator fields are empty, proceeds with key
+          key empty$ not
+            {
+              format.title "title" output.check
+              name.or.dash
+              format.date "year" output.check
+              new.sentence format.by output
+              crossref missing$
+                {
+                  new.sentence format.inproc.booktitle.volume.pages output
+                  new.sentence format.edition output
+                  new.sentence format.impression output
+                  new.sentence format.inproc.series.number output
+                  new.sentence format.compiledby output
+                  new.sentence format.edby output
+                  new.sentence format.publisher.address output
+                  new.sentence format.note output
+                  new.sentence format.isbn output
+                  new.sentence format.issn output
+                  new.sentence format.doi output
+                  new.sentence format.urldate output
+                  new.sentence format.url output
+                }
+                {
+                  format.incoll.inproc.crossref output.nonnull
+                  format.pages output
+                }
+              if$
+            }
+            {
+              "author, translator, and key" output.check
+            }
+          if$
+        }
+      if$
     }
   if$
-  format.doi output
-  new.block
-  format.note output
-  format.eprint output
-  format.url output
-  finish.entry
+  end.bibitem
 }
 
 
 
-FUNCTION {conference} { inproceedings }
+FUNCTION {conference}
+{
+  begin.bibitem
+  author empty$ not
+    {
+      format.authors output.nonnull
+      name.or.dash
+      format.date "year" output.check
+      new.block format.title "title" output.check
+      new.sentence format.by output
+      crossref missing$
+        {
+          new.sentence format.translatedby output
+          new.sentence format.translateyear output
+          new.sentence format.conf.series.number.pages output
+          new.sentence format.edby output
+          new.sentence format.conf.org.publisher.address output
+          new.sentence format.note output
+          new.sentence format.issn output
+          new.sentence format.doi output
+          new.sentence format.urldate output
+          new.sentence format.url output
+        }
+        {
+          format.incoll.inproc.crossref output.nonnull
+          format.pages output
+        }
+      if$
+    }
+    { %%% if author is empty, proceeds with translator
+      translator empty$ not
+        {
+          format.translators output.nonnull
+          name.or.dash
+          new.sentence format.translateyear output
+          new.block format.title "title" output.check
+          new.sentence format.by output
+          new.sentence format.date output
+          crossref missing$
+            {
+              new.sentence format.conf.series.number.pages output
+              new.sentence format.edby output
+              new.sentence format.conf.org.publisher.address output
+              new.sentence format.note output
+              new.sentence format.issn output
+              new.sentence format.doi output
+              new.sentence format.urldate output
+              new.sentence format.url output
+            }
+            {
+              format.incoll.inproc.crossref output.nonnull
+              format.pages output
+            }
+          if$
+        }
+        { %%% if author, and translator are empty, proceeds with key
+          key empty$ not
+            {
+              format.title "title" output.check
+              name.or.dash
+              format.date "year" output.check
+              new.sentence format.by output
+              crossref missing$
+                {
+                  new.sentence format.conf.series.number.pages output
+                  new.sentence format.edby output
+                  new.sentence format.conf.org.publisher.address output
+                  new.sentence format.note output
+                  new.sentence format.issn output
+                  new.sentence format.doi output
+                  new.sentence format.urldate output
+                  new.sentence format.url output
+                }
+                {
+                  format.incoll.inproc.crossref output.nonnull
+                  format.pages output
+                }
+              if$
+            }
+            {
+              "author, translator, and key" output.check
+            }
+          if$
+        }
+      if$
+    }
+  if$
+  end.bibitem
 
+}
 
 
-FUNCTION {manual}
-{ begin.bibitem
+
+FUNCTION {manual} % THIS ENTRY TYPE IS NOT COMPATIBLE WITH IRAN MANUAL OF STYLE
+{
+  begin.bibitem
   format.authors output
   author format.key output
   name.or.dash
@@ -2509,13 +3326,14 @@
   format.note output
   format.eprint output
   format.url output
-  finish.entry
+  end.bibitem
 }
 
 
 
-FUNCTION {mastersthesis}
-{ begin.bibitem
+FUNCTION {mastersthesis} % THIS ENTRY TYPE IS NOT COMPATIBLE WITH IRAN MANUAL OF STYLE
+{
+  begin.bibitem
   format.authors "author" output.check
   author format.key output
   name.or.dash
@@ -2532,13 +3350,14 @@
   format.note output
   format.eprint output
   format.url output
-  finish.entry
+  end.bibitem
 }
 
 
 
-FUNCTION {misc}
-{ begin.bibitem
+FUNCTION {misc} % THIS ENTRY TYPE IS NOT COMPATIBLE WITH IRAN MANUAL OF STYLE
+{
+  begin.bibitem
   format.authors output
   author format.key output
   name.or.dash
@@ -2552,13 +3371,14 @@
   format.note output
   format.eprint output
   format.url output
-  finish.entry
+  end.bibitem
 }
 
 
 
-FUNCTION {phdthesis}
-{ begin.bibitem
+FUNCTION {phdthesis} % THIS ENTRY TYPE IS NOT COMPATIBLE WITH IRAN MANUAL OF STYLE
+{
+  begin.bibitem
   format.authors "author" output.check
   author format.key output
   name.or.dash
@@ -2575,42 +3395,107 @@
   format.note output
   format.eprint output
   format.url output
-  finish.entry
+  end.bibitem
 }
 
 
 
 FUNCTION {proceedings}
-{ begin.bibitem
-  format.editors output
-  editor format.key output
-  name.or.dash
-  format.date "year" output.check
-  date.block
-  format.btitle "title" output.check
-  format.bvolume output
-  format.number.series output
-  new.sentence
-  publisher empty$
-    { format.organization.address output }
-    { organization "organization" bibinfo.check output
-      format.publisher.address output
+{
+  begin.bibitem
+  editor empty$ not
+    {
+      format.editors output.nonnull
+      name.or.dash
+      format.date "year" output.check
+      new.block format.title.in.books "title" output.check
+      new.sentence format.edition output
+      new.sentence format.impression output
+      new.sentence format.translatedby output
+      new.sentence format.translateyear output
+      new.sentence format.book.volume.series.number output
+      new.sentence format.compiledby output
+      new.sentence format.proc.org.publisher.address output
+      new.sentence format.note output
+      new.sentence format.isbn output
+      new.sentence format.issn output
+      new.sentence format.doi output
+      new.sentence format.urldate output
+      new.sentence format.url output
     }
+    { %%% if editor field is empty, proceeds with compiler
+      compiler empty$ not
+        {
+          format.compilers output.nonnull
+          name.or.dash
+          format.date "year" output.check
+          new.block format.title.in.books "title" output.check
+          new.sentence format.edition output
+          new.sentence format.impression output
+          new.sentence format.translatedby output
+          new.sentence format.translateyear output
+          new.sentence format.book.volume.series.number output
+          new.sentence format.proc.org.publisher.address output
+          new.sentence format.note output
+          new.sentence format.isbn output
+          new.sentence format.issn output
+          new.sentence format.doi output
+          new.sentence format.urldate output
+          new.sentence format.url output
+        }
+        { %%% if editor, and compiler fields are empty, proceeds with translator
+          translator empty$ not
+            {
+              format.translators output.nonnull
+              name.or.dash
+              new.sentence format.translateyear output
+              new.block format.title.in.books "title" output.check
+              new.sentence format.edition output
+              new.sentence format.impression output
+              new.sentence format.book.volume.series.number output
+              new.sentence format.proc.org.publisher.address output
+              new.sentence format.note output
+              new.sentence format.isbn output
+              new.sentence format.issn output
+              new.sentence format.doi output
+              new.sentence format.urldate output
+              new.sentence format.url output
+            }
+            {
+              key empty$ not
+                {
+                  format.title.in.books "title" output.check
+                  name.or.dash
+                  format.date "year" output.check
+                  new.block format.edition output
+                  new.sentence format.impression output
+                  new.sentence format.book.volume.series.number output
+                  new.sentence format.proc.org.publisher.address output
+                  new.sentence format.note output
+                  new.sentence format.isbn output
+                  new.sentence format.issn output
+                  new.sentence format.doi output
+                  new.sentence format.urldate output
+                  new.sentence format.url output
+                }
+                {
+                  "editor, compiler, translator, and key" output.check
+                }
+              if$
+            }
+          if$
+        }
+      if$
+    }
   if$
-  format.isbn output
-  format.issn output
-  format.doi output
-  new.block
-  format.note output
-  format.eprint output
-  format.url output
-  finish.entry
+  end.bibitem
 }
 
 
 
-FUNCTION {techreport}
-{ begin.bibitem
+FUNCTION {techreport} % THIS ENTRY TYPE IS NOT COMPATIBLE WITH IRAN MANUAL OF STYLE
+{
+  begin.bibitem
   format.authors "author" output.check
   author format.key output
   name.or.dash
@@ -2627,13 +3512,14 @@
   format.note output
   format.eprint output
   format.url output
-  finish.entry
+  end.bibitem
 }
 
 
 
-FUNCTION {unpublished}
-{ begin.bibitem
+FUNCTION {unpublished} % THIS ENTRY TYPE IS NOT COMPATIBLE WITH IRAN MANUAL OF STYLE
+{
+  begin.bibitem
   format.authors "author" output.check
   author format.key output
   name.or.dash
@@ -2645,7 +3531,7 @@
   format.note "note" output.check
   format.eprint output
   format.url output
-  finish.entry
+  end.bibitem
 }
 
 
@@ -2670,7 +3556,7 @@
 
 
 
-% Length of the label
+% Length of the label name of the entry
 
 INTEGERS { len }
 
@@ -2686,7 +3572,7 @@
 
 
 
-% Format the label name
+% Function to create the label name of the entry
 
 FUNCTION {label.and}
 {
@@ -2745,7 +3631,7 @@
                   " " * label.etal *
                 }
                 {
-                  label.and separate.by.space * s #2 "{vv~}{ll}" format.name$ *
+                  bbl.comma * " " * label.and separate.by.space * s #2 "{vv~}{ll}" format.name$ *
                 }
               if$
             }
@@ -2779,36 +3665,116 @@
         'key
       if$
     }
+    { author format.lab.names }
+  if$
+}
+
+FUNCTION {author.editor.key.label}
+{
+  author empty$
     {
-      author format.lab.names
+      editor empty$
+        {
+          key empty$
+            { cite$ #1 #3 substring$ }
+            'key
+          if$
+        }
+        { editor format.lab.names }
+      if$
     }
+    { author format.lab.names }
   if$
 }
 
 
 
-FUNCTION {author.editor.key.label}
+FUNCTION {editor.key.label}
 {
+  editor empty$
+    {
+      key empty$
+        { cite$ #1 #3 substring$ }
+        'key
+      if$
+    }
+    {
+      editor format.lab.names
+    }
+  if$
+}
+
+
+
+FUNCTION {article.creator.label.order}
+{
   author empty$ not
+    { author format.lab.names }
     {
-      author format.lab.names
+      editor empty$ not
+        { editor format.lab.names }
+        {
+          translator empty$ not
+            { translator format.lab.names }
+            {
+              key empty$ not
+                'key
+                { cite$ #1 #3 substring$ }
+              if$
+            }
+          if$
+        }
+      if$
     }
+  if$
+}
+
+
+
+FUNCTION {book.creator.label.order}
+{
+  author empty$ not
+    { author format.lab.names }
     {
       compiler empty$ not
+        { compiler format.lab.names }
         {
-          compiler format.lab.names
+          editor empty$ not
+            { editor format.lab.names }
+            {
+              translator empty$ not
+                { translator format.lab.names }
+                {
+                  key empty$ not
+                    'key
+                    { cite$ #1 #3 substring$ }
+                  if$
+                }
+              if$
+            }
+          if$
         }
+      if$
+    }
+  if$
+}
+
+
+
+FUNCTION {incoll.creator.label.order}
+{
+  author empty$ not
+    { author format.lab.names }
+    {
+      compiler empty$ not
+        { compiler format.lab.names }
         {
           editor empty$ not
+            { editor format.lab.names }
             {
-              editor format.lab.names
-            }
-            {
               translator empty$ not
+                { translator format.lab.names }
                 {
-                  translator format.lab.names
-                }
-                {
                   key empty$ not
                     'key
                     { cite$ #1 #3 substring$ }
@@ -2825,17 +3791,45 @@
 
 
 
-FUNCTION {editor.key.label}
+FUNCTION {proc.creator.label.order}
 {
-  editor empty$
+  editor empty$ not
+    { editor format.lab.names }
     {
-      key empty$
-        { cite$ #1 #3 substring$ }
-        'key
+      compiler empty$ not
+        { compiler format.lab.names }
+        {
+          translator empty$ not
+            { translator format.lab.names }
+            {
+              key empty$ not
+                'key
+                { cite$ #1 #3 substring$ }
+              if$
+            }
+          if$
+        }
       if$
     }
+  if$
+}
+
+
+
+FUNCTION {conf.creator.label.order}
+{
+  author empty$ not
+    { author format.lab.names }
     {
-      editor format.lab.names
+      translator empty$ not
+        { translator format.lab.names }
+        {
+          key empty$ not
+            'key
+            { cite$ #1 #3 substring$ }
+          if$
+        }
+      if$
     }
   if$
 }
@@ -2842,16 +3836,59 @@
 
 
 
+FUNCTION {inproc.creator.label.order}
+{
+  author empty$ not
+    { author format.lab.names }
+    {
+      translator empty$ not
+        { translator format.lab.names }
+        {
+          key empty$ not
+            'key
+            { cite$ #1 #3 substring$ }
+          if$
+        }
+      if$
+    }
+  if$
+}
+
+
+
 FUNCTION {calc.short.authors}
 {
-  type$ "book" =
-  type$ "inbook" =
-  or
-    'author.editor.key.label
+  type$ "article" =
+    'article.creator.label.order
     {
-      type$ "proceedings" =
-        'editor.key.label
-        'author.key.label
+      type$ "book" =
+        'book.creator.label.order
+        {
+          type "incollection" =
+            'incoll.creator.label.order
+            {
+              type$ "proceedings" =
+                'proc.creator.label.order
+                {
+                  type "conference" = 
+                    'conf.creator.label.order
+                    {
+                      type "inproceedings" =
+                        'inproc.creator.label.order
+                        {
+                          type "inbook" =
+                            'author.editor.key.label
+                            'author.key.label
+                          if$
+                        }
+                      if$
+                    }
+                  if$
+                }
+              if$
+            }
+          if$
+        }
       if$
     }
   if$
@@ -2983,15 +4020,95 @@
         { key sortify }
       if$
     }
+    { author sort.format.names }
+  if$
+}
+
+
+
+
+FUNCTION {author.editor.sort}
+{
+  author empty$
     {
+      editor empty$
+        {
+          key empty$
+            {
+              "to sort, need author, editor, or key in " cite$ * warning$
+              ""
+            }
+            { key sortify }
+          if$
+        }
+        { editor sort.format.names }
+      if$
+    }
+    { author sort.format.names }
+  if$
+}
+
+
+
+FUNCTION {editor.sort}
+{
+  editor empty$
+    {
+      key empty$
+        {
+          "to sort, need editor or key in " cite$ * warning$
+          ""
+        }
+        {
+          key sortify
+        }
+      if$
+    }
+    {
+      editor sort.format.names
+    }
+  if$
+}
+
+
+
+FUNCTION {article.creator.sort.order}
+{
+  author empty$ not
+    {
       author sort.format.names
     }
+    {
+      editor empty$ not
+        {
+          editor sort.format.names
+        }
+        {
+          translator empty$ not
+            {
+              translator sort.format.names
+            }
+            {
+              key empty$ not
+                {
+                  key sortify
+                }
+                {
+                  "to sort, need author, editor, translator, or key in " cite$ * warning$
+                  ""
+                }
+              if$
+            }
+          if$
+        }
+      if$
+    }
   if$
 }
 
 
 
-FUNCTION {author.editor.sort}
+FUNCTION {book.creator.sort.order}
 {
   author empty$ not
     {
@@ -3034,22 +4151,68 @@
 
 
 
-FUNCTION {editor.sort}
+FUNCTION {incoll.creator.sort.order}
 {
-  editor empty$
+  author empty$ not
     {
-      key empty$
+      author sort.format.names
+    }
+    {
+      compiler empty$ not
         {
-          "to sort, need editor or key in " cite$ * warning$
-          ""
+          compiler sort.format.names
         }
         {
-          key sortify
+          editor empty$ not
+            {
+              editor sort.format.names
+            }
+            {
+              translator empty$ not
+                {
+                  translator sort.format.names
+                }
+                {
+                  key empty$ not
+                    {
+                      key sortify
+                    }
+                    {
+                      "to sort, need author, compiler, editor, translator, or key in " cite$ * warning$
+                      ""
+                    }
+                  if$
+                }
+              if$
+            }
+          if$
         }
       if$
     }
+  if$
+}
+
+
+
+FUNCTION {proc.creator.sort.order}
+{
+  editor empty$ not
+    { editor sort.format.names }
     {
-      editor sort.format.names
+      compiler empty$ not
+        { compiler sort.format.names }
+        {
+          translator empty$ not
+            { translator sort.format.names }
+            {
+              key empty$ not
+                'key
+                { cite$ #1 #3 substring$ }
+              if$
+            }
+          if$
+        }
+      if$
     }
   if$
 }
@@ -3056,6 +4219,46 @@
 
 
 
+FUNCTION {conf.creator.sort.order}
+{
+  author empty$ not
+    { author sort.format.names }
+    {
+      translator empty$ not
+        { translator sort.format.names }
+        {
+          key empty$ not
+            'key
+            { cite$ #1 #3 substring$ }
+          if$
+        }
+      if$
+    }
+  if$
+}
+
+
+
+FUNCTION {inproc.creator.sort.order}
+{
+  author empty$ not
+    { author sort.format.names }
+    {
+      translator empty$ not
+        { translator sort.format.names }
+        {
+          key empty$ not
+            'key
+            { cite$ #1 #3 substring$ }
+          if$
+        }
+      if$
+    }
+  if$
+}
+
+
+
 FUNCTION {presort}
 {
   calc.label
@@ -3062,14 +4265,37 @@
   label sortify
   "    "
   *
-  type$ "book" =
-  type$ "inbook" =
-  or
-    'author.editor.sort
+  type$ "article" =
+    'article.creator.sort.order
     {
-      type$ "proceedings" =
-        'editor.sort
-        'author.sort
+      type$ "book" =
+        'book.creator.sort.order
+        {
+          type "incollection" =
+            'incoll.creator.sort.order
+            {
+              type$ "proceedings" =
+                'proc.creator.sort.order
+                {
+                  type "conference" = 
+                    'conf.creator.sort.order
+                    {
+                      type "inproceedings" =
+                        'inproc.creator.sort.order
+                        {
+                          type "inbook" =
+                            'author.editor.sort
+                            'author.sort
+                          if$
+                        }
+                      if$
+                    }
+                  if$
+                }
+              if$
+            }
+          if$
+        }
       if$
     }
   if$

Modified: trunk/Master/texmf-dist/doc/bibtex/iran-bibtex/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/iran-bibtex/README.md	2023-12-15 00:42:55 UTC (rev 69136)
+++ trunk/Master/texmf-dist/doc/bibtex/iran-bibtex/README.md	2023-12-15 22:00:26 UTC (rev 69137)
@@ -27,7 +27,16 @@
 
 ## Change log
 First version release date: 2023/12/12.
+Current version release date: 2023/12/15.
 
+v0.2.0 (2023/12/15)
+  1. Made some improvements
+  2. Support `@article` entry was also added
+  3. Support `@incollection` entry was also added
+  4. Support `@proceedings` entry was also added
+  5. Support `@inproceedings` entry was also added
+  6. Support `@conference` entry was also added
+
 v0.1.0 (2023/12/12)
   1. First release on CTAN, and GitHub.
   2. Support `@book` entry only
\ No newline at end of file

Modified: trunk/Master/texmf-dist/doc/bibtex/iran-bibtex/iran-structure.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/bibtex/iran-bibtex/iran-structure.tex
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/iran-bibtex/iran-structure.tex	2023-12-15 00:42:55 UTC (rev 69136)
+++ trunk/Master/texmf-dist/doc/bibtex/iran-bibtex/iran-structure.tex	2023-12-15 22:00:26 UTC (rev 69137)
@@ -10,18 +10,21 @@
 
 \SepMark{-}
 
-\eqcommand{چ‌ر}{lr}
 
+
+
 \begin{document}
 \title{خلاصه‌ای از ساختار چیدمان مشخصه‌ها در شیوه‌ی  استاددهی {\tt iran.bst}}
-\author{فرشاد رسولی\thanks{رایانامه: \url{farshad.rasuli at gmail.com}}}
-\date{نسخه‌ی ۰٫۱ --- ۲۱ آذر ۱۴۰۲}
+\author{فرشاد رسولی \thanks{رایانامه: \url{farshad.rasuli at gmail.com}}}
+\date{نسخه‌ی ۰٫۲٫۰ --- ۲۴ آذر ۱۴۰۲}
 \maketitle
 
 
 \begin{description}
-\item[مدخل (\lr{entry}):] به هر اثری که اطلاعات شناسنامه‌ای آن برای استناددهی  در نوشتار وارد میگردد گفته میشود. مدخل میتواند از نوع \verb|@book|، \verb|@incollection|، \verb|@article|، \verb|@inproceeding|، \verb|@masterthesis|، \verb|@phdthesis|، \verb|@misc|، و غیره باشد.
-\item[مشخصه (\lr{field}):] به هر یک از مشخصه‌های شناسنامه‌ای مدخل مانند \lr{\tt author}، \lr{\tt title}، \lr{\tt year}، و غیره گفته میشود.
+\item[مدخل (\lr{entry}):]
+به هر اثری که اطلاعات شناسنامه‌ای آن برای استناددهی  در نوشتار وارد میگردد گفته میشود. مدخل میتواند از نوع \verb|@book|، \verb|@incollection|، \verb|@article|، \verb|@inproceeding|، \verb|@masterthesis|، \verb|@phdthesis|، \verb|@misc|، و غیره باشد.
+\item[مشخصه (\lr{field}):]
+به هر یک از مشخصه‌های شناسنامه‌ای مدخل مانند \lr{\tt author}، \lr{\tt title}، \lr{\tt year}، و غیره گفته میشود.
 \end{description}
 
 
@@ -33,8 +36,88 @@
 
 
 
+\section{مقاله در مجله‌ی تخصصی}
+برای استناد به یک مقاله‌ی چاپ شده در مجله‌ی تخصصی از مدخل \verb|@article| استفاده کنید. الگوی چیدمان مشخصه‌های مدخل مقاله در ادامه ارائه شده است.
+
+
+
+
+
+\subsection{مقاله‌هایی که زیر نام نویسنده مرتب میشوند}
+اگر برای مدخل مقاله، مشخصه‌ی \verb|author| وارد گردد، زیر نام نویسنده مرتب میشود.
+
+\begin{itemize}[nosep]
+\begin{latin}
+\item[] []
+{\tt author}. {\tt year}. {\tt title}. by {\tt by}. Translated by {\tt translator}. {\tt translateyear}. Edited by {\tt editor}. {\tt journal, issue, volume, number, pages}. {\tt note}. ISSN: {\tt issn}. DOI: {\tt doi}. Retrieved {\tt urldate}. URL: {\tt url}. 
+\end{latin}
+
+\item[] []
+{\persianttfamily نویسنده}. {\persianttfamily تاریخ}. {\persianttfamily عنوان}. نوشته‌ی {\persianttfamily …}. ترجمه‌ی {\persianttfamily …}. {\persianttfamily تاریخ ترجمه}. ویراسته‌ی {\persianttfamily …}. {\persianttfamily مجله، ویژه‌نامه، دوره، شماره، صفحه‌ها}. {\persianttfamily یادداشت}. شاپا: {\persianttfamily …}. شناسه‌ی دیجیتال: {\persianttfamily …}. دسترسی در {\persianttfamily …}. تارنما: {\persianttfamily …}. 
+\end{itemize}
+
+
+
+
+
+\subsection{مقاله‌هایی که زیر نام ویراستار مرتب میشوند}
+اگر برای مدخل مقاله، مشخصه‌های \verb|author| وارد نشود، در صورت وجود مشخصه‌ی \verb|editor|، زیر نام ویراستار مرتب میشود.
+
+\begin{itemize}[nosep]
+\begin{latin}
+\item[] []
+{\tt editor}, ed(s). {\tt year}. {\tt title}. by {\tt by}. {\tt journal, issue, volume, number, pages}. {\tt note}. ISSN: {\tt issn}. DOI: {\tt doi}. Retrieved {\tt urldate}. URL: {\tt url}. 
+\end{latin}
+
+\item[] []
+{\persianttfamily ویراستار}، ویراستار(ان). {\persianttfamily تاریخ}. {\persianttfamily عنوان}. نوشته‌ی {\persianttfamily …}. ویراسته‌ی {\persianttfamily …}. {\persianttfamily مجله، ویژه‌نامه، دوره، شماره، صفحه‌ها}. {\persianttfamily یادداشت}. شاپا: {\persianttfamily …}. شناسه‌ی دیجیتال: {\persianttfamily …}. دسترسی در {\persianttfamily …}. تارنما: {\persianttfamily …}. 
+\end{itemize}
+
+
+
+
+
+\subsection{مقاله‌هایی که زیر نام مترجم مرتب میشوند}
+اگر برای مدخل مقاله، مشخصه‌های \verb|author|، و \verb|editor| وارد نشوند، در صورت وجود مشخصه‌ی \verb|translator|، زیر نام مترجم مرتب میشود.
+
+\begin{itemize}[nosep]
+\begin{latin}
+\item[] []
+{\tt translator}, trans. {\tt translateyear}. {\tt title}. by {\tt by}. {\tt year}. {\tt journal, issue, volume, number, pages}. {\tt note}. ISSN: {\tt issn}. DOI: {\tt doi}. Retrieved {\tt urldate}. URL: {\tt url}. 
+\end{latin}
+
+\item[] []
+{\persianttfamily مترجم}، مترجم(‍ان). {\persianttfamily تاریخ ترجمه}. {\persianttfamily عنوان}. نوشته‌ی {\persianttfamily …}. {\persianttfamily تاریخ}. {\persianttfamily مجله، ویژه‌نامه، دوره، شماره، صفحه‌ها}. {\persianttfamily یادداشت}. شاپا: {\persianttfamily …}. شناسه‌ی دیجیتال: {\persianttfamily …}. دسترسی در {\persianttfamily …}. تارنما: {\persianttfamily …}. 
+\end{itemize}
+
+
+
+
+
+\subsection{مقاله‌هایی که زیر عنوان مرتب میشوند}
+اگر برای مدخل مقاله، مشخصه‌های \verb|author|، \verb|editor|، و \verb|translator| وارد نشوند، باید مشخصه‌ی \verb|key| آن مدخل برابر با مشخصه‌ی \verb|title| وارد شود که زیر عنوان مرتب گردد.
+
+\begin{itemize}[nosep]
+\begin{latin}
+\item[] []
+{\tt title}. {\tt year}. {\tt title}. by {\tt by}. Edited by {\tt editor}. {\tt journal, issue, volume, number, pages}. {\tt note}. ISSN: {\tt issn}. DOI: {\tt doi}. Retrieved {\tt urldate}. URL: {\tt url}. 
+\end{latin}
+
+\item[] []
+{\persianttfamily عنوان}. {\persianttfamily تاریخ}. نوشته‌ی {\persianttfamily …}. ویراسته‌ی {\persianttfamily …}. {\persianttfamily مجله، ویژه‌نامه، دوره، شماره، صفحه‌ها}. {\persianttfamily یادداشت}. شاپا: {\persianttfamily …}. شناسه‌ی دیجیتال: {\persianttfamily …}. دسترسی در {\persianttfamily …}. تارنما: {\persianttfamily …}. 
+\end{itemize}
+
+
+
+
+
+
+
+
+
+
 \section{کتاب}
-در این بخش، طرح چیدمان مشخصه‌های مدخل کتاب (\verb|@book|) ارائه شده است.
+برای استناد به کل یک کتاب از مدخل \verb|@book| استفاده کنید. الگوی چیدمان مشخصه‌های مدخل کتاب در ادامه ارائه شده است.
 
 
 
@@ -43,32 +126,48 @@
 \subsection{کتابهایی که زیر نام نویسنده مرتب میشوند}
 اگر برای مدخل کتاب، مشخصه‌ی \verb|author| وارد گردد، زیر نام نویسنده مرتب میشود.
 
-\subsubsection*{کتابهای ترجمه نشده}
-مدخل کتابی که مشخصه‌ی \verb|translator| آن خالی باشد، به صورت زیر فهرست میشود.
+\begin{itemize}[nosep]
+\begin{latin}
+\item[] []
+{\tt author}. {\tt year}. {\tt title}. {\tt edition} edn. {\tt impression} imp. by {\tt by}. Translated by {\tt translator}. {\tt translateyear}. {\tt volume volumes series number}. In collaboration with {\tt collaboration}. Commented by {\tt commentator}. Compiled by {\tt compiler}. Edited by {\tt editor}. Introduction by {\tt introduction}. Preface by {\tt preface}. Afterwords by {\tt afterword}. {\tt address: publisher}. {\tt note}. ISBN: {\tt isbn}. DOI: {\tt doi}. Retrieved {\tt urldate}. URL: {\tt url}. 
+\end{latin}
 
+\item[] []
+{\persianttfamily نویسنده}. {\persianttfamily تاریخ}. {\persianttfamily عنوان}. ویرایش {\persianttfamily …}. چاپ {\persianttfamily …}. نوشته‌ی {\persianttfamily …}. ترجمه‌ی {\persianttfamily …}. {\persianttfamily تاریخ ترجمه}. {\persianttfamily جلد، جلدها، فروست، شماره}. با همکاری {\persianttfamily …}. با یادداشت {\persianttfamily …}. گردآوری {\persianttfamily …}. ویراسته‌ی {\persianttfamily …}. با مقدمه‌ی {\persianttfamily …}. با پیش‌گفتار {\persianttfamily …}. با پس‌گفتار {\persianttfamily …}. {\persianttfamily محل نشر: ناشر}. {\persianttfamily یادداشت}. شابک: {\persianttfamily …}. شناسه‌ی دیجیتال: {\persianttfamily …}. دسترسی در {\persianttfamily …}. تارنما: {\persianttfamily …}. 
+\end{itemize}
+
+
+
+
+
+\subsection{کتابهایی که زیر نام گردآورده مرتب میشوند}
+اگر برای مدخل کتاب، مشخصه‌ی \verb|author| وارد نشود، در صورت وجود مشخصه‌ی \verb|compiler|، زیر نام گردآونده مرتب میشود.
+
 \begin{itemize}[nosep]
 \begin{latin}
 \item[] []
-{\tt author}. {\tt year}. {\tt title}. {\tt edition} edn. {\tt impression} imp. by {\tt by}. {\tt volume volumes series number}. In collaboration with {\tt collaboration}. Commented by {\tt commentator}. Compiled by {\tt compiler}. Edited by {\tt editor}. Introduction by {\tt introduction}. Preface by {\tt preface}. Afterwords by {\tt afterword}. {\tt address}:{\tt publisher}. {\tt note}. ISBN: {\tt isbn}. DOI: {\tt doi}. Retrieved {\tt urldate}. URL: {\tt url}. 
+{\tt compiler}, comp(s). {\tt year}. {\tt title}. {\tt edition} edn. {\tt impression} imp. by {\tt by}. Translated by {\tt translator}. {\tt translateyear}. {\tt volume volumes series number}. In collaboration with {\tt collaboration}. Commented by {\tt commentator}. Edited by {\tt editor}. Introduction by {\tt introduction}. Preface by {\tt preface}. Afterwords by {\tt afterword}. {\tt address: publisher}. {\tt note}. ISBN: {\tt isbn}. DOI: {\tt doi}. Retrieved {\tt urldate}. URL: {\tt url}. 
 \end{latin}
 
 \item[] []
-{\persianttfamily نویسنده}. {\persianttfamily تاریخ}. {\persianttfamily عنوان}. ویرایش {\persianttfamily …}. چاپ {\persianttfamily …}. نوشته‌ی {\persianttfamily …}. {\persianttfamily جلد فروست}. با همکاری {\persianttfamily …}. با یادداشت {\persianttfamily …}. گردآوری {\persianttfamily …}. ویراسته‌ی {\persianttfamily …}. با مقدمه‌ی {\persianttfamily …}. با پیش‌گفتار {\persianttfamily …}. با پس‌گفتار {\persianttfamily …}. {\persianttfamily محل نشر}:{\persianttfamily ناشر}. شابک: {\persianttfamily …}. شناسه‌ی دیجیتال: {\persianttfamily …}. دسترسی در {\persianttfamily …}. تارنما: {\persianttfamily …}. 
+{\persianttfamily گردآورنده}، گردآورنده‌‌‌‌(گان). {\persianttfamily تاریخ}. {\persianttfamily عنوان}. ویرایش {\persianttfamily …}. چاپ {\persianttfamily …}. نوشته‌ی {\persianttfamily …}. ترجمه‌ی {\persianttfamily …}. {\persianttfamily تاریخ ترجمه}. {\persianttfamily جلد، جلدها، فروست، شماره}. با همکاری {\persianttfamily …}. با یادداشت {\persianttfamily …}. ویراسته‌ی {\persianttfamily …}. با مقدمه‌ی {\persianttfamily …}. با پیش‌گفتار {\persianttfamily …}. با پس‌گفتار {\persianttfamily …}. {\persianttfamily محل نشر: ناشر}. {\persianttfamily یادداشت}. شابک: {\persianttfamily …}. شناسه‌ی دیجیتال: {\persianttfamily …}. دسترسی در {\persianttfamily …}. تارنما: {\persianttfamily …}.
 \end{itemize}
 
 
 
-\subsubsection*{کتابهای ترجمه شده}
-مدخل کتابی که مشخصه‌ی \verb|translator| آن وارد شود به صورت زیر فهرست میشود.
 
+
+\subsection{کتابهایی که زیر نام ویراستار مرتب میشوند}
+اگر برای مدخل کتاب، مشخصه‌های \verb|author|، و \verb|compiler| وارد نشوند، در صورت وجود مشخصه‌ی \verb|editor|، زیر نام ویراستار مرتب میشود.
+
 \begin{itemize}[nosep]
 \begin{latin}
 \item[] []
-{\tt author}. {\tt year}. {\tt title}. {\tt edition} edn. {\tt impression} imp. by {\tt by}. Translated by {\tt translator}. {\tt translateyear}. {\tt volume volumes series number}. In collaboration with {\tt collaboration}. Commented by {\tt commentator}. Compiled by {\tt compiler}. Edited by {\tt editor}. Introduction by {\tt introduction}. Preface by {\tt preface}. Afterwords by {\tt afterword}. {\tt address}:{\tt publisher}. {\tt note}. ISBN: {\tt isbn}. DOI: {\tt doi}. Retrieved {\tt urldate}. URL: {\tt url}. 
+{\tt editor}, ed(s). {\tt year}. {\tt title}. {\tt edition} edn. {\tt impression} imp. by {\tt by}. Translated by {\tt translator}. {\tt translateyear}. {\tt volume volumes series number}. In collaboration with {\tt collaboration}. Commented by {\tt commentator}. Introduction by {\tt introduction}. Preface by {\tt preface}. Afterwords by {\tt afterword}. {\tt address: publisher}. {\tt note}. ISBN: {\tt isbn}. DOI: {\tt doi}. Retrieved {\tt urldate}. URL: {\tt url}. 
 \end{latin}
 
 \item[] []
-{\persianttfamily نویسنده}. {\persianttfamily تاریخ}. {\persianttfamily عنوان}. ویرایش {\persianttfamily …}. چاپ {\persianttfamily …}. نوشته‌ی {\persianttfamily …}. ترجمه‌ی {\persianttfamily …}. {\persianttfamily تاریخ ترجمه}. {\persianttfamily جلد فروست}. با همکاری {\persianttfamily …}. با یادداشت {\persianttfamily …}. گردآوری {\persianttfamily …}. ویراسته‌ی {\persianttfamily …}. با مقدمه‌ی {\persianttfamily …}. با پیش‌گفتار {\persianttfamily …}. با پس‌گفتار {\persianttfamily …}. {\persianttfamily محل نشر}:{\persianttfamily ناشر}. شابک: {\persianttfamily …}. شناسه‌ی دیجیتال: {\persianttfamily …}. دسترسی در {\persianttfamily …}. تارنما: {\persianttfamily …}. 
+{\persianttfamily ویراستار}، ویراستار(ان). {\persianttfamily تاریخ}. {\persianttfamily عنوان}. ویرایش {\persianttfamily …}. چاپ {\persianttfamily …}. نوشته‌ی {\persianttfamily …}. ترجمه‌ی {\persianttfamily …}. {\persianttfamily تاریخ ترجمه}. {\persianttfamily جلد، جلدها، فروست، شماره}. با همکاری {\persianttfamily …}. با یادداشت {\persianttfamily …}. ویراسته‌ی {\persianttfamily …}. با مقدمه‌ی {\persianttfamily …}. با پیش‌گفتار {\persianttfamily …}. با پس‌گفتار {\persianttfamily …}. {\persianttfamily محل نشر: ناشر}. {\persianttfamily یادداشت}. شابک: {\persianttfamily …}. شناسه‌ی دیجیتال: {\persianttfamily …}. دسترسی در {\persianttfamily …}. تارنما: {\persianttfamily …}.
 \end{itemize}
 
 
@@ -75,35 +174,63 @@
 
 
 
-\subsection{کتابهایی که زیر نام گردآورده مرتب میشوند}
-اگر برای مدخل کتاب، مشخصه‌ی \verb|author| وارد نشود، در صورت وجود مشخصه‌ی \verb|compiler|، زیر نام گردآونده مرتب میشود.
+\subsection{کتابهایی که زیر نام مترجم مرتب میشوند}
+اگر برای مدخل کتاب، مشخصه‌های \verb|author|، \verb|compiler|، و \verb|editor| وارد نشوند، در صورت وجود مشخصه‌ی \verb|translator|، زیر نام مترجم مرتب میشود.
 
-\subsubsection*{کتابهای ترجمه نشده}
-مدخل کتابی که مشخصه‌ی \verb|translator| آن خالی باشد، به صورت زیر فهرست میشود.
+\begin{itemize}[nosep]
+\begin{latin}
+\item[] []
+{\tt translator}, tran(s). {\tt translateyear}. {\tt title}. {\tt edition} edn. {\tt impression} imp. by {\tt by}. {\tt year}. {\tt volume volumes series number}. In collaboration with {\tt collaboration}. Commented by {\tt commentator}. Introduction by {\tt introduction}. Preface by {\tt preface}. Afterwords by {\tt afterword}. {\tt address: publisher}. {\tt note}. ISBN: {\tt isbn}. DOI: {\tt doi}. Retrieved {\tt urldate}. URL: {\tt url}. 
+\end{latin}
 
+\item[] []
+{\persianttfamily مترجم}، مترجم(‍ان). {\persianttfamily تاریخ ترجمه}. {\persianttfamily عنوان}. ویرایش {\persianttfamily …}. چاپ {\persianttfamily …}. نوشته‌ی {\persianttfamily …}. {\persianttfamily تاریخ}. {\persianttfamily جلد، جلدها، فروست، شماره}. با همکاری {\persianttfamily …}. با یادداشت {\persianttfamily …}. ویراسته‌ی {\persianttfamily …}. با مقدمه‌ی {\persianttfamily …}. با پیش‌گفتار {\persianttfamily …}. با پس‌گفتار {\persianttfamily …}. {\persianttfamily محل نشر: ناشر}. {\persianttfamily یادداشت}. شابک: {\persianttfamily …}. شناسه‌ی دیجیتال: {\persianttfamily …}. دسترسی در {\persianttfamily …}. تارنما: {\persianttfamily …}.
+\end{itemize}
+
+
+
+
+
+\subsection{کتابهایی که زیر عنوان مرتب میشوند}
+اگر برای مدخل کتاب، مشخصه‌های \verb|author|، \verb|compiler|، \verb|editor|، و \verb|translator| وارد نشوند، باید مشخصه‌ی \verb|key| آن مدخل برابر با مشخصه‌ی \verb|title| وارد شود که زیر عنوان مرتب گردد.
+
 \begin{itemize}[nosep]
 \begin{latin}
 \item[] []
-{\tt compiler}, comp(s). {\tt year}. {\tt title}. {\tt edition} edn. {\tt impression} imp. by {\tt by}. {\tt volume volumes series number}. In collaboration with {\tt collaboration}. Commented by {\tt commentator}. Edited by {\tt editor}. Introduction by {\tt introduction}. Preface by {\tt preface}. Afterwords by {\tt afterword}. {\tt address}:{\tt publisher}. {\tt note}. ISBN: {\tt isbn}. DOI: {\tt doi}. Retrieved {\tt urldate}. URL: {\tt url}. 
+{\tt title}. {\tt year}. {\tt edition} edn. {\tt impression} imp. by {\tt by}. {\tt volume volumes series number}. In collaboration with {\tt collaboration}. Commented by {\tt commentator}. Introduction by {\tt introduction}. Preface by {\tt preface}. Afterwords by {\tt afterword}. {\tt address: publisher}. {\tt note}. ISBN: {\tt isbn}. DOI: {\tt doi}. Retrieved {\tt urldate}. URL: {\tt url}. 
 \end{latin}
 
 \item[] []
-{\persianttfamily گردآورنده}، گردآورنده‌‌‌‌(گان). {\persianttfamily تاریخ}. {\persianttfamily عنوان}. ویرایش {\persianttfamily …}. چاپ {\persianttfamily …}. نوشته‌ی {\persianttfamily …}. {\persianttfamily جلد فروست}. با همکاری {\persianttfamily …}. با یادداشت {\persianttfamily …}. ویراسته‌ی {\persianttfamily …}. با مقدمه‌ی {\persianttfamily …}. با پیش‌گفتار {\persianttfamily …}. با پس‌گفتار {\persianttfamily …}. {\persianttfamily محل نشر}:{\persianttfamily ناشر}. شابک: {\persianttfamily …}. شناسه‌ی دیجیتال: {\persianttfamily …}. دسترسی در {\persianttfamily …}. تارنما: {\persianttfamily …}. 
+{\persianttfamily عنوان}. {\persianttfamily تاریخ}. ویرایش {\persianttfamily …}. چاپ {\persianttfamily …}. نوشته‌ی {\persianttfamily …}. {\persianttfamily جلد، جلدها، فروست، شماره}. با همکاری {\persianttfamily …}. با یادداشت {\persianttfamily …}. ویراسته‌ی {\persianttfamily …}. با مقدمه‌ی {\persianttfamily …}. با پیش‌گفتار {\persianttfamily …}. با پس‌گفتار {\persianttfamily …}. {\persianttfamily محل نشر: ناشر}. {\persianttfamily یادداشت}. شابک: {\persianttfamily …}. شناسه‌ی دیجیتال: {\persianttfamily …}. دسترسی در {\persianttfamily …}. تارنما: {\persianttfamily …}.
 \end{itemize}
 
 
 
-\subsubsection*{کتابهای ترجمه شده}
-مدخل کتابی که مشخصه‌ی \verb|translator| آن وارد شود به صورت زیر فهرست میشود.
 
+
+
+
+
+
+
+\section{پاره‌ای از یک کتاب}
+برای استناد به فصلی از کتاب، یا بخشی از یک کتاب که عنوان مشخصی دارد از مدخل \verb|@incollection| استفاده کنید. الگوی چیدمان مشخصه‌های مدخل \verb|@incollection| در ادامه ارائه شده است.
+
+
+
+
+
+\subsection{پاره‌ای از کتاب که زیر نام نویسنده مرتب میشود}
+اگر برای مدخل \verb|@incollection|، مشخصه‌ی \verb|author| وارد گردد، زیر نام نویسنده مرتب میشود.
+
 \begin{itemize}[nosep]
 \begin{latin}
 \item[] []
-{\tt compiler}, comp(s). {\tt year}. {\tt title}. {\tt edition} edn. {\tt impression} imp. by {\tt by}. Translated by {\tt translator}. {\tt translateyear}. {\tt volume volumes series number}. In collaboration with {\tt collaboration}. Commented by {\tt commentator}. Edited by {\tt editor}. Introduction by {\tt introduction}. Preface by {\tt preface}. Afterwords by {\tt afterword}. {\tt address}:{\tt publisher}. {\tt note}. ISBN: {\tt isbn}. DOI: {\tt doi}. Retrieved {\tt urldate}. URL: {\tt url}. 
+{\tt author}. {\tt year}. {\tt title}. by {\tt by}. {\tt chapter, booktitle, pages, volume, volumes}. {\tt edition} edn. {\tt impression} imp. Translated by {\tt translator}. {\tt translateyear}. {\tt series number}. Compiled by {\tt compiler}. Edited by {\tt editor}. {\tt address: publisher}. {\tt note}. ISBN: {\tt isbn}. DOI: {\tt doi}. Retrieved {\tt urldate}. URL: {\tt url}. 
 \end{latin}
 
 \item[] []
-{\persianttfamily گردآورنده}، گردآورنده‌‌‌‌(گان). {\persianttfamily تاریخ}. {\persianttfamily عنوان}. ویرایش {\persianttfamily …}. چاپ {\persianttfamily …}. نوشته‌ی {\persianttfamily …}. ترجمه‌ی {\persianttfamily …}. {\persianttfamily تاریخ ترجمه}. {\persianttfamily جلد فروست}. با همکاری {\persianttfamily …}. با یادداشت {\persianttfamily …}. ویراسته‌ی {\persianttfamily …}. با مقدمه‌ی {\persianttfamily …}. با پیش‌گفتار {\persianttfamily …}. با پس‌گفتار {\persianttfamily …}. {\persianttfamily محل نشر}:{\persianttfamily ناشر}. شابک: {\persianttfamily …}. شناسه‌ی دیجیتال: {\persianttfamily …}. دسترسی در {\persianttfamily …}. تارنما: {\persianttfamily …}.
+{\persianttfamily نویسنده}. {\persianttfamily تاریخ}. {\persianttfamily عنوان}. نوشته‌ی {\persianttfamily …}. {\persianttfamily فصل، عنوان‌کتاب، صفحه‌ها، جلد، جلدها}. ویرایش {\persianttfamily …}. چاپ {\persianttfamily …}. ترجمه‌ی {\persianttfamily …}. {\persianttfamily تاریخ ترجمه}. {\persianttfamily فروست، شماره}. گردآوری {\persianttfamily …}. ویراسته‌ی {\persianttfamily …}. {\persianttfamily محل نشر: ناشر}. {\persianttfamily یادداشت}. شابک: {\persianttfamily …}. شناسه‌ی دیجیتال: {\persianttfamily …}. دسترسی در {\persianttfamily …}. تارنما: {\persianttfamily …}. 
 \end{itemize}
 
 
@@ -110,35 +237,51 @@
 
 
 
-\subsection{کتابهایی که زیر نام ویراستار مرتب میشوند}
-اگر برای مدخل کتاب، مشخصه‌های \verb|author|، و \verb|compiler| وارد نشوند، در صورت وجود مشخصه‌ی \verb|editor|، زیر نام ویراستار مرتب میشود.
+\subsection{پاره‌ای از کتاب که زیر نام گردآورنده مرتب میشود}
+اگر برای مدخل \verb|@incollection|، مشخصه‌ی \verb|author| وارد نشود، در صورت وجود مشخصه‌ی \verb|compiler| زیر نام گردآورنده مرتب میشود.
 
-\subsubsection*{کتابهای ترجمه نشده}
-مدخل کتابی که مشخصه‌ی \verb|translator| آن خالی باشد، به صورت زیر فهرست میشود.
+\begin{itemize}[nosep]
+\begin{latin}
+\item[] []
+{\tt compiler}, comp(s). {\tt year}. {\tt title}. by {\tt by}. {\tt chapter, booktitle, pages, volume, volumes}. {\tt edition} edn. {\tt impression} imp. Translated by {\tt translator}. {\tt translateyear}. {\tt series number}. Edited by {\tt editor}. {\tt address: publisher}. {\tt note}. ISBN: {\tt isbn}. DOI: {\tt doi}. Retrieved {\tt urldate}. URL: {\tt url}. 
+\end{latin}
 
+\item[] []
+{\persianttfamily گردآورنده}، گردآورنده(گان). {\persianttfamily تاریخ}. {\persianttfamily عنوان}. نوشته‌ی {\persianttfamily …}. {\persianttfamily فصل، عنوان‌کتاب، صفحه‌ها، جلد، جلدها}. ویرایش {\persianttfamily …}. چاپ {\persianttfamily …}. ترجمه‌ی {\persianttfamily …}. {\persianttfamily تاریخ ترجمه}. {\persianttfamily فروست، شماره}. ویراسته‌ی {\persianttfamily …}. {\persianttfamily محل نشر: ناشر}. {\persianttfamily یادداشت}. شابک: {\persianttfamily …}. شناسه‌ی دیجیتال: {\persianttfamily …}. دسترسی در {\persianttfamily …}. تارنما: {\persianttfamily …}. 
+\end{itemize}
+
+
+
+
+
+\subsection{پاره‌ای از کتاب که زیر نام ویراستار مرتب میشود}
+اگر برای مدخل \verb|@incollection|، مشخصه‌های \verb|author|، و \verb|compiler| وارد نشود، در صورت وجود مشخصه‌ی \verb|editor| زیر نام گردآورنده مرتب میشود.
+
 \begin{itemize}[nosep]
 \begin{latin}
 \item[] []
-{\tt editor}, ed(s). {\tt year}. {\tt title}. {\tt edition} edn. {\tt impression} imp. by {\tt by}. {\tt volume volumes series number}. In collaboration with {\tt collaboration}. Commented by {\tt commentator}. Introduction by {\tt introduction}. Preface by {\tt preface}. Afterwords by {\tt afterword}. {\tt address}:{\tt publisher}. {\tt note}. ISBN: {\tt isbn}. DOI: {\tt doi}. Retrieved {\tt urldate}. URL: {\tt url}. 
+{\tt editor}, ed(s). {\tt year}. {\tt title}. by {\tt by}. {\tt chapter, booktitle, pages, volume, volumes}. {\tt edition} edn. {\tt impression} imp. Translated by {\tt translator}. {\tt translateyear}. {\tt series number}. {\tt address: publisher}. {\tt note}. ISBN: {\tt isbn}. DOI: {\tt doi}. Retrieved {\tt urldate}. URL: {\tt url}. 
 \end{latin}
 
 \item[] []
-{\persianttfamily ویراستار}، ویراستار(ان). {\persianttfamily تاریخ}. {\persianttfamily عنوان}. ویرایش {\persianttfamily …}. چاپ {\persianttfamily …}. نوشته‌ی {\persianttfamily …}. {\persianttfamily جلد فروست}. با همکاری {\persianttfamily …}. با یادداشت {\persianttfamily …}. با مقدمه‌ی {\persianttfamily …}. با پیش‌گفتار {\persianttfamily …}. با پس‌گفتار {\persianttfamily …}. {\persianttfamily محل نشر}:{\persianttfamily ناشر}. شابک: {\persianttfamily …}. شناسه‌ی دیجیتال: {\persianttfamily …}. دسترسی در {\persianttfamily …}. تارنما: {\persianttfamily …}. 
+{\persianttfamily ویراستار}، ویراستار(ان). {\persianttfamily تاریخ}. {\persianttfamily عنوان}. نوشته‌ی {\persianttfamily …}. {\persianttfamily فصل، عنوان‌کتاب، صفحه‌ها، جلد، جلدها}. ویرایش {\persianttfamily …}. چاپ {\persianttfamily …}. ترجمه‌ی {\persianttfamily …}. {\persianttfamily تاریخ ترجمه}. {\persianttfamily فروست، شماره}. {\persianttfamily محل نشر: ناشر}. {\persianttfamily یادداشت}. شابک: {\persianttfamily …}. شناسه‌ی دیجیتال: {\persianttfamily …}. دسترسی در {\persianttfamily …}. تارنما: {\persianttfamily …}. 
 \end{itemize}
 
 
 
-\subsubsection*{کتابهای ترجمه شده}
-مدخل کتابی که مشخصه‌ی \verb|translator| آن وارد شود به صورت زیر فهرست میشود.
 
+
+\subsection{پاره‌ای از کتاب که زیر نام مترجم مرتب میشود}
+اگر برای مدخل \verb|@incollection|، مشخصه‌های \verb|author|، \verb|compiler|، و \verb|editor| وارد نشود، در صورت وجود مشخصه‌ی \verb|translator|، زیر نام مترجم مرتب میشود.
+
 \begin{itemize}[nosep]
 \begin{latin}
 \item[] []
-{\tt editor}, ed(s). {\tt year}. {\tt title}. {\tt edition} edn. {\tt impression} imp. by {\tt by}. Translated by {\tt translator}. {\tt translateyear}. {\tt volume volumes series number}. In collaboration with {\tt collaboration}. Commented by {\tt commentator}. Introduction by {\tt introduction}. Preface by {\tt preface}. Afterwords by {\tt afterword}. {\tt address}:{\tt publisher}. {\tt note}. ISBN: {\tt isbn}. DOI: {\tt doi}. Retrieved {\tt urldate}. URL: {\tt url}. 
+{\tt translator}, trans. {\tt translateyear}. {\tt title}. by {\tt by}. {\tt year}. {\tt chapter, booktitle, pages, volume, volumes}. {\tt edition} edn. {\tt impression} imp. {\tt series number}. Compiled by {\tt compiler}. Edited by {\tt editor}. {\tt address: publisher}. {\tt note}. ISBN: {\tt isbn}. DOI: {\tt doi}. Retrieved {\tt urldate}. URL: {\tt url}. 
 \end{latin}
 
 \item[] []
-{\persianttfamily ویراستار}، ویراستار(ان). {\persianttfamily تاریخ}. {\persianttfamily عنوان}. ویرایش {\persianttfamily …}. چاپ {\persianttfamily …}. نوشته‌ی {\persianttfamily …}. ترجمه‌ی {\persianttfamily …}. {\persianttfamily تاریخ ترجمه}. {\persianttfamily جلد فروست}. با همکاری {\persianttfamily …}. با یادداشت {\persianttfamily …}. ویراسته‌ی {\persianttfamily …}. با مقدمه‌ی {\persianttfamily …}. با پیش‌گفتار {\persianttfamily …}. با پس‌گفتار {\persianttfamily …}. {\persianttfamily محل نشر}:{\persianttfamily ناشر}. شابک: {\persianttfamily …}. شناسه‌ی دیجیتال: {\persianttfamily …}. دسترسی در {\persianttfamily …}. تارنما: {\persianttfamily …}.
+{\persianttfamily مترجم}، مترجم(‍ان). {\persianttfamily تاریخ ترجمه}. {\persianttfamily عنوان}. نوشته‌ی {\persianttfamily …}. {\persianttfamily تاریخ}. {\persianttfamily فصل، عنوان‌کتاب، صفحه‌ها، جلد، جلدها}. ویرایش {\persianttfamily …}. چاپ {\persianttfamily …}. {\persianttfamily فروست، شماره}. گردآوری {\persianttfamily …}. ویراسته‌ی {\persianttfamily …}. {\persianttfamily محل نشر: ناشر}. {\persianttfamily یادداشت}. شابک: {\persianttfamily …}. شناسه‌ی دیجیتال: {\persianttfamily …}. دسترسی در {\persianttfamily …}. تارنما: {\persianttfamily …}. 
 \end{itemize}
 
 
@@ -145,17 +288,17 @@
 
 
 
-\subsection{کتابهایی که زیر نام مترجم مرتب میشوند}
-اگر برای مدخل کتاب، مشخصه‌های \verb|author|، \verb|compiler|، و \verb|editor| وارد نشوند، در صورت وجود مشخصه‌ی \verb|translator|، زیر نام مترجم مرتب میشود.
+\subsection{پاره‌ای از کتاب که زیر عنوان مرتب میشود}
+ااگر برای مدخل \verb|@incollection|، مشخصه‌های \verb|author|، و \verb|translator| وارد نشوند، باید مشخصه‌ی \verb|key| آن مدخل برابر با مشخصه‌ی \verb|title| وارد شود که زیر عنوان مرتب گردد.
 
 \begin{itemize}[nosep]
 \begin{latin}
 \item[] []
-{\tt translator}, tran(s). {\tt translateyear}. {\tt title}. {\tt edition} edn. {\tt impression} imp. by {\tt by}. {\tt year}. {\tt volume volumes series number}. In collaboration with {\tt collaboration}. Commented by {\tt commentator}. Introduction by {\tt introduction}. Preface by {\tt preface}. Afterwords by {\tt afterword}. {\tt address}:{\tt publisher}. {\tt note}. ISBN: {\tt isbn}. DOI: {\tt doi}. Retrieved {\tt urldate}. URL: {\tt url}. 
+{\tt title}. {\tt year}. by {\tt by}. {\tt chapter, booktitle, pages, volume, volumes}. {\tt edition} edn. {\tt impression} imp. {\tt series number}. Compiled by {\tt compiler}. Edited by {\tt editor}. {\tt address: publisher}. {\tt note}. ISBN: {\tt isbn}. DOI: {\tt doi}. Retrieved {\tt urldate}. URL: {\tt url}. 
 \end{latin}
 
 \item[] []
-{\persianttfamily مترجم}، مترجم(‍ان). {\persianttfamily تاریخ ترجمه}. {\persianttfamily عنوان}. ویرایش {\persianttfamily …}. چاپ {\persianttfamily …}. نوشته‌ی {\persianttfamily …}. {\persianttfamily تاریخ}. {\persianttfamily جلد فروست}. با همکاری {\persianttfamily …}. با یادداشت {\persianttfamily …}. ویراسته‌ی {\persianttfamily …}. با مقدمه‌ی {\persianttfamily …}. با پیش‌گفتار {\persianttfamily …}. با پس‌گفتار {\persianttfamily …}. {\persianttfamily محل نشر}:{\persianttfamily ناشر}. شابک: {\persianttfamily …}. شناسه‌ی دیجیتال: {\persianttfamily …}. دسترسی در {\persianttfamily …}. تارنما: {\persianttfamily …}.
+{\persianttfamily عنوان}. {\persianttfamily تاریخ}. نوشته‌ی {\persianttfamily …}. {\persianttfamily فصل، عنوان‌کتاب، صفحه‌ها، جلد، جلدها}. ویرایش {\persianttfamily …}. چاپ {\persianttfamily …}. {\persianttfamily فروست، شماره}. گردآوری {\persianttfamily …}. ویراسته‌ی {\persianttfamily …}. {\persianttfamily محل نشر: ناشر}. {\persianttfamily یادداشت}. شابک: {\persianttfamily …}. شناسه‌ی دیجیتال: {\persianttfamily …}. دسترسی در {\persianttfamily …}. تارنما: {\persianttfamily …}. 
 \end{itemize}
 
 
@@ -162,20 +305,209 @@
 
 
 
-\subsection{کتابهایی که زیر عنوان مرتب میشوند}
-اگر برای مدخل کتاب، مشخصه‌های \verb|author|، \verb|compiler|، \verb|editor|، و \verb|translator| وارد نشوند، باید مشخصه‌ی \verb|key| آن مدخل برابر با مشخصه‌ی \verb|title| وارد شود که زیر عنوان مرتب گردد.
 
+
+
+
+
+\section{مجموعه‌ی مقاله‌های یک همایش}
+برای استناد به کتابی که دربردارنده‌ی مقاله‌های یک همایش است، از مدخل \verb|@proceedings| استفاده کنید. الگوی چیدمان مشخصه‌های مدخل \verb|@proceedings| در ادامه ارائه شده است.
+
+
+
+
+
+\subsection{مجموعه مقاله‌ای که زیر نام ویراستار مرتب میشود}
+اگر برای مدخل \verb|@proceedings|، مشخصه‌ی \verb|editor| وارد گردد، زیر نام ویراستار مرتب میشود.
+
 \begin{itemize}[nosep]
 \begin{latin}
 \item[] []
-{\tt title}. {\tt year}. {\tt edition} edn. {\tt impression} imp. by {\tt by}. {\tt volume volumes series number}. In collaboration with {\tt collaboration}. Commented by {\tt commentator}. Introduction by {\tt introduction}. Preface by {\tt preface}. Afterwords by {\tt afterword}. {\tt address}:{\tt publisher}. {\tt note}. ISBN: {\tt isbn}. DOI: {\tt doi}. Retrieved {\tt urldate}. URL: {\tt url}. 
+{\tt editor}, ed(s). {\tt year}. {\tt title}. {\tt edition} edn. {\tt impression} imp. Translated by {\tt translator}. {\tt translateyear}. {\tt volume volumes series number}. Compiled by {\tt compiler}. {\tt organization}. {\tt address: publisher}. {\tt note}. ISBN: {\tt isbn}. ISSN: {\tt issn}. DOI: {\tt doi}. Retrieved {\tt urldate}. URL: {\tt url}. 
 \end{latin}
 
 \item[] []
-{\persianttfamily عنوان}. {\persianttfamily تاریخ}. ویرایش {\persianttfamily …}. چاپ {\persianttfamily …}. نوشته‌ی {\persianttfamily …}. {\persianttfamily جلد فروست}. با همکاری {\persianttfamily …}. با یادداشت {\persianttfamily …}. ویراسته‌ی {\persianttfamily …}. با مقدمه‌ی {\persianttfamily …}. با پیش‌گفتار {\persianttfamily …}. با پس‌گفتار {\persianttfamily …}. {\persianttfamily محل نشر}:{\persianttfamily ناشر}. شابک: {\persianttfamily …}. شناسه‌ی دیجیتال: {\persianttfamily …}. دسترسی در {\persianttfamily …}. تارنما: {\persianttfamily …}.
+{\persianttfamily ویراستار}، ویراستار(ان). {\persianttfamily تاریخ}. {\persianttfamily عنوان}. ویرایش {\persianttfamily …}. چاپ {\persianttfamily …}. ترجمه‌ی {\persianttfamily …}. {\persianttfamily تاریخ ترجمه}. {\persianttfamily جلد، جلدها، فروست، شماره}. گردآوری {\persianttfamily …}. {\persianttfamily سازمان}. {\persianttfamily محل نشر: ناشر}. {\persianttfamily یادداشت}. شابک: {\persianttfamily …}. شاپا: {\persianttfamily …}. شناسه‌ی دیجیتال: {\persianttfamily …}. دسترسی در {\persianttfamily …}. تارنما: {\persianttfamily …}. 
 \end{itemize}
 
 
 
 
+
+\subsection{مجموعه مقاله‌ای که زیر نام گردآورنده مرتب میشود}
+اگر برای مدخل \verb|@proceedings|، مشخصه‌ی \verb|editor| وارد نشود، در صورت وجود مشخصه‌ی \verb|compiler| زیر نام گردآورنده مرتب میشود.
+
+\begin{itemize}[nosep]
+\begin{latin}
+\item[] []
+{\tt compiler}, comp(s). {\tt year}. {\tt title}. {\tt edition} edn. {\tt impression} imp. Translated by {\tt translator}. {\tt translateyear}. {\tt volume volumes series number}. {\tt organization}. {\tt address: publisher}. {\tt note}. ISBN: {\tt isbn}. ISSN: {\tt issn}. DOI: {\tt doi}. Retrieved {\tt urldate}. URL: {\tt url}. 
+\end{latin}
+
+\item[] []
+{\persianttfamily گردآورنده}، گردآورنده(گان). {\persianttfamily تاریخ}. {\persianttfamily عنوان}. ویرایش {\persianttfamily …}. چاپ {\persianttfamily …}. ترجمه‌ی {\persianttfamily …}. {\persianttfamily تاریخ ترجمه}. {\persianttfamily جلد، جلدها، فروست، شماره}. {\persianttfamily سازمان}. {\persianttfamily محل نشر: ناشر}. {\persianttfamily یادداشت}. شابک: {\persianttfamily …}. شاپا: {\persianttfamily …}. شناسه‌ی دیجیتال: {\persianttfamily …}. دسترسی در {\persianttfamily …}. تارنما: {\persianttfamily …}. 
+\end{itemize}
+
+
+
+
+
+\subsection{مجموعه مقاله‌ای که زیر نام مترجم مرتب میشوند}
+اگر برای مدخل \verb|@proceedings|، مشخصه‌های \verb|editor|، و \verb|compiler| وارد نشوند، در صورت وجود مشخصه‌ی \verb|translator|، زیر نام مترجم مرتب میشود.
+
+\begin{itemize}[nosep]
+\begin{latin}
+\item[] []
+{\tt translator}, tran(s). {\tt translateyear}. {\tt title}. {\tt edition} edn. {\tt impression} imp. {\tt volume volumes series number}. {\tt organization}. {\tt address: publisher}. {\tt note}. ISBN: {\tt isbn}. ISSN: {\tt issn}. DOI: {\tt doi}. Retrieved {\tt urldate}. URL: {\tt url}. 
+\end{latin}
+
+\item[] []
+{\persianttfamily مترجم}، مترجم(‍ان). {\persianttfamily تاریخ ترجمه}. {\persianttfamily عنوان}. ویرایش {\persianttfamily …}. چاپ {\persianttfamily …}. {\persianttfamily جلد، جلدها، فروست، شماره}. {\persianttfamily سازمان}. {\persianttfamily محل نشر: ناشر}. {\persianttfamily یادداشت}. شابک: {\persianttfamily …}. شاپا: {\persianttfamily …}. شناسه‌ی دیجیتال: {\persianttfamily …}. دسترسی در {\persianttfamily …}. تارنما: {\persianttfamily …}. 
+\end{itemize}
+
+
+
+
+
+\subsection{مجموعه مقاله‌ای که زیر عنوان مرتب میشوند}
+اگر برای مدخل \verb|@proceedings|، مشخصه‌های \verb|editor|، \verb|compiler|، و \verb|translator| وارد نشوند، باید مشخصه‌ی \verb|key| آن مدخل برابر با مشخصه‌ی \verb|title| وارد شود که زیر عنوان مرتب گردد.
+
+\begin{itemize}[nosep]
+\begin{latin}
+\item[] []
+{\tt title}. {\tt year}. {\tt edition} edn. {\tt impression} imp. {\tt volume volumes series number}. {\tt organization}. {\tt address: publisher}. {\tt note}. ISBN: {\tt isbn}. ISSN: {\tt issn}. DOI: {\tt doi}. Retrieved {\tt urldate}. URL: {\tt url}. 
+\end{latin}
+
+\item[] []
+{\persianttfamily عنوان}. {\persianttfamily تاریخ}. ویرایش {\persianttfamily …}. چاپ {\persianttfamily …}. {\persianttfamily جلد، جلدها، فروست، شماره}. {\persianttfamily سازمان}. {\persianttfamily محل نشر: ناشر}. {\persianttfamily یادداشت}. شابک: {\persianttfamily …}. شاپا: {\persianttfamily …}. شناسه‌ی دیجیتال: {\persianttfamily …}. دسترسی در {\persianttfamily …}. تارنما: {\persianttfamily …}.
+\end{itemize}
+
+
+
+
+
+
+
+
+
+
+\section{مقاله‌ی چاپ شده در مجموعه مقاله‌های یک همایش}
+برای استناد به مقاله‌ای که در یک همایش ارائه شده سپس در مجموعه مقاله‌های آن همایش چاپ شده است از مدخل \verb|@inproceedings| استفاده کنید. الگوی چیدمان مشخصه‌های مدخل \verb|@inproceedings| در ادامه ارائه شده است.
+
+
+
+
+
+\subsection{مقاله‌ای که زیر نام نویسنده مرتب میشود}
+اگر برای مدخل \verb|@inproceedings|، مشخصه‌ی \verb|author| وارد گردد، زیر نام نویسنده مرتب میشود.
+
+\begin{itemize}[nosep]
+\begin{latin}
+\item[] []
+{\tt author}. {\tt year}. {\tt title}. by {\tt by}. {\tt booktitle, pages, volume, volumes}. {\tt edition} edn. {\tt impression} imp. Translated by {\tt translator}. {\tt translateyear}. {\tt series number}. Compiled by {\tt compiler}. Edited by {\tt editor}. {\tt address: publisher}. {\tt note}. ISBN: {\tt isbn}. ISSN: {\tt issn}. DOI: {\tt doi}. Retrieved {\tt urldate}. URL: {\tt url}. 
+\end{latin}
+
+\item[] []
+{\persianttfamily نویسنده}. {\persianttfamily تاریخ}. {\persianttfamily عنوان}. نوشته‌ی {\persianttfamily …}. {\persianttfamily عنوان‌کتاب، صفحه‌ها، جلد، جلدها}. ویرایش {\persianttfamily …}. چاپ {\persianttfamily …}. ترجمه‌ی {\persianttfamily …}. {\persianttfamily تاریخ ترجمه}. {\persianttfamily فروست شماره}. گردآوری {\persianttfamily …}. ویراسته‌ی {\persianttfamily …}. {\persianttfamily محل نشر: ناشر}. {\persianttfamily یادداشت}. شابک: {\persianttfamily …}. شاپا: {\persianttfamily …}. شناسه‌ی دیجیتال: {\persianttfamily …}. دسترسی در {\persianttfamily …}. تارنما: {\persianttfamily …}. 
+\end{itemize}
+
+
+
+
+
+\subsection{مقاله‌ای که زیر نام مترجم مرتب میشود}
+اگر برای مدخل \verb|@inproceedings|، مشخصه‌ی \verb|author| وارد نشود، در صورت وجود مشخصه‌ی \verb|translator|، زیر نام مترجم مرتب میشود.
+
+\begin{itemize}[nosep]
+\begin{latin}
+\item[] []
+{\tt translator}, trans. {\tt translateyear}. {\tt title}. by {\tt by}. {\tt year}. {\tt booktitle, pages, volume, volumes}. {\tt edition} edn. {\tt impression} imp. {\tt series number}. Compiled by {\tt compiler}. Edited by {\tt editor}. {\tt address: publisher}. {\tt note}. ISBN: {\tt isbn}. ISSN: {\tt issn}. DOI: {\tt doi}. Retrieved {\tt urldate}. URL: {\tt url}. 
+\end{latin}
+
+\item[] []
+{\persianttfamily مترجم}، مترجم(‍ان). {\persianttfamily تاریخ ترجمه}. {\persianttfamily عنوان}. نوشته‌ی {\persianttfamily …}. {\persianttfamily تاریخ}. {\persianttfamily عنوان‌کتاب، صفحه‌ها، جلد، جلدها}. ویرایش {\persianttfamily …}. چاپ {\persianttfamily …}. {\persianttfamily فروست شماره}. گردآوری {\persianttfamily …}. ویراسته‌ی {\persianttfamily …}. {\persianttfamily محل نشر: ناشر}. {\persianttfamily یادداشت}. شابک: {\persianttfamily …}. شاپا: {\persianttfamily …}. شناسه‌ی دیجیتال: {\persianttfamily …}. دسترسی در {\persianttfamily …}. تارنما: {\persianttfamily …}. 
+\end{itemize}
+
+
+
+
+
+\subsection{مقاله‌ای که زیر عنوان مرتب میشود}
+ااگر برای مدخل \verb|@inproceedings|، مشخصه‌های \verb|author|، و \verb|translator| وارد نشوند، باید مشخصه‌ی \verb|key| آن مدخل برابر با مشخصه‌ی \verb|title| وارد شود که زیر عنوان مرتب گردد.
+
+\begin{itemize}[nosep]
+\begin{latin}
+\item[] []
+{\tt title}. {\tt year}. by {\tt by}. {\tt booktitle, pages, volume, volumes}. {\tt edition} edn. {\tt impression} imp. {\tt series number}. Compiled by {\tt compiler}. Edited by {\tt editor}. {\tt address: publisher}. {\tt note}. ISBN: {\tt isbn}. ISSN: {\tt issn}. DOI: {\tt doi}. Retrieved {\tt urldate}. URL: {\tt url}. 
+\end{latin}
+
+\item[] []
+{\persianttfamily عنوان}. {\persianttfamily تاریخ}. نوشته‌ی {\persianttfamily …}. {\persianttfamily عنوان‌کتاب، صفحه‌ها، جلد، جلدها}. ویرایش {\persianttfamily …}. چاپ {\persianttfamily …}. {\persianttfamily فروست شماره}. گردآوری {\persianttfamily …}. ویراسته‌ی {\persianttfamily …}. {\persianttfamily محل نشر: ناشر}. {\persianttfamily یادداشت}. شابک: {\persianttfamily …}. شاپا: {\persianttfamily …}. شناسه‌ی دیجیتال: {\persianttfamily …}. دسترسی در {\persianttfamily …}. تارنما: {\persianttfamily …}. 
+\end{itemize}
+
+
+
+
+
+
+
+
+
+
+\section{مقاله‌ی ارائه شده در یک همایش}
+برای استناد به مقاله‌ای که در یک همایش ارائه شده است از مدخل \verb|@conference| استفاده کنید. الگوی چیدمان مشخصه‌های مدخل \verb|@conference| در ادامه ارائه شده است.
+
+
+
+
+
+\subsection{مقاله‌ای که زیر نام نویسنده مرتب میشود}
+اگر برای مدخل \verb|@conference|، مشخصه‌ی \verb|author| وارد گردد، زیر نام نویسنده مرتب میشود.
+
+\begin{itemize}[nosep]
+\begin{latin}
+\item[] []
+{\tt author}. {\tt year}. {\tt title}. by {\tt by}. Translated by {\tt translator}. {\tt translateyear}. {\tt series, number, pages}. Edited by {\tt editor}. {\tt organization, address, publisher}. {\tt note}. ISSN: {\tt issn}. DOI: {\tt doi}. Retrieved {\tt urldate}. URL: {\tt url}. 
+\end{latin}
+
+\item[] []
+{\persianttfamily نویسنده}. {\persianttfamily تاریخ}. {\persianttfamily عنوان}. نوشته‌ی {\persianttfamily …}. ترجمه‌ی {\persianttfamily …}. {\persianttfamily تاریخ ترجمه}. {\persianttfamily فروست، شماره، صفحه‌ها}. ویراسته‌ی {\persianttfamily …}. {\persianttfamily سازمان، محل نشر، ناشر}. {\persianttfamily یادداشت}. شاپا: {\persianttfamily …}. شناسه‌ی دیجیتال: {\persianttfamily …}. دسترسی در {\persianttfamily …}. تارنما: {\persianttfamily …}. 
+\end{itemize}
+
+
+
+
+
+\subsection{مقاله‌ای که زیر نام مترجم مرتب میشود}
+اگر برای مدخل \verb|@conference|، مشخصه‌ی \verb|author| وارد نشود، در صورت وجود مشخصه‌ی \verb|translator|، زیر نام مترجم مرتب میشود.
+
+\begin{itemize}[nosep]
+\begin{latin}
+\item[] []
+{\tt translator}, trans. {\tt translateyear}. {\tt title}. by {\tt by}. {\tt year}. {\tt series, number, pages}. Edited by {\tt editor}. {\tt organization, address, publisher}. {\tt note}. ISSN: {\tt issn}. DOI: {\tt doi}. Retrieved {\tt urldate}. URL: {\tt url}. 
+\end{latin}
+
+\item[] []
+{\persianttfamily مترجم}، مترجم(‍ان). {\persianttfamily  تاریخ ترجمه}. {\persianttfamily عنوان}. نوشته‌ی {\persianttfamily …}. {\persianttfamily تاریخ}.  {\persianttfamily فروست، شماره، صفحه‌ها}. ویراسته‌ی {\persianttfamily …}. {\persianttfamily سازمان، محل نشر، ناشر}. {\persianttfamily یادداشت}. شاپا: {\persianttfamily …}. شناسه‌ی دیجیتال: {\persianttfamily …}. دسترسی در {\persianttfamily …}. تارنما: {\persianttfamily …}. 
+\end{itemize}
+
+
+
+
+
+\subsection{مقاله‌ای که زیر عنوان مرتب میشود}
+ااگر برای مدخل \verb|@conference|، مشخصه‌های \verb|author|، و \verb|translator| وارد نشوند، باید مشخصه‌ی \verb|key| آن مدخل برابر با مشخصه‌ی \verb|title| وارد شود که زیر عنوان مرتب گردد.
+
+\begin{itemize}[nosep]
+\begin{latin}
+\item[] []
+{\tt title}. {\tt year}. by {\tt by}. {\tt series, number, pages}. Edited by {\tt editor}. {\tt organization, address, publisher}. {\tt note}. ISSN: {\tt issn}. DOI: {\tt doi}. Retrieved {\tt urldate}. URL: {\tt url}. 
+\end{latin}
+
+\item[] []
+{\persianttfamily عنوان}. {\persianttfamily تاریخ}. نوشته‌ی {\persianttfamily …}. {\persianttfamily فروست، شماره، صفحه‌ها}. ویراسته‌ی {\persianttfamily …}. {\persianttfamily سازمان، محل نشر، ناشر}. {\persianttfamily یادداشت}. شاپا: {\persianttfamily …}. شناسه‌ی دیجیتال: {\persianttfamily …}. دسترسی در {\persianttfamily …}. تارنما: {\persianttfamily …}. 
+\end{itemize}
+
+
+
+
 \end{document}
\ No newline at end of file

Modified: trunk/Master/texmf-dist/tex/latex/iran-bibtex/iran-bibtex.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/iran-bibtex/iran-bibtex.sty	2023-12-15 00:42:55 UTC (rev 69136)
+++ trunk/Master/texmf-dist/tex/latex/iran-bibtex/iran-bibtex.sty	2023-12-15 22:00:26 UTC (rev 69137)
@@ -11,7 +11,7 @@
 %%   This work is “author-maintained” (as per LPPL maintenance status)
 %%   by Farshad Rasuli.
 %% 
-%%   Location on CTAN: /macros/xetex/latex/iran-bibtex
+%%   Location on CTAN: /biblio/bibtex/contrib/iran-bibtex
 %%
 %%   Homepage: http://github.com/farshadrasuli/iran-bibtex
 %%
@@ -24,8 +24,8 @@
 % === Package structure: Identification
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesPackage{iran-bibtex}
-\def\iranbibtex at version{0.1}
-\def\iranbibtexdate{2023/12/12} % December 12th, 2023
+\def\iranbibtex at version{0.2.0}
+\def\iranbibtexdate{2023/12/15} % December 15th, 2023
 \def\iranbibtexfirstrelease{2023/12/12} % December 12th, 2023
 \edef\@iranbibtex at info{%
 ****************************************************^^J%
@@ -62,19 +62,8 @@
 }
 
 
-%% iran bibliography style: author-year style, ordered by year
-\DeclareOption{iran-year}
-{%
-	\setcitestyle{authoryear,% citation mode
-	              round,% braces
-	              aysep={},% between author and year
-	             }%
-	\bibliographystyle{iran}%
-}
 
 
-
-
 \ProcessOptions\relax
 
 
@@ -87,13 +76,14 @@
 \newcommand{\enquote}[1]{``#1''}
 \newcommand{\faquote}[1]{«#1»}
 \providecommand{\url}[1]{{\tt #1}}
-\providecommand{\doi}[1]{{\tt #1‏}}
+\providecommand{\doi}[1]{\url{#1}}
+\providecommand{\eprint}[2][]{\url{#2}}
 
 
 
 
 
-% === Package structure: Change extra label (2000a, b, ...) to persian harfi
+% === Package structure: Extra label appended to year for one author in same year
 
 \providecommand{\natexlaben}[1]{#1}
 



More information about the tex-live-commits mailing list.