Percebo isso tolerance = 200
para um layout de coluna única na classe de artigo, mas tolerance = 9999
para um layout de duas colunas. Mas em ltxgrid.cls
, tolerance
permanece em 200 para \onecolumngrid
ou \twocolumngrid
.
A tolerância maior na classe de artigo de duas colunas resolve uma série de problemas nas linhas mais estreitas do modo de duas colunas, mas pode deixar espaços muito amplos.
Então, minhas perguntas são: por que o valor de duas colunas é definido tão alto na classe de artigo e qual é o valor desejável tolerance
em um modo típico de duas colunas?
Responder1
article
faz
\if@twocolumn
\twocolumn
\sloppy
\flushbottom
\else
\onecolumn
\fi
então a tolerância que você vê é do uso de \sloppy
, você pode usar o mesmo comando em outros contextos de colunas estreitas ou conforme discutido em vários lugares, por exemplo
Qual é o significado de \exigente, \sloppy, \emergencystretch, \tolerance, \hbadness?
Você pode considerar uma versão \sloppy
que não aumenta \tolerance
tanto e depende mais de \emergencystretch
.
Responder2
Como David disse, não existe um valor ideal real aqui. Tudo depende do conteúdo real em um ambiente restrito e da sua disposição de corrigir manualmente problemas individuais, reescrevendo o texto, adicionando pontos de hifenização que o TeX não encontrou e assim por diante.
Se você definir a tolerância alta, o TeX terá mais pontos de interrupção possíveis e possivelmente encontrará um que funcione em um caso problemático. Como resultado, você obtém uma ou algumas linhas mal espaçadas. Se você definir a tolerância mais baixa, mas usar um estiramento de emergência mais alto, então Tex inicialmente encontrará apenas quebras de linha "melhores", ou seja, aquelas que não estão tão espaçadas, mas se isso não der uma solução, em vez de ter uma linha mal espaçada você obterá mais (ou mesmo todas) linhas "bastante mal" espaçadas, pois esse trecho de emergência é adicionado a todas as linhas, fazendo com que as linhas pouco espaçadas pareçam melhores em geral. O que funciona melhor é uma questão de gosto, mas nenhum dos dois é realmente ótimo.
Normalmente defino a tolerância para algo em torno de 2.000-3.000 com um valor pequeno para alongamento de emergência adicional e estou preparado para corrigir qualquer problema restante manualmente, mas se você precisar de uma solução totalmente automática (ou quase), então algo como \sloppy ou um valor muito alto para O Emergencystetch (ou uma combinação adequada de alta tolerância + um Emergencystretch correspondente para que aproximadamente o mesmo conjunto de quebras seja encontrado) é a única possibilidade.