コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
Turgenev's Wiki
検索
検索
表示
ログイン
個人用ツール
ログイン
Zoteroのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
特別ページ
ページ情報
表示
サイドバーに移動
非表示
←
Zotero
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、以下のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
文献管理ソフト。Firefox界隈由来のOSSで、割と自由に何でも設定できるので、そういうのが好きな人にはおすすめ。 ==初期設定== Zoteroが提供するストレージは300MBとかしかないので外部のクラウドストレージで論文ファイルを管理するのがおすすめ。これに関しては[https://note.com/sdeso/n/n013952313c1b【令和最新版】文献管理ソフトZoteroのすゝめ|SD|note]nmd_mw_mark_linkが大変詳しく、これでほぼ十分であるが、いくつか追加しておく。 *Zotero自体がもともとFirefoxのアドオンに由来している関係で、Zoteroの拡張機能の拡張子.xpiはFirefoxのアドオンのものと同一であるため、FirefoxからZoteroの拡張機能をダウンロードしようとしてクリックすると(アドオンと混同されて)「ファイルが壊れています」などと出ることがある。なので右クリックから保存を選ぶ。 *ファイルの自動命名は日本人だと苗字がLastNameと判断されてしまうなど微妙であったが、うまく直せなさそうなのでデフォルト設定のままでよさそう。 *コレクションごとにフォルダ分けしたい場合は、”Usesubfolderdefinedby”を\%c(linuxでもこれで大丈夫だが/%cでもよい)にする(この場合は、複数のコレクションに属するアイテムが発生しないよう気を付ける)。参考:[https://dr-kayai.hatenablog.com/entry/2020/02/09/234427Zoteroの使い方(我流、逐次更新)-BagofMLWords]nmd_mw_mark_linkなど ===ブラウザ拡張の使い方など=== ブラウザ拡張はZotero起動時のみ使える。Zoteroのウインドウで論文を入れたい対象のコレクションを開いておいてからブラウザで拡張機能アイコンをクリックするとそこに入れてくれる。普通に左クリックしたときにEmbeddedMetadataを使用しろみたいなエラーがでることがあるので、そういうときは右クリックしてそれっぽいのを選ぶ。 ブラウザ拡張を経由せずに(ローカルにあるpdfを)入れるときは、ZoteroのウインドウにD&D(このとき元の場所にファイルを残しておく必要がなければshiftを押せば削除される(移動になる))して取り込む。日本語論文などで文献情報がうまく読まれない場合は、ManualEntryを作成するしかない場合もあるが、J-STAGEなどから取ってきたものであれば、改めてWebでその論文を探してブラウザ拡張で入れるとうまくいくこともある(pdfエディタで注釈などを記入済みならファイルだけ後で差し替えればよい)。 ブラウザ拡張を経由しない場合、ZotFileのフォルダ内の適切なコレクションには分類されないので、適宜アイテムを選択してRenameAttachmentsをする必要がある。なお(最初のサイトで推奨されている通り)”<strong>サブコレクションからアイテムを表示</strong>”がonだと特定コレクションの中身(サブコレクション内部を含め)すべてに対してRenameAttachmentできて便利だが、実はonでしなくてもマイ・ライブラリを押したときは全アイテムが表示されるのでそれで十分だと思う(あと、サブコレクションから表示されてるアイテムを別コレクションに移動しようとしても正しく元の場所から削除されずコピー扱いになってしまうデメリットもこれで解決できる)。なお、前述のようにクラウドストレージのフォルダをLocationofFilesに指定して同期している場合、RenameAttachmentsすることで初めてファイルが同期されることになるので、できるだけ早めにやっておくべし。 また、Zotero内のゴミ箱に移動してもファイルは自動で移動されないし、完全に削除してもファイルは消えない。今のところの筆者の運用としては、一旦DELETEという名前のコレクションに移動してからRenameandmoveを実行し、適宜ゴミ箱に移動して(アイテムを)削除し、DELETEフォルダの中身も定期的に削除する、とやっている。 ==dateデータのフォーマットについて== ZoteroConnectorはサイトやpdfから論文の投稿(掲載?)日時を自動で取得してくれるが、結果の文字列はブラウザ本体の言語設定によって変わる。具体的には、日本語であれば「4月22,2011」、英語であれば「April22,2011」のようになる。なお、そもそも日付が取得できず年と月だけあるいは年だけの論文、また日付まで取れても「2011-04-22」のような書式になる論文もあり、これはどのサイトから取得するかなどによって異なるとみられるが詳細不明。 本来はこんな言語依存の単一文字列ではなく年、月、日それぞれ明示的に別のデータとして管理するのが筋だろう。実際、この仕様のせいで、BetterBibTeXの使用時に問題が発生していた(後述)。 <spanid="better-bibtex-for-zotero"></span> ==[https://retorque.re/zotero-better-bibtex/<strong>BetterBibTeXforZotero</strong>]nmd_mw_mark_link== まずは普通に[https://retorque.re/zotero-better-bibtex/BetterBibTeXforZotero]nmd_mw_mark_linkからxpiをインストール、再起動すると再びdrag-and-dropを有効にするため再起動しろと言われるので再起動する。Citationkeyが追加されている。設定はZotfileのような別メニューではなくZoteroの設定画面に追加されている。[https://qiita.com/skrb_hs/items/73061b7a8e39f1e73e0dZotero+BibTeXで参考文献の出力を自動化&論文の引用で出てきた順にソートする]nmd_mw_mark_linkの通り、export→fieldsのfieldstoomitfromexportにabstract,file,doiと書く。[https://plaza.umin.ac.jp/shoei05/wp/index.php/2020/10/31/206/Zoteroでcitationkeysを設定する(zotero-better-bibtex)-shoei05]nmd_mw_mark_linkの通りCitationkeysを[auth:lower][year][shorttitle1_1]に変更する。 Citationkeyは「情報」タブに表示されているほか、メイン画面に表示することもできる。また検索でも使える(これは設定で無効にできる) <spanid="日本語文献のcitation-keyについて"></span> ====日本語文献のCitationKeyについて==== [https://qiita.com/shiro_takeda/items/dfb857e69aa8ed2cc977https://qiita.com/shiro_takeda/items/dfb857e69aa8ed2cc977]nmd_mw_mark_link <spanid="yearデータの不具合6760で修正済"></span> ====yearデータの不具合(<u>6.7.60で修正済</u>)==== 参考文献には出版年を書く必要があり、BibTeXではyearというフィールドに書かれる。このデータはZoteroの文献情報のdateのところから取得されており、「April22,2011」「2011-04-22」のようなdateのデータからは正しく「2011」だけを抽出してくれるが、dateが前述の「4月22,2011」のような書式になっていた場合はうまくいかず、この文字列全てがBibTeX(.bib)に出力されてしまう(報告済み:[https://github.com/retorquere/zotero-better-bibtex/issues/2449[Bug]:Japanesedateformatisnotparsedcorrectly·Issue#2449·retorquere/zotero-better-bibtex]nmd_mw_mark_link、6.7.61あたりで修正済み)。←の通り、BetterBibTeXのエクスポート時に適用されるscript(Export→postscript)のところにデータを置換するための以下のようなコードを書いておくとよい。 <syntaxhighlightlang="python">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/2447https://github.com/retorquere/zotero-better-bibtex/issues/2447]nmd_mw_mark_link)。 <spanid="zotero-protocolを使用した操作"></span> ==ZoteroProtocolを使用した操作== {{Valuable}} ZoteroはGUIのソフトであるが、コマンドラインからも一定の操作が可能である。具体的には、<code>zotero://</code>という形式のURL(URIスキーム)を以下のように指定してZoteroを起動することができる(既に起動していた場合は、画面に変化が起こる)。 <syntaxhighlightlang="python">python zotero.exe-url"zotero://url/here"</syntaxhighlight> URLについては、明確にAPIとして仕様が定められたものではなさそうで、全体的にあまりドキュメントは充実していない。 一例として、特定のコレクション内のアイテムが選択された状態にするということができる。コメントが不親切でわかりづらいが[https://github.com/zotero/zotero/blob/master/components/zotero-protocol-handler.jszotero/zotero-protocol-handler.jsatmaster·zotero/zotero]nmd_mw_mark_linkの<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とは別なので注意。 <spanid="指定されたcitation-keyのアイテムをzoteroで開く"></span> ==指定されたCitationkeyのアイテムをZoteroで開く== 前述の方法を応用して実装してみる。ここではCitationkeyとしてBetterBibTeXのものを使うことを仮定する。 まず、Citationkeyからアイテムのキーを取得する部分を作る。CitationkeyはBetterBibTeXが管理しているので(ここではデフォルトの~/Zoteroに各種データがあると仮定して)~/Zotero/better-bibtex.sqliteを読めばアイテムのkeyとの対応がわかる。次にアイテムが所属するコレクション(複数ある場合は最初のもの)のkeyをzotero.sqliteから取得する。ここではIDを一旦経由する必要がある。 Zoteroの起動中はデータベースファイルがロックされているが、[https://sqlite.org/forum/info/a2e9387b8ea1c919b2ad1ecafb417cebb15c48634c55b3abd6a9acbb2fabf797SQLiteForum:Optiontoopenadatabaseasread-onlydespitelocked.]nmd_mw_mark_linkにある通り、(Windowsなら)<code>sqlite3"file:Zotero\\zotero.sqlite?mode=ro&nolock=1"</code>のようにしてやると読み取り専用で開くことはできる(書き込まないのでこれで充分)。今回はpythonで実装するが、pythonのsqliteでもこのパラメータが同じく使える。 コード例: <syntaxhighlight style="margin-bottom:0.2em;"lang="python">python importsqlite3 importsys importjson importsubprocess db=sqlite3.connect('file:'+sys.argv[1]+'?mode=ro&nolock=1',uri=True) cur=db.cursor() cur.execute('SELECTdataFROM"better-bibtex"wherename="better-bibtex.citekey"') d=json.loads(cur.fetchone()[0]) mydict={} foritemind["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("SELECTitemIDFROMitemsWHEREkey=?",(myKey,)) item_id=cur2.fetchone()[0] cur2.execute("SELECTcollectionIDFROMcollectionItemsWHEREitemID=?",(item_id,)) #所属する最初のコレクションIDを取得 collection_id=cur2.fetchone()[0] #collectionIDからcollectionKeyを取得 cur2.execute("SELECTkeyFROMcollectionsWHEREcollectionID=?",(collection_id,)) collection_key=cur2.fetchone()[0] print(collection_key) subprocess.run(f'"C:\ProgramFiles(x86)\Zotero\zotero.exe"-url"zotero://select/library/collections/{collection_key}/items/{myKey}') db.close() db2.close()</syntaxhighlight> <divstyle='text-align:center;'>zoto.py</div> 上記コードは以下のように起動できる。 <syntaxhighlightlang="python">c# python"path\to\zoto.py""%USERPROFILE%\Zotero\better-bibtex.sqlite""%USERPROFILE%\Zotero\zotero.sqlite"%1</syntaxhighlight> *[[Windowsのクリップボードを用いた選択コンテンツの取得|Windowsのクリップボードを用いた選択コンテンツの取得]]nmd_mw_mark_linkと組み合わせれば、選択文字列をCitationkeyとするアイテムを一発で開くことも可能。 ==その他== アイテムが入っているコレクションを知りたいときはアイテムが選択された状態でCtrlキーを押すとよい。 [[Category:IT]]{{#seo:|title={{FULLPAGENAME}}-Turgenev'sWiki}}
このページで使用されているテンプレート:
テンプレート:Valuable
(
ソースを閲覧
)
Zotero
に戻る。