Плюсы и минусы использования пакетов в классе/пакете

Плюсы и минусы использования пакетов в классе/пакете

Рассмотримупаковка(илисорт) который предоставляет макросам два необязательных аргумента. Можно было бы

(i) используйте twoopt. Код в .sty-файле легко читается и, следовательно, понятен.

(ii) вручную кодировать макрос. Код выглядит ужасно, но не привязывает пользователя к дополнительному пакету.

Кроме того, иногда для достижения одной и той же цели используется несколько пакетов: ifthen, xifthenи ifthenx.

Как выбрать, какой пакет использовать? В каких случаях мне нужно вручную кодировать? Существуют ли лучшие практики? Обратите внимание, что примеры иллюстрируют общий вопрос.

решение1

Если сомневаетесь, выбирайте стандарт.

Даже если он еще не укоренился (как ifthenесть), программный уровень перспективного ядра LaTeX3 — expl3—мощен и очень стабилен. Даже вtexlive-coreПакет репозитория пакетов Arch Linux (думаю, самый минимальный из минималистичных), включено все ядро ​​L3. Он всегда будет доступен вашим пользователям.

Из опыта решения связанных с этим проблем,неесли вам не придется вручную кодировать что-либо, это станет практически невозможным для поддержки и, как вы говорите, для понимания сути.

Возможно, здесь не хватает условностей, но лучшая условность в любом случае — использовать официальные материалы.


Отсюда: найдите следующее с помощью texdoc:

  • expl3объясняет логикуэкспэриментальныйЛаТекс3синтаксис и вводит компонент «пакеты» (на практике вы просто\usepackage{expl3}
  • interface3служит справочным материалом для всей expl3библиотеки и интерфейса
  • xparseбесценный ресурс для определения команд с более сложным синтаксисом

решение2

Если twooptпакет удовлетворяет вашим потребностям, нет ничего плохого в его использовании...

В целом LaTeX — это постоянно развивающаяся система. Пакеты — двигатель этого процесса. Пренебрегая их универсальным использованием или выбирая жесткое кодирование, если бы был подходящий пакет, вы бы отказались от важного свойства системы LaTeX.

Хотя последнее утверждение звучит немного драматично, в нем есть доля правды. Кроме того, часто это остается вопросом выбора и привычек (все мы люди!). Но, если у вас есть возможность получить более читаемый код с помощью использования пакетов,вперед, продолжать. Этот критерий, кстати, является одним из основных вопросов проекта LaTeX3.

Привязка к пакету в файле .styили .clsникак вас не ограничивает. Даже если пакет, который вы использовали в своем собственном коде пакета, в будущем будет объявлен устаревшим из-за того, что новый пакет оказался лучше или по какой-то другой причине, это не значит, что используемая вами функция больше нежизнеспособна. Более того, как разработчик пакетов вы можете поддерживать/обновлять свой пакет в соответствии с текущим состоянием дел. Кроме того, я хотел бы напомнить, что LaTeX2e в настоящее время очень стабилен. Так что «[использование] официальных материалов» (@Sean Allred, см. выше) с этой точки зрения вполне разумно.

И наконец, если три пакета выполняют одну и ту же работу для определенной проблемы, я ссылаюсь на приведенное выше утверждение «все мы люди!»: используйте тот, который вам больше нравится или к которому вы привыкли.

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