Problem mit GFS + Aufzählung

Problem mit GFS + Aufzählung

Ich versuche, zwei Enumerationsumgebungen zu verschachteln, die zweite in der ersten. Ich verwende das xgreek-Paket, das die zweite Enumeration als (α'), (β'), (γ') usw. generiert. Bei Verwendung von zwei der GFS-Schriftarten (Elpis und Heraklit) habe ich jedoch Probleme mit dem ' in der Enumeration.

Da ich über 50 .tex-Dateien mit verschachtelten Aufzählungen habe, würde ich es lieber auf eine automatische Art und Weise machen und nicht jeder verschachtelten Aufzählung ein Label hinzufügen müssen, wie indieser Beitrag.

Bildbeschreibung hier eingeben

MWE:

\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}

Antwort1

Die Schriftarten GFS Elpis und GFS Heraklit haben keine Glyphe für U+0374 GREEK NUMERAL SIGN und tatsächlich erhalten Sie

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;!

für jedes Element in den Aufzählungen der zweiten Ebene, wenn diese Schriftarten verwendet werden.

Sie können einen Fallback mithilfe einer Schriftart bereitstellen, die das Glyph enthält. Im folgenden Code habe ich GFS Artemisia übernommen.

\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}

Übrigens, laden Sie enumerateund nicht enumitemzusammen, da sie sich gegenseitig bekämpfen. Laden Sie nur Letzteres.

Bildbeschreibung hier eingeben

verwandte Informationen