段落之间的文本对齐不一致

段落之间的文本对齐不一致

有人能解释一下为什么 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}

在这种情况下,结果将与上面的相同。

答案2

我认为,如果 LaTeX 代码完全相同,则没有问题。事实是,你的第二段有更长的单词。这可能是 LaTeX 更难将这些单词连字符化的原因。例如,请参见以下问题:段落的理据

为了修复,您可以像第一条评论中提到的那样段落的理据\-在单词中使用工具(例如, particolar\-mente)。

相关内容