![Lualatex、多语、法语间距以及带有 egreg 修复的 hookarrow 中的洞,在 texlive2015/2016 中](https://linux22.com/image/333265/Lualatex%E3%80%81%E5%A4%9A%E8%AF%AD%E3%80%81%E6%B3%95%E8%AF%AD%E9%97%B4%E8%B7%9D%E4%BB%A5%E5%8F%8A%E5%B8%A6%E6%9C%89%20egreg%20%E4%BF%AE%E5%A4%8D%E7%9A%84%20hookarrow%20%E4%B8%AD%E7%9A%84%E6%B4%9E%EF%BC%8C%E5%9C%A8%20texlive2015%2F2016%20%E4%B8%AD.png)
当我们使用 lualatex 和通过 polyglossia 的法语间距时,这涉及 egreg 解决箭头中孔洞的解决方案 多语症和 hookrightarrow
你可以看到,一旦引入箭头,分号和箭头前就没有空格了,箭头前后并且它会出现在文档的下一行。如何恢复它?
\documentclass{article}
\usepackage{fontspec}
\usepackage{polyglossia}
\setmainlanguage{french}
\newcommand{\fff}{f; f ;«f» « f »; $\epsilon$;}
\ifluatex
\makeatletter
\let\latex@lhook\lhook
\renewrobustcmd{\lhook}{%
\mathrel{\mathpalette\do@lhook\relax}%
}
\newcommand{\do@lhook}[2]{%
\hbox{\directlua{polyglossia.desactivate_frpt()}$\m@th#1\latex@lhook$}%
}
\let\latex@rightarrow\rightarrow
\renewrobustcmd{\rightarrow}{%
\mathrel{\mathpalette\do@rightarrow\relax}%
}
\newcommand{\do@rightarrow}[2]{%
\hbox{\directlua{polyglossia.desactivate_frpt()}$\m@th#1\latex@rightarrow$}%
}
\makeatother
\fi
\begin{document}
\fff
\fff
AAA $\hookrightarrow$ \fff.\\
AAA \fff BBBB.
\showoutput
\end{document}