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

E em vez de and em bibliografias em inglês #45

Open xexeo opened 1 year ago

xexeo commented 1 year ago

Recebido no grupo LaTeXers no PESC

caros estou usando a versão do CoppeTeX 2.3 que está no overleaf. Minha tese está escrita em inglês. qdo uso citet(ref) ele escreve ref1 e ref2 ... tem como configurar para que ele escreva ref1 and ref2?

bem estou usando \documentclass[dsc,numbers,english]{coppe}

enfim no tex ...

The Grounded Theory (\citet{glaser_discovery_1967}, 1967) as well as their versions (Glaser, Straussian grounded theory \citet{corbin_basics_2008},

sai assim

The Grounded Theory (GLASER e STRAUSS [4], 1967) as well as their ver- sions (Glaser, Straussian grounded theory CORBIN e STRAUSS [5]

Ao qual Daniel dos Santos respondeu

Entendi sua dúvida, no arquivo coope-unsrt.bst vai ter uma função chamada format.lab.names ela que ta sobre escrevendo e colocando o "e"

FUNCTION {format.lab.names} { 's := s #1 "{vv~}{ll}" format.name$ capify s num.names$ duplicate$

2 >

{ pop$ " et~al." emphasize * }
{ #2 <
    'skip$
    { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
        { " et~al." emphasize * }
        { " e " * s #2 "{vv~}{ll}" format.name$ capify * }
      if$
    }
  if$

   }   if$ }

troca essa linha: { " e " * s #2 "{vv~}{ll}" format.name$ capify * } por isso: { " and " * s #2 "{vv~}{ll}" format.name$ capify * }

xexeo commented 1 year ago

Isso deveria estar configurado por linguagem, possivelmente usando o Babel. Mas tenho que ver como fazer isso.

Na verdade, esse comportamento acontece para todas as palavras, aparentemente os BST não tem nenhum tratamento de linguagem (a verificar).

Deve haver uma solução usando o babel, uma solução rápida é editar tudo e criar versões em inglês e em português dos bst.

xexeo commented 1 year ago

Easy fix done.

xexeo commented 8 months ago

Ok, mais informações. No fix foram incluídos dois arquivos novos en-coppe-plain e en-coppe-unsrt. Eles estão formatados para inglês.

A intenção agora é resolver em qualquer língua usando o babel, ou mais simplesmente a configuração do documentstyle.

Por enquanto, em vez de usar \bibliographystyle{coppe-unsrt} usar \bibliographystyle{en-coppe-unsrt}

ou em vez de (meu preferido) \bibliographystyle{coppe-plain} usar \bibliographystyle{en-coppe-plain}

xexeo commented 8 months ago

Descobri que

BibTeX by itself, and natbib as bibliography-package do not support language change. Neither babel nor csquotes have anything to do with it.

Como estamos tratando de um modelo muito específico, a solução pode ser a mesma usado no .cls para vários comandos, simplesmente definir comandos para e e and (por exemplo \coppebiband) e configurar o correto segundo a linguagem escolhida.

Acho que vou fazer isso... Agora é ter tempo de fazer e testar...

xexeo commented 5 months ago

Funciona, é simples, vai ficar assim

xexeo commented 5 months ago

Chat GPT propõe uma solução

Para usar um arquivo .bst (BibTeX style file) em um ambiente multilíngue no LaTeX, você precisará modificar o arquivo para suportar diferentes idiomas. Aqui estão algumas etapas que você pode seguir:

Identificar Strings de Idioma: Primeiro, identifique as strings que são específicas do idioma, como "acessado em". Essas strings precisarão ser substituídas por comandos que possam mudar de acordo com o idioma do documento.

Usar Pacotes de Internacionalização: Pacotes como babel ou polyglossia são usados para lidar com documentos multilíngues no LaTeX. Eles fornecem comandos para mudar o idioma do texto. Por exemplo, \usepackage[english,portuguese]{babel} no preâmbulo do seu documento LaTeX.

Modificar o Arquivo .bst: Você precisará editar o arquivo .bst para substituir as strings fixas em português por comandos LaTeX que mudam com o idioma. Isso pode ser feito utilizando funções do BibTeX que inserem os comandos apropriados. Por exemplo, substituir a string "acessado em" por uma função que insere \bibstring{accessed}. Esta função deve ser definida para produzir a string correta em cada idioma suportado.

Definir Strings de Bibliografia para Cada Idioma: No seu documento LaTeX, você precisará definir o que \bibstring{accessed} deve produzir em cada idioma. Isto é feito com o comando \DefineBibliographyStrings do pacote babel ou polyglossia.

Testar com Diferentes Idiomas: Após as modificações, é importante testar o arquivo .bst com entradas bibliográficas em diferentes idiomas para garantir que as traduções estão funcionando corretamente.

Aqui está um exemplo simplificado de como você pode implementar isso:

latex Copy code \usepackage[english,portuguese]{babel} \DefineBibliographyStrings{english}{ accessed = {accessed on}, } \DefineBibliographyStrings{portuguese}{ accessed = {acessado em}, }

...

\bibliographystyle{seuestilo} \bibliography{sua_bibliografia} Essas mudanças requerem um entendimento básico de como os arquivos .bst funcionam e podem exigir alguma experimentação. Se você não estiver confortável em fazer essas mudanças você mesmo, pode considerar usar um gerador de estilos BibTeX ou consultar a comunidade LaTeX para obter ajuda específica sobre a edição de arquivos .bst.

Referências adicionais e tutoriais detalhados sobre a edição de arquivos .bst podem ser encontrados em recursos acadêmicos sobre LaTeX e BibTeX.