Xelatex 多语连字

Xelatex 多语连字

有没有办法让polyglossia包自动解决日志中显示为“Overfull \hbox”的连字符问题?

(注意:我发现,即使对于整个文本来说,使用较短的线条也比使用突出的线条要好得多。)

我正在尝试获取:

... end of line
end of line
... end of line
... end of line

...但我拥有(并且不想要)的是:

... end of line
... overfullboxishere
... end of line
... end of line

以下是“箱子过满”错误的示例:

“盒子过满”错误示例 #1

另一个问题:这可能相关:polyglossia不会对其他指定语言进行连字符连接。

其他语言的“过满框”错误示例polyglossia

“盒子过满”错误示例 #2

当我使用该\textenglish命令时,问题似乎自行解决了:

使用 \textenglish 命令

但是,生成的文档被污染了\textenglish,我不希望它出现\textenglish在我的文档中。

平均能量损失

\documentclass[12pt]{article}

\usepackage{polyglossia}
\usepackage{lipsum}

\setdefaultlanguage{russian}
\setotherlanguages{english}
\setmainfont[Mapping=tex-text]{Times New Roman}

\begin{document}
\lipsum[1]

\begin{itemize}
  \item Возможность работать с такими популярными как
  %  \textenglish{
    MySQL, SQLite, PostgreSQL, Oracle, and Microsoft SQL Server.
  %}
\end{itemize}

\lipsum[1]
\end{document}

答案1

我认为,最好的策略仍然是用英语标记部分。但是,如果你的英语单词很少,还有其他方法。

ucharclasses

定义与拉丁字符之间的过渡。

\documentclass[12pt]{article}

\usepackage{polyglossia}
\usepackage{ucharclasses}
\usepackage{microtype} % better management of overfulls

\setdefaultlanguage{russian}
\setotherlanguages{english}
\setmainfont[Ligatures=TeX]{Times New Roman}

\setTransitionsForLatin{\begingroup\hyphenrules{english}}{\endgroup}

\begin{document}

\begin{itemize}
  \item Возможность работать с такими популярными как
    MySQL, SQLite, PostgreSQL, Oracle, and Microsoft SQL Server.

  \item Возможность работать с такими популярными как
  Возможность работать с такими популярными как
  Возможность работать с такими популярными как
\end{itemize}

\end{document}

仅凭多语

为您需要的少量单词定义一组连字规则

\documentclass[12pt]{article}

\usepackage{polyglossia}
\usepackage{microtype} % better management of overfulls

\setdefaultlanguage{russian}
\setmainfont[Ligatures=TeX]{Times New Roman}

\begin{hyphenrules}{russian}
\hyphenation{post-gresql or-a-cle mi-cro-soft}
\end{hyphenrules}

\begin{document}

\begin{itemize}
  \item Возможность работать с такими популярными как
    MySQL, SQLite, PostgreSQL, Oracle, and Microsoft SQL Server.

  \item Возможность работать с такими популярными как
  Возможность работать с такими популярными как
  Возможность работать с такими популярными как
\end{itemize}

\lipsum[1]
\end{document}

在此处输入图片描述

这两种方法的输出相同。这仍然会产生一个小的溢出框,但只有 0.8pt,但除了重新措辞外,没有太多可以做的事情。

请注意,该ucharclass方法相当繁重,因此将其用于较长的英语段落可能会减慢文件的处理速度。

相关内容