ホーム
おまかせ表示
ログイン
設定
Turgenev's Wikiについて
免責事項
Turgenev's Wiki
検索
Zoteroのソースを表示
←
Zotero
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、以下のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
文献管理ソフト。Firefox界隈由来のOSSで、割と自由に何でも設定できるので、そういうのが好きな人にはおすすめ。 == 初期設定 == Zoteroが提供するストレージは300MBとかしかないので外部のクラウドストレージで論文ファイルを管理するのがおすすめ。これに関しては [https://note.com/sdeso/n/n013952313c1b 【令和最新版】文献管理ソフト Zoteroのすゝめ|SD|note] が大変詳しく、これでほぼ十分であるが、いくつか追加しておく。 * Zotero自体がもともとFirefoxのアドオンに由来している関係で、Zoteroの拡張機能の拡張子.xpiはFirefoxのアドオンのものと同一であるため、FirefoxからZoteroの拡張機能をダウンロードしようとしてクリックすると(アドオンと混同されて)「ファイルが壊れています」などと出ることがある。なので右クリックから保存を選ぶ。 * ファイルの自動命名は日本人だと苗字がLast Nameと判断されてしまうなど微妙であったが、うまく直せなさそうなのでデフォルト設定のままでよさそう。 * コレクションごとにフォルダ分けしたい場合は、”Use subfolder defined by”を\%c(linuxでもこれで大丈夫だが/%cでもよい)にする(この場合は、複数のコレクションに属するアイテムが発生しないよう気を付ける)。参考:[https://dr-kayai.hatenablog.com/entry/2020/02/09/234427 Zoteroの使い方(我流、逐次更新) - Bag of ML Words]など === ブラウザ拡張の使い方など === ブラウザ拡張はZotero起動時のみ使える。Zoteroのウインドウで論文を入れたい対象のコレクションを開いておいてからブラウザで拡張機能アイコンをクリックするとそこに入れてくれる。普通に左クリックしたときにEmbedded Metadataを使用しろみたいなエラーがでることがあるので、そういうときは右クリックしてそれっぽいのを選ぶ。 ブラウザ拡張を経由せずに(ローカルにあるpdfを)入れるときは、ZoteroのウインドウにD&D(このとき元の場所にファイルを残しておく必要がなければshiftを押せば削除される(移動になる))して取り込む。日本語論文などで文献情報がうまく読まれない場合は、Manual Entryを作成するしかない場合もあるが、J-STAGEなどから取ってきたものであれば、改めてWebでその論文を探してブラウザ拡張で入れるとうまくいくこともある(pdfエディタで注釈などを記入済みならファイルだけ後で差し替えればよい)。 ブラウザ拡張を経由しない場合、ZotFileのフォルダ内の適切なコレクションには分類されないので、適宜アイテムを選択してRename Attachmentsをする必要がある。なお(最初のサイトで推奨されている通り)”<strong>サブコレクションからアイテムを表示</strong>”がonだと特定コレクションの中身(サブコレクション内部を含め)すべてに対してRename Attachmentできて便利だが、実はonでしなくてもマイ・ライブラリを押したときは全アイテムが表示されるのでそれで十分だと思う(あと、サブコレクションから表示されてるアイテムを別コレクションに移動しようとしても正しく元の場所から削除されずコピー扱いになってしまうデメリットもこれで解決できる)。なお、前述のようにクラウドストレージのフォルダをLocation of Filesに指定して同期している場合、Rename Attachmentsすることで初めてファイルが同期されることになるので、できるだけ早めにやっておくべし。 また、Zotero内のゴミ箱に移動してもファイルは自動で移動されないし、完全に削除してもファイルは消えない。今のところの筆者の運用としては、一旦DELETEという名前のコレクションに移動してからRename and moveを実行し、適宜ゴミ箱に移動して(アイテムを)削除し、DELETEフォルダの中身も定期的に削除する、とやっている。 == dateデータのフォーマットについて == Zotero Connectorはサイトやpdfから論文の投稿(掲載?)日時を自動で取得してくれるが、結果の文字列はブラウザ本体の言語設定によって変わる。具体的には、日本語であれば「4月 22 , 2011」、英語であれば「April 22, 2011」のようになる。なお、そもそも日付が取得できず年と月だけあるいは年だけの論文、また日付まで取れても「2011-04-22」のような書式になる論文もあり、これはどのサイトから取得するかなどによって異なるとみられるが詳細不明。 本来はこんな言語依存の単一文字列ではなく年、月、日それぞれ明示的に別のデータとして管理するのが筋だろう。実際、この仕様のせいで、Better BibTeXの使用時に問題が発生していた(後述)。 <span id="better-bibtex-for-zotero"></span> == [https://retorque.re/zotero-better-bibtex/ <strong>Better BibTeX for Zotero</strong>] == まずは普通に[https://retorque.re/zotero-better-bibtex/ Better BibTeX for Zotero]からxpiをインストール、再起動すると再びdrag-and-dropを有効にするため再起動しろと言われるので再起動する。Citation keyが追加されている。設定はZotfileのような別メニューではなくZoteroの設定画面に追加されている。[https://qiita.com/skrb_hs/items/73061b7a8e39f1e73e0d Zotero+BibTeXで参考文献の出力を自動化&論文の引用で出てきた順にソートする]の通り、export→fieldsのfields to omit from exportにabstract,file,doiと書く。[https://plaza.umin.ac.jp/shoei05/wp/index.php/2020/10/31/206/ Zotero で citation keys を設定する ( zotero-better-bibtex ) - shoei05]の通りCitation keysを[auth:lower][year][shorttitle1_1]に変更する。 Citation keyは「情報」タブに表示されているほか、メイン画面に表示することもできる。また検索でも使える(これは設定で無効にできる) <span id="日本語文献のcitation-keyについて"></span> ==== 日本語文献のCitation Keyについて ==== [https://qiita.com/shiro_takeda/items/dfb857e69aa8ed2cc977 https://qiita.com/shiro_takeda/items/dfb857e69aa8ed2cc977] <span id="yearデータの不具合6760で修正済"></span> ==== yearデータの不具合(<u>6.7.60で修正済</u>) ==== 参考文献には出版年を書く必要があり、BibTeXではyearというフィールドに書かれる。このデータはZoteroの文献情報のdateのところから取得されており、「April 22, 2011」「2011-04-22」のようなdateのデータからは正しく「2011」だけを抽出してくれるが、dateが前述の「4月 22 , 2011」のような書式になっていた場合はうまくいかず、この文字列全てがBibTeX(.bib)に出力されてしまう(報告済み: [https://github.com/retorquere/zotero-better-bibtex/issues/2449 [Bug]: Japanese date format is not parsed correctly · Issue #2449 · retorquere/zotero-better-bibtex]、6.7.61あたりで修正済み)。←の通り、Better BibTeXのエクスポート時に適用されるscript(Export → postscript)のところにデータを置換するための以下のようなコードを書いておくとよい。 <syntaxhighlight lang="vb.net">if (tex.has.year) { tex.add({name: 'year', replace: true, value: tex.has.year.value.replace(/.* /, '')}) }</syntaxhighlight> 設定箇所はこんな感じ↓ <div class="res-img">https://turgenev.cloudfree.jp/mw1/imgs/zot-settings.jpg</div> * 今は治っているかもしれないが、デバッグ出力を有効化して再起動してからスクリプトを一度編集しないとスクリプトが読み込まれないバグがあった([https://github.com/retorquere/zotero-better-bibtex/issues/2447 <span>https://github.com/retorquere/zotero-better-bibtex/issues/2447</span>])。 <span id="zotero-protocolを使用した操作"></span> == Zotero Protocolを使用した操作 == {{Valuable}} ZoteroはGUIのソフトであるが、コマンドラインからも一定の操作が可能である。具体的には、<code>zotero://</code>という形式のURL(URIスキーム)を以下のように指定してZoteroを起動することができる(既に起動していた場合は、画面に変化が起こる)。 <syntaxhighlight lang="python">zotero.exe -url "zotero://url/here"</syntaxhighlight> URLについては、明確にAPIとして仕様が定められたものではなさそうで、全体的にあまりドキュメントは充実していない。 一例として、特定のコレクション内のアイテムが選択された状態にするということができる。コメントが不親切でわかりづらいが [https://github.com/zotero/zotero/blob/master/components/zotero-protocol-handler.js zotero/zotero-protocol-handler.js at master · zotero/zotero] の<code>scopeObject</code>などと書いてあるあたりをよく読むと、<code>zotero://select/library/collections/{collection_key}/items/{item_key}</code>という形式で指定すればよいことがわかる(groupIDなどと書いてある部分もあって紛らわしいが、groupというのはcollectionとは別の概念で、複数ユーザー間での共有のライブラリのようなものを指すようである)。<code>collection_key</code>と<code>item_key</code>はどちらも<code>1A2B3C4D</code>のような英数字による8文字の識別子である。ちなみにcollectionとitemにはそれぞれ<strong>ID</strong>も割り当てられているがこちらは1~3桁くらいの数字でありkeyとは別なので注意。 <span id="指定されたcitation-keyのアイテムをzoteroで開く"></span> == 指定されたCitation keyのアイテムをZoteroで開く == 前述の方法を応用して実装してみる。ここではCitation keyとしてBetter BibTeXのものを使うことを仮定する。 まず、Citation keyからアイテムのキーを取得する部分を作る。Citation keyはBetter BibTeXが管理しているので(ここではデフォルトの~/Zoteroに各種データがあると仮定して)~/Zotero/better-bibtex.sqliteを読めばアイテムのkeyとの対応がわかる。次にアイテムが所属するコレクション(複数ある場合は最初のもの)のkeyをzotero.sqliteから取得する。ここではIDを一旦経由する必要がある。 Zoteroの起動中はデータベースファイルがロックされているが、[https://sqlite.org/forum/info/a2e9387b8ea1c919b2ad1ecafb417cebb15c48634c55b3abd6a9acbb2fabf797 SQLite Forum: Option to open a database as read-only despite locked.]にある通り、(Windowsなら)<code>sqlite3 "file:Zotero\\zotero.sqlite?mode=ro&nolock=1"</code>のようにしてやると読み取り専用で開くことはできる(書き込まないのでこれで充分)。今回はpythonで実装するが、pythonのsqliteでもこのパラメータが同じく使える。 コード例: <syntaxhighlight style="margin-bottom:0.2em;" lang="python">import sqlite3 import sys import json import subprocess db = sqlite3.connect('file:'+sys.argv[1]+'?mode=ro&nolock=1', uri=True) cur = db.cursor() cur.execute('SELECT data FROM "better-bibtex" where name="better-bibtex.citekey"') d = json.loads(cur.fetchone()[0]) mydict = {} for item in d["data"]: mydict[item["citekey"]] = item["itemKey"] myKey = mydict[sys.argv[3]] db2 = sqlite3.connect('file:'+sys.argv[2]+'?mode=ro&nolock=1', uri=True) cur2 = db2.cursor() cur2.execute("SELECT itemID FROM items WHERE key=?", (myKey, )) item_id = cur2.fetchone()[0] cur2.execute("SELECT collectionID FROM collectionItems WHERE itemID=?", (item_id, )) # 所属する最初のコレクションIDを取得 collection_id = cur2.fetchone()[0] # collectionIDからcollectionKeyを取得 cur2.execute("SELECT key FROM collections WHERE collectionID=?", (collection_id,)) collection_key =cur2.fetchone()[0] print(collection_key) subprocess.run(f'"C:\Program Files (x86)\Zotero\zotero.exe" -url "zotero://select/library/collections/{collection_key}/items/{myKey}') db.close() db2.close()</syntaxhighlight> <div style='text-align: center;'>zoto.py</div> 上記コードは以下のように起動できる。 <syntaxhighlight lang="c#">python "path\to\zoto.py" "%USERPROFILE%\Zotero\better-bibtex.sqlite" "%USERPROFILE%\Zotero\zotero.sqlite" %1</syntaxhighlight> * [[Windowsのクリップボードを用いた選択コンテンツの取得|Windowsのクリップボードを用いた選択コンテンツの取得]]と組み合わせれば、選択文字列をCitation keyとするアイテムを一発で開くことも可能。 == その他 == アイテムが入っているコレクションを知りたいときはアイテムが選択された状態でCtrlキーを押すとよい。 [[Category:IT]]{{#seo:|title={{FULLPAGENAME}} - Turgenev's Wiki}}
このページで使用されているテンプレート:
テンプレート:Valuable
(
ソースを閲覧
)
Zotero
に戻る。