我正在尝试嵌套两个枚举环境,第二个枚举位于第一个枚举内。我正在使用 xgreek 包,它将第二个枚举生成为 (α')、(β')、(γ') 等。但是,当使用 2 种 GFS 字体(Elpis 和 Heraklit)时,我遇到了枚举中 ' 的问题。
因为我有超过 50 个带有嵌套枚举的 .tex 文件,所以我更愿意使用自动方式来执行此操作,而不必像上面所述那样为每个嵌套枚举添加标签这个帖子。
梅威瑟:
\documentclass[12pt]{article}
\usepackage{enumerate, enumitem, moreenum}
\usepackage{multicol}
\usepackage{fontspec,xgreek, polyglossia}
\defaultfontfeatures{Mapping=tex-text}
\setmainfont[Mapping=tex-text]{CMU Serif}
\setdefaultlanguage{english}
\newfontfamily\myfontfirst{GFS Elpis}
\newfontfamily\myfontsecond{GFS Artemisia}
\newfontfamily\myfontthird{GFS Heraklit}
\begin{document}
\begin{multicols}{2}
CMU Serif
\begin{enumerate}
\item
\begin{enumerate}
\item
\item
\item
\item
\item
\item
\end{enumerate}
\item
\end{enumerate}
{\myfontfirst
GFS Elpis
\begin{enumerate}
\item
\begin{enumerate}
\item
\item
\item
\item
\item
\item
\end{enumerate}
\item
\end{enumerate}
}
\end{multicols}
\begin{multicols}{2}
{\myfontsecond
GFS Artemisia
\begin{enumerate}
\item
\begin{enumerate}
\item
\item
\item
\item
\item
\item
\end{enumerate}
\item
\end{enumerate}
}
{\myfontthird
GFS Heraklit
\begin{enumerate}
\item
\begin{enumerate}
\item
\item
\item
\item
\item
\item
\end{enumerate}
\item
\end{enumerate}
}
\end{multicols}
\end{document}
答案1
GFS Elpis 和 GFS Heraklit 字体没有 U+0374 希腊数字符号的字形,事实上,你得到的
Missing character: There is no ʹ in font GFS Elpis/OT:script=latn;language=dflt;!
Missing character: There is no ʹ in font GFS Heraklit-Regular/OT:script=latn;language=dflt;!
当这些字体正在使用时,第二级枚举中的每个项目。
您可以使用具有字形的字体提供后备,在下面的代码中我采用了 GFS Artemisia。
\documentclass[12pt]{article}
\usepackage{fontspec}
\usepackage{xgreek}
\usepackage{enumitem,moreenum}
\usepackage{multicol}
\setmainfont{CMU Serif}
\newfontfamily\myfontfirst{GFS Elpis}
\newfontfamily\myfontsecond{GFS Artemisia}
\newfontfamily\myfontthird{GFS Heraklit}
\makeatletter
%%% avoid so many spurious warnings
\protected\def\anw@false{\protected\def\anw@print{}}
\protected\def\anw@true{\protected\def\anw@print{\numer@lsign}}
%%% provide a fall back for U+0374 GREEK NUMERAL SIGN
\protected\def\numer@lsign{\iffontchar\font`ʹ ʹ\else{\myfontsecond ʹ}\fi}
\makeatother
\begin{document}
\begin{multicols}{2}
CMU Serif
\begin{enumerate}
\item
\begin{enumerate}
\item
\item
\item
\item
\item
\item
\end{enumerate}
\item
\end{enumerate}
{\myfontfirst
GFS Elpis
\begin{enumerate}
\item
\begin{enumerate}
\item
\item
\item
\item
\item
\item
\end{enumerate}
\item
\end{enumerate}
}
\end{multicols}
\begin{multicols}{2}
{\myfontsecond
GFS Artemisia
\begin{enumerate}
\item
\begin{enumerate}
\item
\item
\item
\item
\item
\item
\end{enumerate}
\item
\end{enumerate}
}
{\myfontthird
GFS Heraklit
\begin{enumerate}
\item
\begin{enumerate}
\item
\item
\item
\item
\item
\item
\end{enumerate}
\item
\end{enumerate}
}
\end{multicols}
\end{document}
顺便说一句,不要同时加载enumerate
和enumitem
,因为它们会互相冲突。仅加载后者。