![使用 polyglossia 恢复 noindentafter 功能](https://linux22.com/image/279795/%E4%BD%BF%E7%94%A8%20polyglossia%20%E6%81%A2%E5%A4%8D%20noindentafter%20%E5%8A%9F%E8%83%BD.png)
当polyglossia
加载noindentafter
停止工作时:
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Latin Modern Roman}
\usepackage{lipsum}
\usepackage{polyglossia}
\setmainlanguage{french}
% \PolyglossiaSetup{french}{indentfirst=false}
\usepackage{noindentafter}
\NoIndentAfterEnv{myitemize}
\newenvironment{myitemize}{\begin{itemize}}{\end{itemize}}
\begin{document}
\begin{myitemize}
\item test
\end{myitemize}
\lipsum
\end{document}
我测试过的所有语言都存在这种情况。某一部分的第一段没有缩进?egreg 建议添加indentfirst=false
(在代码中注释),但不幸的是它不适用于自定义环境。
有没有一种(可能简单的)方法可以noindentafter
在使用时恢复功能polyglossia
?
答案1
这两个包都搞乱了\@afterindentfalse
。幸运的是,polyglossia
存储了旧版本\@@fterindentfalse
,因此我们可以重新定义中央命令\NoIndentAfterThis
以使用存储的版本。
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Latin Modern Roman}
\usepackage{lipsum}
\usepackage{polyglossia}
\setmainlanguage{french}
\usepackage{noindentafter}
\makeatletter
\renewcommand*{\NoIndentAfterThis}{\par\@@fterindentfalse\@afterheading}
\makeatother
\NoIndentAfterEnv{myitemize}
\newenvironment{myitemize}{\begin{itemize}}{\end{itemize}}
\begin{document}
Text. \NoIndentAfterThis Text.
\begin{myitemize}
\item test
\end{myitemize}
\lipsum
\end{document}