Я хотел бы найти лучший способ называть публикации, которые я храню на своем локальном компьютере, в виде PDF-файлов. До сих пор я делал что-то вроде этого:
Альбано Р., Соле А., Адамовски Дж., Манкузи Л. (2014) - Модель на основе ГИС для оценки последствий наводнения, а также степени доступности и работоспособности структур стратегического реагирования на чрезвычайные ситуации в городских районах.pdf
Это представляет пару недостатков:
Я хотел бы иметь последовательный способ управления такой базой данных. Я подумал о том, чтобы сохранить метаданные публикации, такие как авторы, дата публикации, тип публикации и тип, в отдельном текстовом файле или файле Excel и назвать PDF-файлы по идентификатору, например, и т. д. Это может работать, но для этого потребуется 1.pdf
обратиться 2.pdf
к и управление электронной таблицей, которая будет содержать все метаданные.
Есть ли простой метод или, возможно, легкое программное обеспечение, которое я могу использовать, чтобы помочь мне с такой задачей?
РЕДАКТИРОВАТЬ
Мне не очень понравилось, как устроен сценарий @Jonas Stein, хотя я обязан ему вдохновением и указанием на использование JabRef. Вот мой альтернативный скрипт:
import bibtexparser
import os
from shutil import copyfile
filename = 'db.bib'
out_folder = 'out'
with open(filename) as bibtex_file:
db = bibtexparser.load(bibtex_file)
for entry in db.entries:
print(entry['file'])
id = entry['ID']
file = entry['file'].split(':')[1]
copyfile(file, os.path.join(out_folder, id)+'.pdf')
print('done')
Он намного компактнее и выполняет свою работу.
Я управляю публикациями с помощью JabRef в базе данных bibtex . Есть возможность добавить ссылку на имя файла с JabRef в базе данных bibtex.
Скрипт python pybibtexcleaner транскрибирует специальные символы в заголовке и перемещает все отсортированные файлы в одну папку с именами файлов в формате
bibkey-title.pdf
Скрипт будет генерироваться из записи нагрудного номера
@Article{Stein2017a,
author = {J. Stein and M. Baum and S. Holbein and T. Finger and T. Cronert and C. Tölzer and T. Fröhlich and S. Biesenkamp and K. Schmalzl and P. Steffens and C.H. Lee and M. Braden},
title = {Control of Chiral Magnetism Through Electric Fields in Multiferroic Compounds above the Long-Range Multiferroic Transition},
journal = {Physical Review Letters},
year = {2017},
volume = {119},
number = {17},
doi = {10.1103/physrevlett.119.177201},
file = {:../included/119.177201.pdf},
publisher = {American Physical Society ({APS})}
}
новое имя файла
Stein2017a-Control_of_Chiral_Magnetism_Through_Electric_Fields_in_Multiferroic_Compounds_above_the_Long-Range_Multiferroic_Transition.pdf`
и скопируйте файл, ../articles/
а также настройте путь в .bib
файле.
Очень удобно, если имена файлов начинаются с расширения bibkey
. Вы всегда должны использовать все цифры года .
Скрипт также может транскрибировать химические формулы в удобочитаемом виде, если они начинаются \ce
с \ce{H2O}
.
Вы можете отслеживать свою работу с git и восстанавливать старые версии или синхронизировать базу данных литературы на разных ваших системах.
ps: я использую старую стабильную версию JabRef 3.8.2, потому что новые версии 4.x были менее стабильны, когда я их пробовал. Пользователь лучше контролирует процесс переименования с помощью короткого сценария Python и может легко настроить его в соответствии со своими потребностями, но последние версии JabRef поставляются с аналогичными функциями.
group
для printed
или read
бумаги.pybibtexcleaner.ini
в соответствии со своими настройками и попробовал python pybibtexcleaner.py
. Однако re
выдало ошибку: `re.error: bad escape \m в позиции 1. Проблемной строкой является строка 29. Как вы думаете, в чем может быть проблема? Спасибо.bibkey-title.pdf
. В чем смысл этого? Кроме того, зачем добавлять заголовок? Некоторые заголовки могут быть очень длинными....\ref{}
. Вы можете ограничить длину имени файла, просто обрезав строку после n символов.Для имени файла я использую систему, которую я скопировал у своего научного руководителя:
aaaadd_xxxx_jjj.pdf
где:
Затем я использую то же самое без .pdf
моего ключа bibtex (с добавленным :
).
Например:
Т. Пингвин и др., Обзор деятельности, связанной с отдыхом в Антарктике, Журнал невероятных результатов, 2025 г.
было бы
penguin25_survey_jir.pdf
с помощью ключа bibtex penguin25:_survey_jir
.
Мне нравится эта система, потому что:
Он не распространяется на маркировку или категоризацию.
Это хорошо относится к журнальным статьям. Для статей или книг по материалам конференций аббревиатура журнала заменяется аббревиатурой конференции или издателя или, возможно, полным названием издателя; Я не совсем последователен. Но у меня обычно нет целых книг в формате PDF.
Существует множество программ, которые могут помочь (например, Mendeley ). Я использовал это (и другие), но обнаружил, что это требует больше управления, чем я хотел бы дать.
Лично у меня просто была папка публикаций с вложенными подпапками по разным темам. Затем я бы просто назвал файлы .pdf, используя фамилию первого автора и год публикации, то есть: lastname_2019 .
Я обнаружил, что это имеет несколько преимуществ:
Конечно, если человек публикует несколько статей в год, я просто добавляю букву к доп. Честно говоря, я думаю, что мне пришлось сделать это только один или два раза для моей области.
Я использую менделей с автоматическим сканированием папок. Я загружаю статью с именем файла типа « SI90234023499-II.pdf
dump» в одну из моих отслеживаемых папок, и она автоматически сортируется ~/Literature/FirstAuthor/Year/Journal/Title.pdf
и добавляется в базу данных Mendeley. Вы можете настроить расположение каталога из любой комбинации метаданных, но для меня это не имеет особого значения, потому что я все равно получаю доступ к материалам только через приложение Mendeley, поэтому я редко работаю с PDF-файлами напрямую.
Для книг вы можете использовать Caliber , бесплатную программу управления электронными книгами. Легко использовать.
Как насчет старого доброго Excel.
Insert
вкладку и нажмитеLink
Теперь у вас есть доступный для поиска документ, содержащий названия ваших публикаций и интерактивные ссылки на ваши документы.
Если вы хотите быть необычным, у вас может быть несколько столбцов (дата публикации, авторы (или, возможно, основной автор и другие авторы), название и т. д.). Вставьте несколько заголовков столбцов. Теперь их можно не только искать, но и сортировать и фильтровать (особенно если вы создаете их как таблицу ( поиграйте с Table
кнопкой на Insert
вкладке))
Я рекомендую вам назвать документы, как вы говорите, 1.pdf, 2.pdf и иметь соответствующие файлы метаданных 1.txt, 2.txt, которые вы можете структурировать по своему усмотрению.
Тогда решающая часть заключается в следующем: используйте grep
(доступно как для Linux, так и для Windows) для поиска по содержимому всех текстовых файлов в этой папке. Это найдет вас, какие текстовые файлы содержат искомые термины.
Поиск так же прост (это покажет, какие текстовые файлы в текущей папке содержат слово «Адамовский»):
grep -r "Adamowski" .
Я думаю, что это самый простой способ.
Есть ли простой метод или, возможно, легкое программное обеспечение, которое я могу использовать, чтобы помочь мне с такой задачей?
Хотя JabRef немного перегружен, он может поддерживать библиографию и переименовывать файлы :
Переименование файлов теперь является частью функции «Очистить записи» (кнопка кисти на панели инструментов или Ctrl + Shift + F7). Затем вы можете переименовывать прикрепленные файлы на основе ключа BibTeX. Вы можете изменить формат (шаблон) в меню «Параметры» → «Установки» → «Импорт», изменив шаблон в разделе «Действие ссылки на файл PDF по умолчанию».
И шаблоны разнообразные , и можно последовательно сокращать названия журналов, заглавия, комбинировать имена авторов, например:
Ключевые шаблоны, связанные с автором
- [auth]: фамилия первого автора
- [авторы]: Фамилии всех авторов
- [authorLast]: фамилия последнего автора
Ключевые шаблоны, связанные с заголовком
- [shorttitle]: первые 3 слова заголовка без учета служебных слов (см. ниже). Например, отличная статья о JabRef становится AwesomePaperJabref.
- [veryshorttitle]: первое слово заголовка без учета служебных слов (см. ниже). Например, «Отличная статья по JabRef» становится «Отличной».
- [camel]: использовать заглавные буквы и соединить все слова заголовка. Например, отличная статья о JabRef становится AnAwesomePaperOnJabref.
- [название]: Напишите все значимые слова заголовка с заглавной буквы и соедините их. Например, отличная статья о JabRef становится AnAwesomePaperonJabref.
Модификаторы Как правило, модификаторы применяются в том порядке, в котором они указаны. Далее мы представляем список наиболее распространенных модификаторов вместе с кратким пояснением:
- :abbr: Сокращает текст, созданный именем поля или специальным маркером поля. Будут включены только первый символ и последующие символы после пробела. Например:
- [journal:abbr] из названия журнала «Journal of Fish Biology» произведет «JoFB».
- [title:abbr] из заголовка «Отличная статья о JabRef» произведет «AAPoJ».
- [camel:abbr] из заголовка «Отличная статья о JabRef» произведет «AAPOJ».
Мой метод состоит в том, чтобы назвать каждый файл PDF следующим образом:
year, authors, title.pdf
Например:
2020, Abc Def Ghi, The letters of the alphabet.pdf
Я работаю с Ubuntu и никогда не имел проблем с этими именами файлов, хотя они содержат пробелы и запятые.
Помещение года на первое место облегчает сортировку статей по годам в проводнике.
Помещение заголовка в имя файла позволяет сразу увидеть в проводнике, о чем этот файл.
ярчик
усул
Тасос Папастилиану
author1999
// . Больше ничего. Остальные детали можно легко найти в вашем библиографическом менеджере (я использую jabref для файлов bibtex).authorA.authorB1999
authorA.etal1999
Просто_к_ответу
Стефан Коласса