有人能解释一下为什么 LaTeX 有时候似乎无法对齐文本?红色段落的单词间距较大,尤其是前三行。
这是否与单词的连字符有关?是否可以避免?
这是重现效果的 MWE:
%!TEX program = xelatex
\documentclass[
draft=false,
paper=portrait,
twoside=false,
open=right,
parskip=full,
headings=big,
version=last,
italian
]{scrbook}
\setlength{\oddsidemargin}{1cm}
\setlength{\textwidth}{0.7\textwidth}
\setlength{\marginparwidth}{2\marginparwidth}
\usepackage{lmodern}
\usepackage{amsmath} % advanced math symbols pkg
\usepackage{amsthm, amsthm}
\usepackage[utf8]{inputenc} % utf8 encoding
\usepackage{graphicx} % pictures support
\usepackage{longtable} % table on multiple pages support
\usepackage[italian]{babel} % language support
\usepackage{enumitem} % custom enumeration support
\usepackage{rotating} % Rotating pictures support
\usepackage{floatrow} % Support for floated images
\usepackage{marvosym} % Currency symbols
\usepackage{fancyhdr} % Fancy headers
\usepackage{array}
\usepackage{footnote}
\usepackage{setspace}
\usepackage{afterpage} % Permette di mettere i numeri di pagina nel footer se si usa il package Fancyhdr
\usepackage{textcomp} % Package for copyright glyph
\usepackage[newfloat]{minted} % Package for highlight code
\usepackage{appendix} %Package for appendices
\usepackage{chngcntr} %Package for list of figures numeration
\usepackage{csquotes}
\usepackage{fontspec}
\usepackage[protrusion=true]{microtype}
\usepackage{hyperref} % Must be called as the last
% ----------------------
% DOCUMENT START
% ----------------------
\begin{document}
\sloppy
\setromanfont{Minion Pro}
Di recente si è verificata una vera e propria esplosione di framework per lo sviluppo web frontend: Ember.js, Vue.js, Angular, Backbone.js, React e molti altri ancora. Ma tra i tanti, Angular è diventato uno della scelte più comuni, soprattutto grazie ad una recente riscrittura che lo ha reso molto più solido e performante di quanto non fosse in passato.
Tuttavia, anche dotandosi di uno strumento potente come Angular, una questione rimane particolarmente delicata nell’implementazione di un’applicazione volta all’interattività: la \textbf{gestione dello stato}. Nel seguente capitolo, verrano prima presentate le logiche alla base della costruzione di un’applicazione Angular. Successivamente verrà introdotto Redux, o meglio la sua implementazione Angular conosciuta come @ngrx, ovvero un pattern per la gestione dello stato interamente basato sulla reactive programming.
Angular (all’epoca conosciuto come AngularJS) nasce nel 2009 da Miško Hevery angularborn e Adam Abrons come implementazione di un servizio a pagamento per il salvataggio online di file JSON, che avrebbe dovuto facilitare lo sviluppo di applicazioni enterprise. Il servizio venne pubblicato all’indirizzo getangular.com e poco dopo, a causa dello scarso successo, i due decisero di abbondare l’idea di business e di rilasciare Angular come una libreria open source.
\end{document}
答案1
不要使用\sloppy
。在您的示例中,它会导致单词间空格过大。如果 TeX 无法在没有过满的 \hbox 的情况下中断段落,这种情况总是会发生。最好nell’
在implementazione
使用后允许换行nell’\hskip 0pt implementazione
:
%!TEX program = xelatex
\documentclass[
draft=false,
paper=portrait,
twoside=false,
open=right,
parskip=full,
headings=big,
version=last,
italian
]{scrbook}
\setlength{\oddsidemargin}{1cm}
\setlength{\textwidth}{0.7\textwidth}
\setlength{\marginparwidth}{2\marginparwidth}
\usepackage{fontspec}
\usepackage[italian]{babel} % language support
\usepackage{textcomp} % Package for copyright glyph
\usepackage{microtype}
% ----------------------
% DOCUMENT START
% ----------------------
\begin{document}
\setromanfont{Minion Pro}
Di recente si è verificata una vera e propria esplosione di framework per lo sviluppo web frontend: Ember.js, Vue.js, Angular, Backbone.js, React e molti altri ancora. Ma tra i tanti, Angular è diventato uno della scelte più comuni, soprattutto grazie ad una recente riscrittura che lo ha reso molto più solido e performante di quanto non fosse in passato.
Tuttavia, anche dotandosi di uno strumento potente come Angular, una
questione rimane particolarmente delicata nell’\hskip0pt implementazione di un’applicazione volta all’interattività: la \textbf{gestione dello stato}. Nel seguente capitolo, verrano prima presentate le logiche alla base della costruzione di un’applicazione Angular. Successivamente verrà introdotto Redux, o meglio la sua implementazione Angular conosciuta come @ngrx, ovvero un pattern per la gestione dello stato interamente basato sulla reactive programming.
Angular (all’epoca conosciuto come AngularJS) nasce nel 2009 da Miško Hevery angularborn e Adam Abrons come implementazione di un servizio a pagamento per il salvataggio online di file JSON, che avrebbe dovuto facilitare lo sviluppo di applicazioni enterprise. Il servizio venne pubblicato all’indirizzo getangular.com e poco dopo, a causa dello scarso successo, i due decisero di abbondare l’idea di business e di rilasciare Angular come una libreria open source.
\end{document}
nell’
如果之后不应出现换行符,则可以使用nell’\allowhyphens implementazione
仅允许连字符implementazione
:
%!TEX program = xelatex
\documentclass[
twoside=false,
parskip=full,
]{scrbook}
\setlength{\oddsidemargin}{1cm}
\setlength{\textwidth}{0.7\textwidth}
\setlength{\marginparwidth}{2\marginparwidth}
\usepackage{fontspec}
\usepackage[italian]{babel} % language support
\usepackage{textcomp} % Package for copyright glyph
\usepackage{microtype}
% ----------------------
% DOCUMENT START
% ----------------------
\begin{document}
\setromanfont{Minion Pro}
Di recente si è verificata una vera e propria esplosione di framework per lo sviluppo web frontend: Ember.js, Vue.js, Angular, Backbone.js, React e molti altri ancora. Ma tra i tanti, Angular è diventato uno della scelte più comuni, soprattutto grazie ad una recente riscrittura che lo ha reso molto più solido e performante di quanto non fosse in passato.
Tuttavia, anche dotandosi di uno strumento potente come Angular, una
questione rimane particolarmente delicata nell’\allowhyphens implementazione di un’applicazione volta all’interattività: la \textbf{gestione dello stato}. Nel seguente capitolo, verrano prima presentate le logiche alla base della costruzione di un’applicazione Angular. Successivamente verrà introdotto Redux, o meglio la sua implementazione Angular conosciuta come @ngrx, ovvero un pattern per la gestione dello stato interamente basato sulla reactive programming.
Angular (all’epoca conosciuto come AngularJS) nasce nel 2009 da Miško Hevery angularborn e Adam Abrons come implementazione di un servizio a pagamento per il salvataggio online di file JSON, che avrebbe dovuto facilitare lo sviluppo di applicazioni enterprise. Il servizio venne pubblicato all’indirizzo getangular.com e poco dopo, a causa dello scarso successo, i due decisero di abbondare l’idea di business e di rilasciare Angular come una libreria open source.
\end{document}
在这种情况下,结果将与上面的相同。