LaTeX から BibTeX へ

LaTeX から BibTeX へ

LaTeX で書かれた古い文書があり、編集/書き直す必要があります。文書には、BibTex を使用せず、古いスタイルのthebibliography環境と\bibitem's だけで何百もの引用があります。古い参考文献を再利用し、BibTex を使用して新しい参考文献を追加したいと思います。古い参考文献を再利用できる方法はありますか? 思い浮かぶのは、\bibitem's エントリを翻訳して BibTex 形式にするスクリプトか何かですが、どんな解決策でも歓迎します。ところで、Google と Stack Exchange での (確かに表面的な) 検索では、解決策は見つかりませんでした。

答え1

グーグルでちょっと検索してみたところ、かもしれない仕事:

tex2bib:http://mirror.ctan.org/biblio/bibtex/utils/tex2bib

convertbiblio http://www.mi.infm.it/manini/scripts/convertbiblio.py

もちろん、インターネットからスクリプトを実行する場合は、通常の注意事項が適用されます。他の人が指摘しているように、エントリを手動でクリーンアップする必要がある可能性があります。フォーマットされたエントリから書誌データを取得するのは簡単ではありません。特に、大幅にカスタマイズされたスタイルを使用している場合はなおさらです。

クレジットTeXに関するよくある質問tex2bib へのリンク用。

答え2

私はこの問題に対する簡単な解決策を思いつきました。

残念ながら、この解決策は、参照が登録されている人にのみ有効です。https://inspirehep.net/Webサイト。

では、始めましょう:

まず、すべての参考文献を記載したファイル (bib.txt という名前) を作成しました。以下はその内容の例です。

%\cite{White:2012zza}
\bibitem{White:2012zza} 
  R.~M.~White [BaBar Collaboration],
  %``Recent charm physics results from BaBar,''
  J.\ Phys.\ Conf.\ Ser.\  {\bf 347}, 012026 (2012).
  %%CITATION = 00462,347,012026;%%


 %\cite{Zupanc:2013byn}
  \bibitem{Zupanc:2013byn} 
    A.~Zupanc {\it et al.}  [Belle Collaboration],
    %``Measurements of branching fractions of leptonic and hadronic $D_{s}^{+}$ meson decays and extraction of the $D_{s}^{+}$ meson decay constant,''
  JHEP {\bf 1309}, 139 (2013)
 [arXiv:1307.6240 [hep-ex]].
%%CITATION = ARXIV:1307.6240;%%
 %13 citations counted in INSPIRE as of 04 Nov 2014kda

そこで、私はスクリプトを書きました(回答の最後に添付されています)。マセマティカファイルを読み取り、特定の形式でファイル「bibform.tex」に出力します。このファイルをこのウェブサイトに送信すると(https://inspirehep.net/submit?doctype=bibtex&act=SBI) 参照スタイルに必要な形式が提供されます。

SetDirectory[NotebookDirectory[]];
file = OpenRead["bib.txt"];
x = ReadList[file, String];
Close[file];

file = OpenWrite["bibform.tex"];
WriteString[file, "\\documentclass[a4paper,12pt]{article}"];
WriteString[file, "\\begin{document}"];
j = 0;

Do[
If[StringMatchQ[x[[i]], "*" <> "\cite{" <> "*"],
WriteString[file, 
"a~\\cite{" <> 
 StringSplit[StringSplit[x[[i]], "}"][[1]], "{"][[2]] <> "}" <> 
 "\n\n"];
j = j + 1;
  ];
, {i, 1, Length[x]}]

WriteString[file, "\\end{document}"];
Print["Found " <> ToString[j] <> "  References.\n"]
Print["File Writen:"]
Close[file]
Print["Upload the file to: \

https://inspirehep.net/submit?doctype=bibtex&act=SBI\n to get the \
output format."]

関連情報