
Considere umpacote(ouaula) que fornece macros com dois argumentos opcionais. Alguém poderia
(eu uso twoopt
. O código do .sty
arquivo é fácil de ler e, consequentemente, de entender.
(ii) codificar manualmente a macro. O código parece horrível, mas não vincula o usuário a um pacote adicional.
Além disso, às vezes existem vários pacotes para conseguir o mesmo: ifthen
, xifthen
e ifthenx
.
Como escolho qual pacote usar? Em quais casos eu codifico manualmente as coisas? Existem melhores práticas? Observe que os exemplos exemplificam a questão geral.
Responder1
Na dúvida, opte pelo padrão.
Mesmo que ainda não esteja consolidado (como ifthen
está), a camada de programação do emergente kernel LaTeX3— expl3
—é poderosa e muito estável. Mesmo notexlive-core
pacote do repositório de pacotes do Arch Linux (pense no mínimo do minimalista), todo o kernel L3 está incluído. Ele estará sempre disponível para seus usuários.
Da experiência com problemas relacionados,nãocodifique as coisas manualmente, a menos que seja necessário - torna-se quase impossível de manter e, como você diz, impossível de entender pelo valor nominal.
Pode haver falta de convenção aqui, mas a melhor convenção em qualquer caso é usar o material oficial.
A partir daqui: procure o seguinte com texdoc
:
expl3
explica o raciocínio por trásexperiênciaelementareuaTeX3sintaxe e introduz o componente 'pacotes' (na prática, você apenas\usepackage{expl3}
interface3
serve como referência para toda aexpl3
biblioteca e interfacexparse
recurso inestimável na definição de comandos com uma sintaxe mais complexa
Responder2
Se o twoopt
pacote atende às suas necessidades, não há nada de errado em usá-lo...
Em geral, o LaTeX é um sistema em constante desenvolvimento. Os pacotes são o motor desse processo. Ao negligenciar seu uso universalmente ou optar por codificar se houvesse um pacote adequado, você recusaria uma propriedade importante do sistema LaTeX.
Embora a última afirmação pareça um pouco dramática, há verdade nela. Além disso, muitas vezes é uma questão de escolha e hábitos (somos todos humanos!). Mas, se você tiver a oportunidade de obter um código mais legível através do uso do pacote,vá em frente. Este critério é, aliás, uma questão importante do projeto LaTeX3.
Estar vinculado a um pacote em um arquivo .sty
ou .cls
não está limitando você de forma alguma. Mesmo que um pacote que você usou em seu próprio código de pacote seja obsoleto no futuro por causa de um pacote mais recente ser melhor ou algo assim, isso não significa que o recurso que você usou não seja mais viável. Além disso, como redator de pacotes, você pode manter/atualizar seu pacote de acordo com a situação atual. Além disso, gostaria de lembrar que o LaTeX2e está muito estável no momento. Portanto, “[usar] o material oficial” (@Sean Allred, veja acima) é totalmente razoável deste ponto de vista.
E finalmente, se três pacotes fazem exatamente o mesmo trabalho para um problema específico, refiro-me à afirmação acima “somos todos humanos!”: Use aquele que você mais gosta ou aquele com o qual está acostumado.