クラス/パッケージでのパッケージ使用の長所と短所

クラス/パッケージでのパッケージ使用の長所と短所

考えてみましょうパッケージ(またはクラス)は、オプションの引数を2つ持つマクロを提供します。

(i) を使用しますtwoopt。 -ファイル内のコードは.sty読みやすく、したがって理解しやすいです。

(ii) マクロを手動でコーディングします。コードはひどいように見えますが、ユーザーを追加のパッケージに縛り付けることはありません。

また、同じことを実現するパッケージが複数ある場合もあります: ifthenxifthenおよびifthenx

使用するパッケージをどのように選択すればよいですか? どのような場合に手動でコーディングすればよいですか? ベスト プラクティスはありますか? 例は一般的な質問を例示していることに注意してください。

答え1

疑問がある場合は、標準を選択してください。

まだ定着していないものの(現状ifthen)、注目のLaTeX3カーネルのプログラミング層expl3は強力で非常に安定しています。texlive-coreArch Linux のパッケージ リポジトリのパッケージ (ミニマリストの最もミニマルなものと考えてください) には、L3 カーネル全体が含まれています。ユーザーはいつでも利用できます。

関連する問題の経験から、しないでください必要がない限り、手動でコーディングしてください。そうすると、メンテナンスがほぼ不可能になり、おっしゃるとおり、額面通りに理解することが不可能になります。

ここでは慣習が欠けているかもしれませんが、いずれにしても最善の慣習は公式のものを使用することです。


ここから: 次のものを検索しますtexdoc:

  • expl3その理由を説明する経験初期のATEX3構文とコンポーネント「パッケージ」を導入します(実際には、\usepackage{expl3}
  • interface3expl3ライブラリとインターフェース全体のリファレンスとして機能します
  • xparseより複雑な構文を持つコマンドを定義するための貴重なリソース

答え2

twooptパッケージがニーズを満たすのであれば、それを使用することに何の問題もありません...

一般的に、LaTeX は継続的に開発されているシステムです。パッケージはこのプロセスの原動力です。パッケージの使用を全面的に無視したり、適切なパッケージがあるにもかかわらずハードコードすることを選択すると、LaTeX システムの重要な特性を放棄することになります。

最後の文は少し大げさに聞こえるかもしれませんが、そこには真実があります。それ以外は、多くの場合、それは選択と習慣の問題です(私たちはすべて人間です!)。しかし、パッケージの使用を通じてより読みやすいコードを取得する機会があれば、どうぞちなみに、この基準は LaTeX3 プロジェクトの主要な問題です。

.styまたはファイル内のパッケージに縛られているから.clsといって、何ら制限されるわけではありません。自分のパッケージ コードで使用したパッケージが、新しいパッケージのほうが優れているなどの理由で将来廃止されるとしても、使用した機能がもう使用できないということではありません。さらに、パッケージ作成者として、状況に応じてパッケージを保守/更新できます。それに加えて、LaTeX2e は現時点で非常に安定しているという事実を思い出したいと思います。したがって、この観点からは、「公式のものを使用する」(@Sean Allred、上記参照) ことはまったく理にかなっています。

そして最後に、3 つのパッケージが特定の問題に対してまったく同じ機能を果たす場合、上記の「私たちは皆人間です!」という発言を参考にして、最も気に入ったもの、または使い慣れたものを使用してください。

関連情報