COPPE-UFRJ / CoppeTeX

A LaTeX toolkit for writing thesis and dissertations at COPPE/UFRJ
GNU General Public License v3.0
59 stars 17 forks source link

Ordem na lista de símbolos e abreviaturas #38

Closed sales1234 closed 2 years ago

sales1234 commented 2 years ago

Olá! Gostaria de saber como mudar a ordem da lista de símbolos? Na norma para elaboração gráfica de dissertações e teses da coppe diz para ser na seguinte ordem: " em ordem alfabética com suas respectivas denominações. Os símbolos gregos devem ser listados após os latinos, também em ordem alfabética. "

Com o devido comando " \printlosymbols" me foi gerado uma lista numa ordem que não segue esse padrão.

sales1234 commented 2 years ago

@xexeo, se você puder me ajudar, ficaria muito grato! Não encontrei em nenhum lugar falando sobre isso.

xexeo commented 2 years ago

Olá, Eu estou disposto "tentar", porque realmente nunca vi essa área do código e acho difícil, a priori, uma solução, se for muito automatizado. Mas se você conseguir gerar um exemplo mínimo com a ordenação indesejada e compartilhar comigo no Overleaf seria uma grande ajuda. A conta é gxexeo@gmail.com. Abraços, Xexéo

gabriela-correa commented 2 years ago

Vocês conseguiram resolver esse problema? A minha lista de símbolos está gerando diferentes blocos de variáveis em ordem alfabética: 1) inicialmente todas as variáveis com letra maiúscula em ordem alfabética 2) posteriormente, letras gregas 3) letras em negrito 4) letras minúsculas

xexeo commented 2 years ago

Olá Gabriela, Eu até entendo como isso acontece. Entre as maísculas e as minúsculas, na Tabela ASCII (e no Unicode) aparece a barra invertida, que é o símbolo que inicia os comandos do LaTeX. Isso provoca essa ordem. Realmente, parece um erro no "sort" do LaTeX, mas não imagino como resolver por enquanto, vou até verificar a questão nos grupos de LaTeX. O que eu posso dizer é que muita tese foi entregue assim e o registro nunca reclamou...

sales1234 commented 2 years ago

Bom dia,

Infelizmente, não consegui resolver esse problema no LaTeX!

xexeo commented 2 years ago

Talvez eu tenha uma solução, mas acho que (também talvez) não seja necessário nem programar nada.

Você pode:

1) Tentar usar a notação "@" que funciona no comando \index?

Para isso, ao definir o símbolo, em vez de usar

''' \symbl{\alpha}{Letra alpha} '''

use

''' \symbl{alpha@\alpha}{Letra Alpha} '''

Caso isso não funcione, pode gerar um exemplo mínimo?

Edit: NÃO FUNCIONA...

xexeo commented 2 years ago

Ok, Identifiquei que o problema, o que é meio óbvio está no comando \symbl . O problema é que ele foi feito com "programação muito sofisticada" em TeX, com \def, sendo dividido em duas partes, e não com \newcommand, e ele só consome os atributos na segunda parte, que é o comando \@wrlos, definido só no BeginDocument. E já tem uma opção (com ou sem hyperref) nesse tratamento. Então a solução parece ter dois caminhos:

1) Reescrever {\string\indexentry{[#1] #2|hyperpage}{\thepage}}% de forma que aceite a notação @ para indicar que deve ser usada outra ordem, e não o símbolo barra

2) O que eu preferiria, reescrever o \symbl com \newcommand e um parâmetro opcional.

Eu não tei ainda porque o \symbl tem que ser em duas partes, já fiz coisas parecidas sem fazer isso... Ele usar dois comandos \@bsphack\begingroup que nunca usei, e que só são fechados em \@wrlos

Parte dessa separação em duas partes só serve para definir \symbl só se \makelosymbols for definido, o que é uma sofisticação que nem sei se é necessária. O \def\symbl está dentro do \makelosymbols.

Bem, pretendo mexer nisso, mas se alguém entende mais o que está acontecendo pode mexer antes.

xexeo commented 2 years ago

Uma solução razoável será lançada amanhã.

Ela possui um parâmetro opcional no comando \symbl que permite gerar uma chave de ordenação diferente do símbolo usado (que obrigatóriamente usa a ordenação do LaTeX).

xexeo commented 2 years ago

Bug fixed da seguinte forma:

O comando \symbl agora tem um argumento opcional que diz a sort key. Exemplos de uso:

\symbol[zzalpha]{$\alpha}$}{constante alpha}

o zzalpha garante que a letra grega vai aparecer depois de todos os z's, na ordem lexicográfica.

Mais exemplo´s no arquivo example.tex