abntex / abntex3

Projeto de criação de modelos de documentos ABNT com uso do biblatex-abnt e aposentadoria do abntex2cite
22 stars 0 forks source link

Novo pacote #1

Open dbmrq opened 6 years ago

dbmrq commented 6 years ago

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 commented 6 years ago

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 commented 6 years ago

@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 commented 6 years ago

Caro Daniel,

Bom dia!

O desenvolvimento da classe abntex2 teve como princípio atender maximamente as normas ABNT, com o mínimo de escolhas particulares, usando o máximo possível de coisas prontas. Por isso partimos da classe Memoir, que trás um framework completo, atento a vários detalhes de tipografia, além de uma excelente documentação.

Todo o restante foi customizar o memoir. Tanto é que o número de pacotes adicionais que usamos é mínimo.

Os comandos próprios, como \orientador, \coorientador etc., são escolhas entre criar comandos ou deixar tudo apenas como exemplos de customização direta do memoir. Tentamos deixar isso claro nos manuais.

Isso posto, registro que não sou contra criarmos uma nova classe mais simples. Pelo contrário. Acho isso excelente! Mas precisamos ficar atentos para que possamos atender às minúcias da norma, que são várias. O desafio é balancear esse atendimento às normas com a complexidade da nova classe. Minha experiência foi ruim com isso. A classe abntex2 começou simples. Digo, atendemos 70% da ABNT com menos de 60 linhas. Mas os demais 30% exigiram bem mais linhas. Um infalível Pareto... Em resumo: a intenção da classe abntex2 nunca foi simplificar o uso do LaTeX, mas atender às normas ABNT. Sempre deixo claro nas listas de discussão: se não precisa de ABNT, não use a classe abntex2.

Vamos continuar conversando. E realmente, não sei porque o Youssef deixou o grupo. Vou perguntar a ele.

abraços!

Lauro César

2018-02-06 9:48 GMT-02:00 Eduardo de Santana Medeiros Alexandre < notifications@github.com>:

@dbmrq https://github.com/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.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/abntex/abntex3/issues/1#issuecomment-363398973, or mute the thread https://github.com/notifications/unsubscribe-auth/AASMBetG5BmuT7TjUViSEpWWp_NDPQJsks5tSDwAgaJpZM4Rlihe .


Esta mensagem pode conter informação confidencial ou privilegiada, sendo seu sigilo protegido por lei. Se você não for o destinatário ou a pessoa autorizada a receber esta mensagem, não pode usar, copiar ou divulgar as informações nela contidas ou tomar qualquer ação baseada nessas informações. Se você recebeu esta mensagem por engano, por favor, avise imediatamente ao remetente, respondendo o e-mail e em seguida apague-a. Agradecemos sua cooperação.

This message may contain confidential or privileged information and its confidentiality is protected by law. If you are not the addressed or authorized person to receive this message, you must not use, copy, disclose or take any action based on it or any information herein. If you have received this message by mistake, please advise the sender immediately by replying the e-mail and then deleting it. Thank you for your cooperation.

dbmrq commented 6 years ago

@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 commented 6 years ago

Daniel,

deixa eu ver se está claro: no novo pacote teremos configurações para os capítulos, para atender aos requisitos de forma de numeração, por exemplo, ou não? Porque se tivermos, teremos que necessariamente fazer uma escolha sobre a plataforma base da customização. Se não partirmos de um memoir ou koma, terá que ser de LaTeX puro, que era como o abntex1 fazia, mas era bem mais complicado e deixava mais a desejar. Digo, o código do pacote ficaria bem mais complexo, embora não exigisse a exclusividade do memoir.

Outra coisa, sobre a escolha em fazer um pacote ou uma classe, entendo que customizações em formato do documento sejam necessariamente uma classe, não?

Mas acho que podemos tentar. Será bem interessante!

Um abraço!

Lauro Cesar

Em ter, 6 de fev de 2018 às 16:27, Daniel Marques notifications@github.com escreveu:

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

@laurocesar https://github.com/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.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/abntex/abntex3/issues/1#issuecomment-363518282, or mute the thread https://github.com/notifications/unsubscribe-auth/AASMBV4uFl-9Eqr_5WT3nEKoKVBfz1zHks5tSJmngaJpZM4Rlihe .


Esta mensagem pode conter informação confidencial ou privilegiada, sendo seu sigilo protegido por lei. Se você não for o destinatário ou a pessoa autorizada a receber esta mensagem, não pode usar, copiar ou divulgar as informações nela contidas ou tomar qualquer ação baseada nessas informações. Se você recebeu esta mensagem por engano, por favor, avise imediatamente ao remetente, respondendo o e-mail e em seguida apague-a. Agradecemos sua cooperação.

This message may contain confidential or privileged information and its confidentiality is protected by law. If you are not the addressed or authorized person to receive this message, you must not use, copy, disclose or take any action based on it or any information herein. If you have received this message by mistake, please advise the sender immediately by replying the e-mail and then deleting it. Thank you for your cooperation.

dbmrq commented 6 years ago

@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 commented 1 year ago

concordo e quero contribuir!

lucasmsoares96 commented 1 year ago

@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 commented 1 year ago

Muito bom, @lucasmsoares96, obrigado!