Включение файла стиля нагрудника в новый пакет

Включение файла стиля нагрудника в новый пакет

Мне было интересно, как включить файл стиля bib в пользовательский пакет, чтобы его не приходилось отдельно оговаривать в тексте каждого документа.

В частности, я в настоящее время используюnatbibи позвоните поsp.bstпоместив \bibliographystyle{C:/Users/Miztli/Documents/BibTeX/sp}before \bibliography{C:/Users/Miztli/Documents/BibTeX/references}в конце моих документов.

решение1

Мне кажется неправильным пытаться встроить такие вещи в файл .sty. Даже делая скидку на некоторую гибкость/слабость с файлами личных стилей, кажется сомнительной практикой заставлять их содержать жестко закодированные пути к другим источникам данных. Кроме того, как вы указали, есть очевидные трудности сделать это для библиографии из-за того, куда она хочет быть загружена.

Я бы предпочел (в примерном порядке):

  1. Используйте редактор, который может вставлять фрагмент. Например, в Emacs с помощью yasnippet можно легко определить что-то, чтобы оно соответствующим образом расширялось. Тогда каждый созданный вами файл будет прозрачен относительно того, какие ресурсы он использует. Вы экономите на наборе текста, но каждый созданный вами файл остается достаточно самодостаточным. Это хорошо в долгосрочной перспективе. Хотя этокажетсяНапример, хорошая идея иметь файл стилей, но вы попадете в адскую неразбериху, если в какой-то момент в будущем потеряете его или измените и забудете, как, почему или когда вы его изменили.

  2. Поместите определения библиографии в отдельный файл, который вы просто \inputв подходящем месте. Но на самом деле ... какой смысл. Вы действительно сэкономите несколько нажатий клавиш.

  3. Если вам действительно нужно поместить это в .styфайл, сделайте это, определив подходящую собственную команду ( \makemybibliographyили что-то еще), которая будет расширяться до нужных вам команд, желательно с подходящими предварительными проверками того, что нужные вам файлы существуют там, где вы ожидаете, и подходящими ошибками, если их там нет. Правильное выполнение этого, вероятно,многобольше работы, чем написать отрывок для редактора.

решение2

Команда \bibliographystyle может быть где угодно, насколько мне известно. Она не обязательно должна быть в конце перед командой \bibliography. Так что вы можете поместить ее в свой пакет или класс.

решение3

.bstДа, вы можете включить в свой пакет дополнительный файл (внедрить код в файл каким-либо осмысленным образом невозможно, .styпоскольку он написан на другом языке).

Вам нужно записать его как .dtxфайл стандартным способом для распространяемых пакетов, чтобы, когда пользователь установит его, он распаковал ваш .styфайл.ифайл .bst, который вы включили (и другие файлы, если необходимо). Затем пользователь должен поместить эти файлы в «нужное место», что объясняетсяздесь, точно так же, как и для любого другого пакета, установленного вручную.

НО...(очень большое НО), если файл стиля BiBTeX уже является стандартным пакетом на CTAN (я не могу его там найти), то включение частной копии в ваш пакет — действительно Очень Плохая Идея. Пользователь должен установить его из CTAN обычным способом (если он использует дистрибутив TeX с установкой на лету, это может быть сделано для него автоматически).

Это sp.bstтот, изСемантика и прагматика? Если так, вам следует побудить их правильно упаковать его и сделать доступным через CTAN, если они могут, что облегчит жизнь всем. В любом случае вы, конечно, можете добавить его в свой .dtxфайл, но для этого вам понадобится разрешение автора или владельца авторских прав, а также официальное соглашение на обновление и перезапись.

Пол Стэнлиделает некоторые хорошие замечания, но

  1. ИМХО этоявляетсяхорошая идея сделать формальный пакет (.sty файл пакета ( ), но только если он записан как .dtxфайл с надлежащей документацией, чтобы его можно было установить, поддерживать и ссылаться на него;
  2. Я не уверен, что понимаю, почему.2вообще полезно;
  3. Помимо Emacs, я не знаю ни одного редактора LaTeX, который бы поддерживал фрагменты, и не стоит заставлять авторов использовать редактор, отличный от того, которым они обычно пользуются.

Рассмотрите возможность перехода с BiBTeX на biblatex (но если этот sp.bstфайл принадлежит S&P, то вам придется убедить их сделать это).

Связанный контент