Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Novo pacote #1

Open
dbmrq opened this issue Jan 20, 2018 · 9 comments
Open

Novo pacote #1

dbmrq opened this issue Jan 20, 2018 · 9 comments

Comments

@dbmrq
Copy link
Member

dbmrq commented Jan 20, 2018

Pessoal, o biblatex-abnt já está pronto para o uso, mas o AbnTeX3 está estagnado simplesmente por falta de modelos e documentação. Acho que grande parte da dificuldade nesse sentido é resultado da complexidade da classe abntex2. Faz tempo que eu tenho vontade de fazer um pacote mais simples para facilitar o uso das normas da ABNT.

O Youssef Cherem já criou um pacote mais ou menos assim, mas por algum motivo ele decidiu fazer isso num repositório privado. Eu enviei pra ele algumas mudanças e melhorias (principalmente para que o pacote funcione com a classe memoir, atualmente não funciona), mas ele não as implementou. Não sei por que ele saiu daqui do AbnTeX, mas de qualquer forma eu acho a ideia muito boa e ela facilitaria bem o desenvolvimento e a documentação do AbnTeX3. Pensei que poderíamos pelo menos começar o AbnTeX3 assim, com um pacote em vez de uma classe.

A ideia é incluir o mínimo possível de dependências e fazer o mínimo possível de mudanças no comportamento normal do LaTeX. Assim os usuários poderiam escrever seus documentos normalmente, sem precisar saber absolutamente nada sobre o pacote, e aí, se de repente precisassem seguir as normas da ABNT, poderiam só adicionar o pacote abntex e pronto, sem se preocupar com comandos próprios e manuais específicos. Atualmente o abntex2 tem toda uma sintaxe própria, e além de aprender a usar o LaTeX as pessoas ainda têm que aprender mais um monte de coisas para seguir a norma. Com um pacote que simplesmente adapte as classes normais, os usuários poderiam seguir qualquer tutorial de LaTeX e depois simplesmente incluir o pacote para adequar-se à ABNT. Além disso, se depois o usuário quisesse usar o mesmo texto com uma norma diferente, poderia só tirar o pacote abntex e pronto. Com a classe atual, por outro lado, seria necessário alterar uma porção de comandos específicos do abntex2 para fazer qualquer outra coisa.

Então eu estou pensando em fazer isso, criar um pacote abntex aqui no repositório do AbnTeX3 e começar com o código que eu mandei pro Youssef. Mas seria muita coisa pra eu fazer sozinho, e assim que começarem a usar vai aparecer gente pedindo outros recursos e tudo o mais. Então queria ver se mais gente teria interesse em ajudar.

@laurocesar, alguma objeção?

@edusantana, acho que nesse projeto especialmente poderia ser interessante começar com os testes. O que você acha? E usar um pacote mais simples, em vez de uma classe baseada na memoir, seria bem mais leve e elegante pro Limarka também.

@cauachagas
Copy link

cauachagas commented Feb 6, 2018

Não deixando isso morrer...

Como usuário de nível intermediário, acho que é uma ótima ideia. Estou mexendo com o limarka. Por si só, já uma excelente ferramenta. Tem seu mérito por entregar um produto que reduz a gama de códigos LaTeX. Porém vejo que ele seria uma ferramenta bem mais global, se a sintaxe para conseguir ficar nas normas da ABNT não fugisse dos comandos padrão, como comentado "(...) seria necessário alterar uma porção de comandos específicos do abntex2 para fazer qualquer outra coisa."

Quem também ganharia muito com isso é o Lyx, que também estou mexendo um pouco, e o Texmacs. São duas ferramentas "Office" do LaTeX bastante usados, mas sendo necessário uma boa gama de códigos e conhecimento das ferramentas para montar templates do jeito que a ABNT e universidades pedem.

Falando um pouco mais sobre o Lyx...
Com a sua nova atualização, concertou seu único problema: falta de estilos bibliográficos. Agora é possível usar, por exemplo, o "biblatex-abnt" graficamente, sem digitar qualquer código LaTeX (os provenientes do bibtex, como o abntex2cite, até o momento só entendem gráficamente o comando \cite). É uma ferramente poderosa. Principalmente para quem (eu sou um desses) só quer fazer seus trabalhos acadêmicos com qualidade LaTeX sem precisar ficar lidando com seus códigos.

@edusantana
Copy link
Member

@dbmrq Daniel, me desculpe não ter dado o retorno. Eu tinha iniciado uma proposta de infraestrutura dos testes, mas nesse início de ano estou correndo atrás de dinheiro e estou com dificuldade para me empenhar ao abntex.

@laurocesar
Copy link
Member

laurocesar commented Feb 6, 2018 via email

@dbmrq
Copy link
Member Author

dbmrq commented Feb 6, 2018

@edusantana Sem problemas, as coisas estão corridas aqui também, mas quando você puder ajudar seria ótimo. :)

@laurocesar Concordo com tudo o que você disse, por isso eu falei que seria uma boa "começar" com um pacote em vez de uma classe. Mas seriam coisas complementares, não excludentes. Inclusive, nem se trataria de uma classe mais simples, mas meramente um pacote. Assim ele seria mais modular e mais fácil de usar para quem está começando, escrevendo documentos mais simples ou precisa só de uma base para as próprias customizações. A ideia é não incluir nada que o LaTeX não faça por si só, nem mesmo o recurso de criar capítulos, por exemplo. Se o usuário quiser usar capítulos, pode usar classes como report, memoir, koma-script ou a própria abntex2, que ainda teria seu lugar. Mas se alguém já escreveu um artigo simples usando a classe article, por exemplo, poderia simplesmente acrescentar o pacote abntex para modificar as configurações já existentes de acordo com a norma.

Como você mesmo disse, a resposta pra grande parte das perguntas que aparecem no grupo é, "se não precisa de ABNT, não use a classe abntex2". Mas só o fato de existir tanta gente fazendo perguntas desse tipo já mostra que existe a demanda por algo mais flexível, e acho que um pacote poderia cumprir esse papel.

Além disso, tem o que eu falei: uma implementação básica do AbnTeX 3 ficaria muito mais fácil. Criaríamos alguns modelos simples e quase não seria necessária nenhuma documentação. Quem precisasse de mais recursos poderia recorrer à classe abntex2 e à documentação dela, que continuaria valendo, mas haveria um ponto de partida mais simples para começar.

@laurocesar
Copy link
Member

laurocesar commented Feb 7, 2018 via email

@dbmrq
Copy link
Member Author

dbmrq commented Feb 8, 2018

@laurocesar A minha ideia é que, a princípio, o pacote só altere as configurações já existentes nas classes padrão do LaTeX. Dito isso, acho que também seria interessante suportar algumas outras classes e comandos comuns, como a própria memoir e o comando \chapter. A versão que eu mandei pro Youssef já faz isso com algumas configurações: verifica se o usuário está usando a classe memoir e, caso positivo, altera as configurações da memoir; caso contrário, altera as configurações do próprio LaTeX. O mesmo poderia ser feito para comandos mais básicos, como o \chapter: se o usuário está usando uma classe que tem esse comando, os capítulos seriam configurados de acordo; caso contrário, não aconteceria nada, o pacote não definiria o comando pra você. A principal diferença dos pacotes pras classes é justo essa, os pacotes podem ser usados com diversas classes diferentes, eles fornecem recursos que podem ser aplicados a qualquer documento. E a ideia de um pacote abntex seria fazer isso, ajustar qualquer documento para que, dentro dos recursos da classe usada, a norma fosse aplicada o máximo possível.

teremos que necessariamente fazer uma escolha sobre a plataforma base da customização

Minha ideia é que o pacote justamente seja uma boa plataforma base para customizações. Supondo que alguém queira seguir as normas da ABNT mas queira usar a classe article, essa pessoa teria que acrescentar um monte de comandos para configurar as margens, o espaçamento, o formato das citações e assim por diante. O pacote simplesmente economizaria uma boa parte desse trabalho, o usuário acrescentaria o pacote e essas mudanças estariam feitas. Talvez ele precisasse de outros recursos adicionais, como o de criar capítulos. Então ele aprenderia a fazer isso como qualquer usuário que aprende LaTeX: pesquisaria as opções, escolheria uma classe adequada e se viraria com ela. O objetivo do pacote seria apenas facilitar a adequação à norma dentro do possível. Muitas instituições requerem o formato "básico" da ABNT, como as margens, espaçamento, citações, bibliografia etc., mas ignoram muitos outros requisitos. Nesse caso, um usuário poderia só adicionar o pacote com o mínimo de interferência: não seria obrigado a usar uma classe específica ou comandos diferentes (e.g., \begin{citacao} em vez de \begin{quote}). E os recursos e configurações ausentes ele poderia acrescentar como preferisse, aprendendo a usar o LaTeX e fazer as mudanças necessárias.

Outro exemplo: um usuário quer seguir a norma, mas quer margens diferentes. Se ele pesquisar no Google como mudar as margens, vai chegar ao pacote geometry. Só que esse não é o melhor jeito de mudar as margens na classe memoir e, consequentemente, na classe abntex2. O mesmo vale para muitas outras configurações. O usuário iniciante, então, não precisa apenas aprender a usar o LaTeX, mas também a usar a classe memoir, que é gigantesca. Com um pacote, por outro lado, o usuário teria as configurações básicas com facilidade, mas poderia mudar o que quisesse e como quisesse. Poderia simplesmente procurar no Google como mudar as margens ou o formato das seções, e o pacote não ficaria no caminho.

O pacote do Youssef já tem essa ideia em mente, olha só a documentação: http://linorg.usp.br/CTAN/macros/latex/contrib/abnt/abnt-doc.pdf

Só que, por outro lado, ele faz algumas mudanças desnecessárias. Ele cria, por exemplo, o comando \capa e o ambiente citacao. Se um usuário procurar no Google informações sobre como alterar o ambiente citacao, não vai chegar a nada. Mas se procurar informações sobre como alterar o ambiente quote vai encontrar todas as informações que pode querer. E se um usuário pesquisar como alterar o comando \capa também não vai chegar a nada, mas se pesquisar como alterar o comando \maketitle vai encontrar tudo o que precisa.

E eu também não me oponho à criação de novos comandos, desde que eles possam ser ignorados sem problemas. O pacote do Youssef ao menos tem isso ao seu favor. Se o usuário quiser ignorar o comando \capa e alterar o \maketitle, ele pode fazer isso e pronto. Já um usuário da classe abntex2 não tem a mesma opção: o memoir tem modos próprios de personalizar o comando \maketitle, e alterá-lo diretamente pode ter consequências ruins.

Enfim, acho que deu pra entender a ideia. O pacote faria o máximo pra facilitar a vida do usuário, mas sem fazer escolhas por ele e sem entrar no caminho dele quando ele quer fazer escolhas diferentes.

@lucasmsoares96
Copy link

concordo e quero contribuir!

@lucasmsoares96
Copy link

lucasmsoares96 commented Jul 18, 2023

@dbmrq Criei um pacote do 0 redefinindo as macros padrão do Latex e um template de utilização. Atualmente funciona para as classes Book e Report.

https://github.com/lucasmsoares96/Template-Monografia-CEFET-MG

@dbmrq
Copy link
Member Author

dbmrq commented Jul 20, 2023

Muito bom, @lucasmsoares96, obrigado!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants