Workflow for taking notes from scientific papers
The two main ingredients are a reference manager and CopyQ (including a few additional commands).
Paperpile (or Zotero or whatever)
- Use the browser plugin, which for Paperpile gives you a little “Add to Paperpile” button next to Google Scholar results.
- For Web of Science searches, you can download a list of results as a RIS file (or whatever).
- Full-text PDFs, when freely available, are added automatically (if using the “Add to Paperpile” button) or by hitting Shift+D in Paperpile. The rest you’ll have to obtain and add to Paperpile manually (suboptimal and annoying!).
CopyQ
- In Preferences, make sure you have ticked “Store clipboard”, “Store text selected using mouse”, and “Run automatic commands on selection”.
- If you’re on Fedora, there’s an issue that means you have to do this extra step to get CopyQ working.
- Open the Commands menu, and copy and paste the following commands into the menu. (You can set the shortcuts to whatever you want.)
- Now, when you open a PDF, you can simply select text and it’s automatically copied into CopyQ.
- You can copy (or screenshot) images, and they’ll be stored in a separate tab in CopyQ.
- Then you can open your clipboard history in CopyQ, select all the items and hit F6 (or whatever shortcut you’ve set), and all the annoying line breaks etc from PDFs (plus any text formatting if you’re copying from a website!) will be automatically removed.
- Then you can just copy and paste the whole lot into your notes document at once.
[Command]
Command="
copyq:
function modifySelectedItemData(itemData)
{
if (mimeText in itemData) {
itemData[mimeText] = str(itemData[mimeText]).replace(/\\s+/g, ' ');
delete itemData[mimeHtml]
}
}
var itemsData = selectedItemsData()
for (var i in itemsData) {
var itemData = itemsData[i]
modifySelectedItemData(itemsData[i])
}
setSelectedItemsData(itemsData)"
Icon=\xf15b
InMenu=true
Name=Clean
Shortcut=f6
[Command]
Automatic=true
Command="
copyq:
const imageTab = '&Images';
function hasImageFormat(formats) {
for (const format of formats.values()) {
if (format.startsWith('image/'))
return true;
}
return false;
}
const formats = dataFormats();
if (hasImageFormat(formats)) {
setData(mimeOutputTab, imageTab);
}"
Icon=\xf302
Name=Image Tab
Future improvements
- My ideal notes file would be plain text or markdown, rather than Google Docs as I’m using now. Google Docs adds bullet points automatically if you paste text into a list - if you’re pasting into plaintext or markdown or whatever, it’d be better to add to the first command to also insert an asterisk at the beginning of each item so you have ready-made bullet points.
- My ideal reference manager would be Zotero rather than Paperpile. I think this would mostly work the same for Zotero though.