
Não sei porquê, mas uma linha no meu texto está fora das margens.
Como posso evitar esse problema?
Estou usando classicthesis
no 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 presently
devido a dois fatores concorrentes:
a palavra
present
não pode ser hifenizada automaticamente, pois muda de sílaba quando é verbo ou substantivo (assim comorecord
);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}
dá present-ly
conforme o esperado. Carregando ushyphenmax
viahifsubstâ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\-ly
algo 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 \sloppy
ao 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.sty
diz \RequirePackage{microtype
).
Responder2
Editar: parece que você tem alguns lugares particularmente azarados em seu documento, onde apenas um \sloppy
ajudará. 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 babel
opções de english
, american
e 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
\hyphenation
bloco 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 queushyphex.tex
.
(ibid., pág. 1001)
Além disso, concordo com a sugestão de Peter de usar o microtype
pacote, 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 \hbox
mensagens. Uma maneira de corrigir isso é adicionar \sloppy
o 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
.