tmalsburg / helm-bibtex

Search and manage bibliographies in Emacs
GNU General Public License v2.0
462 stars 74 forks source link

[Feature request] impact factor and cited number #57

Closed llcc closed 9 years ago

llcc commented 9 years ago

Hi @tmalsburg

Do you have any idea that how to add the impact factor of general and cited number to helm-bibtex?

Because I have a lot of papers, I would like to choose paper with good impact factor and well cited number to read and cite first. Of course, I can do it manually by looking up in website or by memorizing the journals. However, it is still convenient to pick up papers if IF and cited number are there.

Thanks in advance. llcc

tmalsburg commented 9 years ago

I would use tags for that. Specifically you could use tags named high-impact / low-impact and high-citation / low-citation. It's not great though, because impact factors and citations change over time, so the maintenance cost for your bibliography would be high. But there is nothing that helm-bibtex can do to prevent that.

llcc commented 9 years ago

Hi, @tmalsburg

I finally made it to get cited number from google scholar, and insert them in the bibtex entry, like:

@article{hashi-1996-study-si-fe,
  author =   {S. Hashi and K. Ishiyama and K.I. Arai and
                  M. Kawasaki and Y. Yamashiro},
  title =    {Study on the Deformation of 3%si-Fe Single Crystal
                  With Magnetic Field Being Deviated From [001]},
  citation =  38 ,
  journal =  {IEEE Transactions on Magnetics},
  volume =   32,
  number =   5,
  pages =    {4848-4850},
  year =     1996,
  doi =      {10.1109/20.539172},
  url =      {http://dx.doi.org/10.1109/20.539172},
  date_added =   {Tue Jun 2 09:08:08 2015},
}

I want to add them (citation field) to the helm-bibtex window. I tried to modify helm-bibtex-candidates-formatter function to meet my need, but no success to show them. Can you correct it for me?

(defun helm-bibtex-candidates-formatter (candidates source)
  "Formats BibTeX entries for display in results list."
  (cl-loop
   with width = (with-helm-window (helm-bibtex-window-width))
   for entry in candidates
   for entry = (cdr entry)
   for entry-key = (helm-bibtex-get-value "=key=" entry)
   if (assoc-string "author" entry 'case-fold)
   for fields = '("author" "title" "year" "citation" "=has-pdf=" "=has-note=" "=type=")
   else
   for fields = '("editor" "title" "year" "citation" "=has-pdf=" "=has-note=" "=type=")
   for fields = (--map (helm-bibtex-clean-string
                        (helm-bibtex-get-value it entry " "))
                       fields)
   for fields = (-update-at 0 'helm-bibtex-shorten-authors fields)
   collect
   (cons (s-format "$0 $1 $2 $3 $4 $5 $6" 'elt
                   (-zip-with (lambda (f w) (truncate-string-to-width f w 0 ?\s))
                              fields (list 35 (- width 58) 4 3 1 1 7)))
         entry-key)))
tmalsburg commented 9 years ago

Sorry, @llcc, I don't have any time at all currently. From quickly glancing at your code, the approach looks reasonable. Perhaps a good opportunity for you to learn how to debug elisp?

llcc commented 9 years ago

@tmalsburg Thanks, I did it by adding the bibtex field to helm-bibtex-additional-search-fields. Now I achieve everything I need, so I think I can close this issue.

Regrading to the impact factor and cited number, I will share the relevant snippet later.

tmalsburg commented 9 years ago

Excellent! Glad to hear that you could make it work.