mcand / abntex2

Automatically exported from code.google.com/p/abntex2
0 stars 0 forks source link

Quebra de linhas em hyperlinks #42

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Em qualquer parte do documento digite: 
\url{http://bigbrowser.blog.lemonde.fr/2013/02/17/tu-ne-tweeteras-point-le-vatic
an-interdit-aux-cardinaux-de-tweeter-pendant-le-conclave/}. 

What is the expected output? What do you see instead?

A linha ultrapassa a margem, deveria ser quebrada. 

Additional information:

Possíveis soluções:

Uma solução ad hoc:

\begin{sloppypar}
\url{http://bigbrowser.blog.lemonde.fr/2013/02/17/tu-ne-tweeteras-point-le-vatic
an-interdit-aux-cardinaux-de-tweeter-pendant-le-conclave/}. 
\end{sloppypar}

ou

\PassOptionsToPackage{hyphens}{url}\RequirePackage{hyperref}        

que não resolve completamente.

ou

\RequirePackage[hyphenbreaks]{breakurl}

que também não resolve completamente.

Discussões do problema:
http://tex.stackexchange.com/questions/54946/how-to-break-long-url-in-an-item
http://tex.stackexchange.com/questions/59122/how-to-avoid-using-sloppy-document-
wide-to-fix-overfull-hbox-problems
http://tex.stackexchange.com/questions/54946/how-to-break-long-url-in-an-item
http://tex.stackexchange.com/questions/3033/forcing-linebreaks-in-url

Original issue reported on code.google.com by gilsonol...@gmail.com on 13 Mar 2013 at 2:01

GoogleCodeExporter commented 9 years ago
Discussão no grupo de desenvolvedores: 
https://groups.google.com/d/msg/abntex2/D7XE5WJCdFw/Zf5x1xGeESgJ

Original comment by laurocesar on 13 Mar 2013 at 3:54

GoogleCodeExporter commented 9 years ago
Uma vez, já faz algum tempo, achei a sugestão de se colocar 

\usepackage{hyperref}
\usepackage{breakurl}

e nunca tive mais esse prob. Salvo engano, nao me lembro ao certo, essas 
declarações devem vir como aparecem, uma após a outra. Mas, como disse, não 
estou certo dessa obrigatoriedade. 

Original comment by wagner.a...@gmail.com on 13 Mar 2013 at 5:23

GoogleCodeExporter commented 9 years ago
Gilson, a sugestão do Wagner funcionou?

Original comment by laurocesar on 18 Mar 2013 at 9:25

GoogleCodeExporter commented 9 years ago
Como relatado na descrição, \RequirePackage[hyphenbreaks]{breakurl} não 
resolve o problema completamente.

Original comment by gilsonol...@gmail.com on 18 Mar 2013 at 9:40

GoogleCodeExporter commented 9 years ago
Parece então que é um problema sem solução? Ou ainda pesquisamos mais sobre 
isso?

Original comment by laurocesar on 18 Mar 2013 at 9:42

GoogleCodeExporter commented 9 years ago
Não há problemas sem solução, só pseudoproblemas. Deixamos em aberto, vou 
pesquisar mais.

Original comment by gilsonol...@gmail.com on 18 Mar 2013 at 9:49

GoogleCodeExporter commented 9 years ago
Perfeito! :)

Original comment by laurocesar on 18 Mar 2013 at 9:54

GoogleCodeExporter commented 9 years ago
Gilson, só para controle, vou atribuir a tarefa a você, ok?

Original comment by laurocesar on 21 Mar 2013 at 12:54

GoogleCodeExporter commented 9 years ago
Motivo para a alternativa do wagner não funcionar: 

"As stated in the introduction, the breakurl is designed for those compiling 
docu- ments via LATEX, not pdfLATEX. In the latter case, the package doesn’t 
(re)define the \url command: it only defines \burl to be a synonym of whatever 
\url is defined (e.g., via url or hyperref packages). Of course, \burl may 
behave differ- ently compared to (non-pdf)LATEX, because then the system will 
use other rules to make line breaks, spacing, etc.
Also, this package was not designed to nor tested against other drivers: it’s 
compatible with dvips only."

Solução encontrada: 

1a: em todas as ocorrências de url substituir por \sloppy\url

2a: adicionar ao preambulo:

 \tolerance 1414
 \hbadness 1414
 \emergencystretch 1.5em
 \hfuzz 0.3pt
 \widowpenalty=10000
 \vfuzz \hfuzz
 \raggedbottom

e 

\usepackage[activate={true,nocompatibility},final,babel=true,tracking=true,kerni
ng=true,spacing=true,factor=1100,stretch=10,shrink=10]{microtype}

Original comment by gilsonol...@gmail.com on 21 Mar 2013 at 9:50

GoogleCodeExporter commented 9 years ago
Legal Gilson! Porém, fiquei sem endenter: as soluções 1 e 2 são um OU? É 
uma ou a outra? Ou as duas juntas?

Original comment by laurocesar on 22 Mar 2013 at 12:37

GoogleCodeExporter commented 9 years ago
A solução automática é a 2a. Ou seja: adicionar: 

  \tolerance 1414 
  \hbadness 1414 
  \emergencystretch 1.5em 
  \hfuzz 0.3pt 
  \widowpenalty=10000 
  \vfuzz \hfuzz 
  \raggedbottom 

e 

\usepackage[activate={true,nocompatibility},final,babel=true,tracking=true,kerni
ng=true,spacing=true,factor=1100,stretch=10,shrink=10]{microtype} 

O uso do segundo melhora inclusive a legibilidade, correções do espaçamento 
entre palavras, quebra de linhas etc. Mais informações em 
http://www.khirevich.com/latex/microtype/ Não sei, dentre as configurações 
do microtype, aquela que faz a quebra necessária. Não fiz os testes 
necessários. Eu suspeitava que seria a protrusion=true (embora ela não esteja 
entre as configurações passas expressamente para o package), talvez a chamada 
do microtype já habilite ela automaticamente.

Nota: em caso do uso do xelatex, o microtype é desnecessário. Por isso, 
creio, a solução não é ideal. Ela é, no entanto, a melhor dentre as 
opções anteriores. De toda forma, esse não é um problema sério. O 
usuário, caso precise, pode quebrar a linha manualmente com \- ou com 
\begin{sloppypar} \end{sloppypar}.

Desculpe a falta de clareza anterior.

Original comment by gilsonol...@gmail.com on 22 Mar 2013 at 2:06

GoogleCodeExporter commented 9 years ago
Gilson

Muito bom. Então, deixa ver se entendi:

1) o usuário pode simplesmente usar \sloppy\url{url grande vai aqui} OU 
\begin{sloppypar}\url{url grande vai aqui}\end{sloppypar}

OU ENTÃO

2) inserir no preâmbulo os comandos na seguinte ordem:

\usepackage[activate={true,nocompatibility},final,babel=true,tracking=true,kerni
ng=true,spacing=true,factor=1100,stretch=10,shrink=10]{microtype} 

  \tolerance 1414 
  \hbadness 1414 
  \emergencystretch 1.5em 
  \hfuzz 0.3pt 
  \widowpenalty=10000 
  \vfuzz \hfuzz 
  \raggedbottom 

  de modo que seja possível simplesmente usar \url{url grande vai aqui}

É isso, ok?

A solução (1) não depende de nada ser inserido na classe. Basta o usuário 
usar uma das opções.

Já a solução (2) implica em alterar mais coisas além da questão das url 
longa, certo? Por isso, como se trata de um problema geral de LaTeX, acredito 
que o melhor não seria incorporar a solução (2) à classe, uma vez que 
precisamos buscar o mínimo de efeitos colaterais possíveis.

De toda forma, sugiro que coloquemos as duas opções nos exemplos que 
acompanham todos os modelos (arquivo abntex2-modelo-include.tex). O que você 
acha? Você escreveria uma seção para que coloquemos lá? Veja o exemplo no 
arquivo citado.

Se topar lhe aguardo para incluir já nesta versão 1.6.

Original comment by laurocesar on 22 Mar 2013 at 2:34

GoogleCodeExporter commented 9 years ago
Perfeitamente. A solução é como você descreveu. Talvez uma boa solução 
seja colocar essas linhas nos exemplos, mas comentadas. Outra é apenas 
adicionar no manual. Como disse, o problema é pequeno. Concordo que é melhor 
manter o mínimo de pacotes possíveis.

Posso escrever uma seção.

Original comment by gilsonol...@gmail.com on 22 Mar 2013 at 3:48

GoogleCodeExporter commented 9 years ago
Ok Gilson, você pode escrever diretamente no arquivo (conforme 
http://code.google.com/p/abntex2/wiki/FerramentasDesenv), ou pode escrever e me 
mandar que eu coloco no documento.

Original comment by laurocesar on 22 Mar 2013 at 4:00

GoogleCodeExporter commented 9 years ago
Gilson, outra opção é colocar o conhecimento numa Wiki. Pode ser até na 
FAQ: http://code.google.com/p/abntex2/wiki/FAQ

Original comment by laurocesar on 22 Mar 2013 at 4:04

GoogleCodeExporter commented 9 years ago
Gilson, vi a FAQ que criou e ficou absolutamente clara. Parabéns! Vou fechar 
esta issue, mas fique à vontade em reabri-la se quiser. Sinta-se convidado a 
conhecer as outras issues. Sua contribuição a elas também seria muito 
enriquecedora, como foi com esta questão. 

Original comment by laurocesar on 23 Mar 2013 at 9:57

GoogleCodeExporter commented 9 years ago
Gilson

Vc poderia dar uma olhada no link abaixo?

http://tex.stackexchange.com/questions/39573/abntex-and-hyphenat-problems-in-url
-formatting

Seria o caso de incorporar a solução nas próximas versões?

Original comment by laurocesar on 28 Mar 2013 at 12:44

GoogleCodeExporter commented 9 years ago
Meus últimos testes, apenas com a adição do 
\PassOptionsToPackage{hyphens}{url}\RequirePackage{hyperref} feitos no abntex 
v-1.6-beta, o problema parece ter sido resolvido. Confira com testes aí 
também.

Original comment by gilsonol...@gmail.com on 28 Mar 2013 at 9:47

GoogleCodeExporter commented 9 years ago
Gilson

Quando puder, dê uma olhada no manual do hyperref. Se não me engano, hyphens 
e url estão por padrão lá e bastaria acioná-los por uma option.

Original comment by laurocesar on 2 Apr 2013 at 11:20

GoogleCodeExporter commented 9 years ago
Desculpe a hesitação entre uma solução e outra. 

Para resumir e terminar o problema: 
- Do modo como a classe está agora - sem nenhuma adição - as notas de 
rodapé estão corretas. Url's longas corpo do texto ainda aparecem fora da 
margem, mas isso pode ser corrigido com as recomendações da FAQ, com uma 
intervenção local. 

- De toda forma, esse não é um problema que muitos usuários vão passar. A 
solução local sempre poderá ser feita.

Logo, o problema pode ser considerado "resolvido".

Original comment by gilsonol...@gmail.com on 2 Apr 2013 at 11:15