
Я пытаюсь вложить два перечисления, второе внутри первого. Я использую пакет xgreek, который генерирует второе перечисление как (α'), (β'), (γ') и т. д. Однако при использовании двух шрифтов 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
вместе, так как они воюют друг с другом. Загружайте только последнее.