当使用 enumitem 包时,如果我使用 \alph* 作为标签,则会得到不需要的矩形

当使用 enumitem 包时,如果我使用 \alph* 作为标签,则会得到不需要的矩形

如果在我的 .tex 文件中重现不需要的行为,我有

\documentclass[12pt]{report}

\usepackage{enumerate}

\usepackage[inline]{enumitem}

\usepackage{fontspec}

\setmainfont{Times New Roman}

\usepackage[greek, english]{babel}

\begin{document}
\selectlanguage{greek}

\begin{enumerate}[label = \alph*)]

\item first line

\item second line

\end{enumerate}

\end{document}

我得到了这个输出,你可以看到字母旁边的方块如何摆脱它们?PS:我运行 XeTeX

在此处输入图片描述

答案1

这显然是你的机器上的 Times New Roman 版本有问题,因为我的机器上出现了“撇号”。虚线矩形表示字体中缺少一个字符。

如果您想将其从特定环境中删除,您可以回收我的答案;它是为polyglossia和编写的xgreek,但在这里也适用。

\documentclass[12pt]{report}
\usepackage{fontspec}
\usepackage[english,greek]{babel}

\usepackage[inline]{enumitem}
\usepackage{etoolbox}

\setmainfont{Times New Roman}

% recycled from https://tex.stackexchange.com/a/292127/4427
\makeatletter
\renewrobustcmd{\anw@true}{\let\ifanw@\iftrue}
\renewrobustcmd{\anw@false}{\let\ifanw@\iffalse}\anw@false
\newrobustcmd{\noanw@true}{\let\ifnoanw@\iftrue}
\newrobustcmd{\noanw@false}{\let\ifnoanw@\iffalse}\noanw@false
\renewrobustcmd{\anw@print}{\ifanw@\ifnoanw@\else\numer@lsign\fi\fi}
\newrobustcmd{\noanw}{\noanw@true}
\makeatother

\begin{document}

\begin{enumerate}[label = \noanw\alph*)]
\item first line
\item second line
\end{enumerate}

\end{document}

在此处输入图片描述

请注意,\selectlanguage{greek}如果最后加载,则不需要greek

此外,enumerate还要enumitem互相争斗,所以只需要其中一个加载(后者更加强大)。

最后建议:当涉及希腊语fontspec时应先加载。babel

在此处输入图片描述

如果您想从文档中完全删除“撇号”,则可以使用其他解决方案

\documentclass[12pt]{report}
\usepackage{fontspec}
\usepackage[english,greek]{babel}

\usepackage[inline]{enumitem}
\usepackage{etoolbox}

\setmainfont{Times New Roman}

% see https://tex.stackexchange.com/a/173572/4427
\renewcommand\textdexiakeraia{}    

\begin{document}

\begin{enumerate}[label = \alph*)]
\item first line
\item second line
\end{enumerate}

\end{document}

相关内容