Lei uma variedade (complexidade) necessária (mínima)

Lei uma variedade (complexidade) necessária (mínima)

Recentemente, fiquei cada vez mais ansioso com o fato de o LaTeX ser (possivelmente) superado peloTipodevido à sua simplicidade.Esta respostamostra várias arestas do Typst sobre LaTeX.

Tenho discutido com um de meus colegas sobre por que ainda escolho o LaTeX em vez do Typst:

  • A qualidade tipográfica do LaTeX é superior(embora Typst esteja se atualizando rapidamente)
  • Eu amo TikZ, embora não haja contrapartida no Typst(na verdade, agora existeCeTZ)
  • O suporte CJK no Typst é ruim, enquanto XeLaTeX e LuaLaTeX lidam bem com fontes CJK(acho que eles vão consertar isso em breve)
  • Matemática no Typst é horrível, o LaTeX já estabeleceu o padrão
  • Na verdade, como estou acostumado com o LaTeX, não quero mudar para o Typst:-(

No entanto, fiquei impressionado com alguns fatos:

  • Macros em LaTeX não são tão convenientes quanto a programação real, embora exista o LaTeX3 para mitigar o problema.
  • A compilação de documentos LaTeX pode ser lenta, em comparação com Typst usando Rust.
  • A sintaxe mais fácil do Typst tornará as pessoas mais inclinadas a aprender Typst em vez de LaTeX. O LaTeX tem muitos pacotes (e alguns até conflitantes), o que pode ser muito confuso para os alunos.

Eu vi algumas das mudanças feitas na comunidade LaTeX, incluindotectônicoreescrevendo LaTeX usando Rust.

Então, qual é o plano da comunidade TeX para manter o TeX/LaTeX, esta bela linguagem, continuando a florescer? Estou ansioso para aprender mais e desejo contribuir.

Responder1

Bem, a princípio eu ficaria bastante cauteloso com a afirmação "fácil" e "rápida". Há 10 anos, respondi a uma pergunta sobre como o Word difere do LaTeX com

Sim, você pode fazer a maioria das coisas normais sem problemas (e às vezes mais rápido ou mais fácil) com o Word. Mas e quanto às “coisas anormais”?

typst é "moderno", que é outra palavra para jovem. Quando começou, ele não conseguia nem fazer coisas normais como notas de rodapé, números flutuantes, marcadores, layouts de página dupla, campos de formulário ou comentários em PDF. E embora alguns deles estejam agora implementados, eles ainda carecem de muitas das opções de configuração que existem no LaTeX ou em pacotes de suporte. Um exemplo atual é esta discussão sobre como obter algo tão básico quanto um \pagerefdigitador:https://github.com/typst/typst/issues/2873.

É fácil fazer coisas fáceis em uma sintaxe fácil de aprender e eu concordo que # my chapteré uma maneira curta e agradável de criar um título (mas a sintaxe do LaTeX \chapter{my chapter}também não é longa), mas a questão é o que acontece se você quiser mais coisas complicadas. Existe uma sintaxe intuitiva para uma seção não numerada? Como você pode adaptar a entrada no toc ou no cabeçalho? Isso está integrado ou é necessário localizar e copiar dez ou mais linhas de código, como no pageref do problema citado acima? O Typst permanecerá fácil de usar quando ficar mais maduro e receber solicitações de recursos de documentos mais sofisticados?

No segundo momento, estou bastante angustiado porque um sistema "moderno" como o typst não suporta recursos de acessibilidade de PDF desde o início. A acessibilidade pode não ser importante para documentos privados, mas qualquer pessoa que escreva para alguma organização terá que considerar este tópico em breve. Os autores digitadores sabiam disso e sabiam que precisavam dos dados de estrutura para um PDF marcado, mas mesmo assim escreveram seu compilador para que ele os perdesse: "Como os quadros atualmente contêm apenas localizadores e não um mapeamento reverso completo para a estrutura do documento, o exportador não pode gravar essas informações de estrutura." Elesalegarque eles sãoem uma boa posição porque há muita informação semântica disponível, mas o LaTeX tem informações semânticas disponíveis há 30 anos e isso não facilita a produção de PDFs acessíveis e marcados.

Se eu tivesse considerado escrever um mecanismo de composição tipográfica do zero (o que não faria, pois acredito que grandes sistemas deveriam ser alterados pela evolução, não pela demolição e reconstrução - você não pode remover todos os habitantes de uma cidade enquanto você redesenhá-lo do zero), então eu teria me assegurado de que o design principal considerasse a acessibilidade desde o início e não acrescentasse isso como uma reflexão tardia. O fato de eles terem perdido essa oportunidade torna o texto, aos meus olhos, muito antimoderno.

Responder2

Como alguém que também está escrevendo um substituto para o LaTeX, acho que seria bom que o LaTeX fosse substituído por algo no futuro. Programar na linguagem macro TeX é uma bagunça e um compromisso com a compatibilidade com versões anteriores significa que o progresso é lento, se não impossível (eu ainda acho que foi um erro grosseiro transformar o LaTeX3 em um LaTeX2e em evolução, em vez de aproveitar as vantagens de um número de versão principal para quebrar compatibilidade com versões anteriores.

Minha previsão é que o sucessor do LaTeX, caso surja, manterá a marcação do LaTeX, mas evitará o modelo de programação baseado em macro. Os autores precisam ser capazes de fazer a transição com pouco atrito. Não acho que alguém lamentaria a morte do frágil sistema macro LaTeX. Só porque o TeX é Turing completo não significa que seja a melhor maneira de fazer as coisas ou mesmo uma boa maneira.

O que eu esperaria ver seria o versionamento de pacotes e classes de documentos (ou equivalentes) para que ninguém se surpreendesse quando o CTAN atualizar um pacote com três dependências de profundidade e seu documento não for mais compilado. Além disso, não há razão nos sistemas de computação modernos para que sejam necessárias múltiplas execuções para gerenciar coisas como referências e citações. Um único aplicativo seria capaz de lidar com os recursos do LaTeX, BibTeX, makeindex etc.

Eu também sinto que, em vez de escrever, por exemplo,

\documentclass{amsart}

a melhor abordagem poderia ter sido fazer algo como

\DocumentStructure{article}
\DocumentFormat{ams}

ou melhor ainda:

\DocumentStructure{article:1.0}
\DocumentFormat{ams:ams:1.0}

onde temos não apenas números de versão, mas também namespaces, para que não haja aquela preocupação contínua em colidir com os nomes de arquivos uns dos outros.

Finalmente, eu proporia que as dependências externas do documento fossem baixadas automaticamente se uma cópia local não existir, de modo que a distribuição principal não tenha mais um tamanho tão cetáceo.

Responder3

A maior desvantagem do typst, e considero um grave erro de design, é que ele não é compatível com o LaTeX. O que fazer com grandes volumes de documentos, arquivos, etc. existentes? Jogar tudo fora e começar do zero? Tenho usado o LaTeX desde o seu início, já faz quase 40 anos! Os marcos nas melhorias foram o uso de Laserjets (adaptados rapidamente), pdfTeX, babel, agora a l3camada, LuaTeX, PGF/Tikz, BiblaTeX, microtype.

A linguagem de marcação do TeX/LaTeX irá perdurar e durar, provavelmente mais do que muitos da geração mais antiga que ainda a usamos. Como qualquer um que leu o livro Dragon irá lhe dizer, não é fácil criar um compilador que pegue comandos e parâmetros de um mar de letras ao seu redor.

Pode melhorar? Sim! Áreas na minha opinião que podem ser melhoradas:

  1. Substituição automática de glifos ausentes nas fontes, semelhante ao que os navegadores da web e IDE fazem. Isso pode ser conseguido atualmente com LuaTeX/LuaLaTeX com fontes substitutas, mas fica dolorosamente lento.
  2. Rotinas de saída programáveis. Os padrões devem ser incorporados ao próprio mecanismo TeX.
  3. Muitos dos problemas com conflitos em pacotes vêm de arquivos hyperef. Um novo mecanismo deve ser projetado, permitindo aos autores usar links de forma mais fácil, em vez de depender do pacote. As classes base podem ser modificadas para incorporar isso, portanto, não há necessidade de hiperref para redefinir todos os comandos de seccionamento e referência. Incorpore isso ao formato.
  4. O manuseio de documentos da Índia e do Leste Asiático pode ser melhorado contribuindo para o haffbuz e o LuaTeX. Não deve haver necessidade de carregar um pacote para alterar um idioma.
  5. A criação de fontes virtuais pode ser melhorada.

A todos aqueles que estão experimentando e desenvolvendo sistemas diferentes, obrigado, a competição é boa e desejo boa sorte. Outro dia eu estava olhando algumas estatísticas e notei que entre o l3 e o LuaTeX cerca de 130.000 loc foram adicionados ao que é carregado em uma execução. o TeX original tinha cerca de 20.000 loc. Talvez alguns esforços para melhorar os próprios motores para lidar com algumas das áreas problemáticas sejam mais fáceis e úteis do que reescrever tudo do zero.

Responder4

Sem conhecer planos concretos da comunidade Latex, podemos, anticipate future developmentaté Latexcerto Typstponto, reutilizar 2 descobertas científicas.

Isto afasta-nos de um olhar sobre planos concretos ou especulações para uma visão mais global.

Lei uma variedade (complexidade) necessária (mínima)

Isso remonta aW.Ross Ashby, que está entre as mentes fundadoras da cibernética. Ele declarou, em parte em minhas palavras:

  • para lidar com a complexidade
  • o regulador/controlador deve ser pelo menos igualmente complexo;
  • regulação falha com reguladores subcomplexos
  • especialmente com ruído (perturbações) envolvido.

O exemplo de Ashby

No dele"Introdução à Cibernética", 1956ele usa um controlador de temperatura para ilustrar sua equação e considerações básicas.

Basicamente afirma:

  • dentro de uma faixa normal de variação de temperatura ambiente, o controlador funciona bem
  • no entanto, com condições meteorológicas muito perturbadas, ele falha, pois simplesmente não consegue mais compensar a mudança.

Veja, por exemploaqui (um capítulo simplificado), ouaqui (Wikipedia sobre variedades)ouaqui (em seu livro, citado acima).

variedade-wikipedia

Minha ilustração

Vamos pensar em uma ferrovia simples. Um trilho, um trem, sem problemas. O trem vai e volta o dia todo.

Vamos aumentar a complexidade (C+) passo a passo em resposta a perturbações cada vez maiores (D+).

D+: Coloque um segundo trem na mesma linha. Agora começam os problemas, pois eles se atrapalham. Como solução, precisamos aumentar a complexidade do sistema.

C+: Vamos introduzir um horário, que regulamenta qual trem vai para onde, quando, com que frequência, etc. Isso pode ser adequado para muitas situações.

D+: Andar nos dois trens se tornou mais popular e as pessoas começam a ficar incomodadas por terem que trocar de trem o tempo todo, só para ir de uma ponta a outra.

C+: Vamos adicionar uma troca de trilhos, para que os dois trens possam passar um pelo outro. Vamos ajustar o horário.

E assim por diante. Todos nós conhecemos o estado de complexidade dos sistemas ferroviários alcançados até hoje, como:

  • muitas vezes tendo pelo menos duas faixas por direção
  • ter muitas faixas em ou perto de determinadas estações
  • oferecendo uma variedade de trens
  • usando sinais de todos os tipos
  • fornecendo muitos tipos diferentes de travessias ferroviárias
  • ter gêmeos digitais do "que está acontecendo lá fora"
  • etc.

Simplificar, como os controladores económicos tendem a fazer, e alguém paga um preço.(Fim da linha)

Inventare obtenha ambos: mais simples E mais complexo.(Inovação)

Onde o último é um resumo do trabalho do inventor do(intenção) "Inovação como Ciência", Genrich Altshuller. (TRIZ, sigla em russo, minha tradução por significado: uma teoria prática para resolver situações inventivas)

O que isso significa para Latex e Typst?

Todos nós sabemos: LatexÉ complexo. Ou na opinião de Ashby: ele lida com muita variedade/distúrbios. Amadureceu para um alto nível de composição tipográfica... eainda é, veja aqui.

Pelo seu próprio desenvolvimento Typstainda está no chamado infancy state. Começou com um determinado conceito em mente, oferecendo um número ainda limitado de resultados tipográficos, e irá evoluir ainda mais, como qualquer sistema técnico,

  • da contradição(roadblock, trade-off: this EXOR that)
  • através de uma solução(system change, exact solution: this AND that)
  • à contradição (next roadblock).

Como muitas pessoas afirmaram, TypstÉ mais simples e pretende ser assim. O que se traduz em:

  • Typsté menos complexo do queLatex
  • Latexpode lidar com mais distúrbios/variedades/requisitos do que Typstagora, e talvez assim seja por um longo tempo
  • para acompanhar a variedade oferecida pelo Latex, o Typstecossistema (sintaxe, compiladores, pacotes, bibliotecas etc.) precisa se tornar mais complexo, precisa ser capaz de absorver mais requisitos/variedade

Então, em consequência, provavelmente:

  • será mais fácil encontrar Latex2Typsttradutores (livrando-se da variedade)
  • ser difícil ou quase impossível encontrar Typst2Latextradutores (adicionando variedade/complexidade)(em contraste com apenas armazenar em formato de arquivo látex)

Minhas conclusões e estimativas (tendo sido alcançadas no futuro)

Num futuro próximo espero Typstser e permanecerSetAEla nãoMarcadaeuidioma, enquanto Latexcontinuará a apoiar a composição tipográfica ...

Alguns links entre os dois (chamados de tradutores acima) irão e virão.

Pode haver um subconjunto útil (bastante grande) de Typst, que pode ser absorvido (fornecido) por Latex.

O oposto, pelo menos conservando a complexidade da composição tipográfica, provavelmente nunca alcançará um estado utilizável.

informação relacionada