Texto fora das margens

Texto fora das margens

Não sei porquê, mas uma linha no meu texto está fora das margens.

imagem

Como posso evitar esse problema?

Estou usando classicthesisno TeXworks.

Editar: com o comando

\overfullrule=5pt

Posso ver um quadrado preto onde esse problema aparece.

Aqui umMWEemyclassicthesis-preamble

\documentclass{scrreprt}

\usepackage[english]{babel}

\usepackage{myclassicthesis-preamble}
\usepackage{classicthesis}
\usepackage{microtype}

\renewcommand{\descriptionlabel}[1]{\hspace*{\labelsep}\small\textsc{#1}}

\overfullrule=5pt

\begin{document}

\begin{description}
\item[Service Delivery Framework] The infrastructure to create, publish, manage and consume FI services across their life cycle, addressing all technical and business aspects.
\item[Interface to the Network and Devices] The open interfaces to networks and devices, harmonizing the connectivity needs of services built on top of the platform.
\end{description}

Lastly, on the \emph{political dimension}, legal and legislative barriers presently hinder the efficient cross-border establishment of new innovative solutions due to complex or incompatible ICT policies in Europe.

\end{document}

Dois possíveis problemas: esta linha

\renewcommand{\descriptionlabel}[1]{\hspace*{\labelsep}\small\textsc{#1}}

e a modificação em myclassicthesis-preamble(linhas 63-70)

\PassOptionsToPackage{
            eulerchapternumbers,
            beramono,
            eulermath,          
            pdfspacing,         
            floatperchapter          
            }
{classicthesis}

em particular a opção pdfspacing.

Responder1

TeX não hifeniza presentlydevido a dois fatores concorrentes:

  1. a palavra presentnão pode ser hifenizada automaticamente, pois muda de sílaba quando é verbo ou substantivo (assim como record);

  2. o mínimo de hifenização correta para inglês é definido como três, ou seja, o TeX não pode deixar menos de três caracteres de uma palavra hifenizada na nova linha.

Se definirmos \righthyphenmin=2, então \showhyphens{presently}present-lyconforme o esperado. Carregando ushyphenmaxviahifsubstâncianão hifenizará presently, pelo mesmo motivo que \righthyphenmin=3. Dizer \hyphenation{pres-ent-ly}no preâmbulo permitiria a hifenização como pres-ently(mas não present-ly, porque duas letras são muito poucas).

Em uma situação de emergência, pode-se permitir a hifenização digitando present\-lyalgo que substituirá o mínimo padrão.

O formato definido portese clássicaé bastante rigoroso e seu texto mostra os problemas que podem surgir com rótulos de descrição longos. Não há muito o que fazer além de modificar, se possível, o texto. Eu evitaria \sloppyao máximo, pois permite produzir parágrafos mal espaçados.

Uma estratégia melhor é usar \emergencystretch: com as seguintes modificações

\begingroup\emergencystretch=.3em
\begin{description}

\item[Service Delivery Framework] The infrastructure to create, publish, manage and consume
FI services across their life cycle, addressing all technical and business aspects.

\item[Interface to the Network and Devices] The open interfaces to networks and devices,
harmonizing the connectivity needs of services built on top of the platform.

\end{description}

\endgroup

Lastly, on the \emph{political dimension}, legal and legislative barriers present\-ly hinder
the efficient cross-border establishment of new innovative solutions due to complex or
incompatible ICT policies in Europe.

o texto será composto sem caixas muito cheias e sem espaçamento muito ruim.

Deve-se notar também quemicrotipo écarregado automaticamente portese clássica(linha 219 classicthesis.stydiz \RequirePackage{microtype).

Responder2

Editar: parece que você tem alguns lugares particularmente azarados em seu documento, onde apenas um \sloppyajudará. No entanto, aqui estão algumas informações que podem ajudar a entender um pouco melhor a hifenização e a obter menos desses locais. Observe que o seguinteaplica-se apenas aos padrões de hifenização americanos, que é o padrão carregado por (La)TeX e carregado pelas babelopções de english, americane usenglish, que sãotudo o mesmo.

Como foi mencionado, o TeX não sabe como hifenizaratualmente. Isso pode ser visto compilando um documento contendo \showhyphens{presently}; posteriormente, os pontos de hifenização deatualmenteserá colocado no arquivo .log - acontece que não há nenhum. Como observou @percusse, adicionar \hyphenation{pre-sent-ly}ao seu preâmbulo resolverá o problema desta palavra, mas você notou que há mais. Então aqui está o que mais você poderia fazer:

Carregue os padrões de hifenização mais recentes

Inserir

\RequirePackage[english=usenglishmax]{hyphsubst}

atéantesvocê \documentclass{...}deve carregar padrões de hifenização atualizados para \usepackage[english]{babel}(padrões americanos).

Incluir manualmente as exceções de hifenização conhecidas

OLog de exceção de hifenização(novembro de 2010) é “a atualização periódica da lista de palavras que o TeX não consegue hifenizar corretamente” (ibid., p. 1001). Na página 1005, confirma que o TeX não sabe hifenizaratualmentee lista a hifenização desejada pres-ent-ly.

Aqui está o parágrafo relevante sobre como usar esta lista de exceções de hifenização:

Convertendo esta lista em exceções de hifenização utilizáveis ​​por máquina

Werner Lemberg criou um script que irá converter este artigo em um \hyphenationbloco real que pode ser incorporado a um documento diretamente ou inserindo um arquivo. Seu trabalho exigiu algumas alterações nas macros usadas para formatar a lista, mas a aparência da lista não mudará. Muitas formas flexionadas serão incluídas automaticamente, algumas evidentes na versão impressa, mas muitas incluídas silenciosamente. O script, hyphenex.sh, é um shell script simples e é publicado no CTAN, emtex-archive/info/digests/tugboat/hyphenex/ A saída do script é postada na mesma área que ushyphex.tex.

(ibid., pág. 1001)

Além disso, concordo com a sugestão de Peter de usar o microtypepacote, que melhora a hifenização em geral e dá ao seu documento um fator de cinza mais uniforme.

Responder3

Sem umMWEé difícil saber com certeza.

A razão usual pela qual isso ocorre é que o TeX não foi capaz de atender a todas as regras de espaçamento conforme as Overfull \hboxmensagens. Uma maneira de corrigir isso é adicionar \sloppyo que relaxa as regras de espaçamento entre palavras. Veja as respostas paraPor que o texto está sendo colocado além da largura de linha especificada?para uma explicação mais detalhada.

Ou você pode adicionar algo \usepackage{microtype}ao preâmbulo. Veja odocumentação do pacote de microtipos para mais detalhes.

Responder4

Talvez o LaTeX não saiba hifenizar "atualmente"? Nesse caso, você pode simplesmente dizer como fazê-lo escrevendo como pres\-ent\-ly.

informação relacionada