パッケージを使用して、環境内の標準列挙 (アラビア数字)enumeration
をギリシャ語の小文字アルファベットに変更したいと思いますenumitem
。
私はXeLateX
エンジンを使って文書をコンパイルしています。問題は、
\documentclass{article}
\usepackage{fontspec,xgreek,enumitem}
\defaultfontfeatures{Mapping=tex-text}
\setromanfont[Mapping=tex-text]{GFS Artemisia}
\usepackage{polyglossia}
\setdefaultlanguage{english}
\setotherlanguage[variant=modern]{greek}
\begin{document}
\begin{enumerate}[label=\let\textdexiakeraia\relax(\alph*)]
\item bla bla
\item bla bla
\end{enumerate}
\end{document}
次のエラーが表示されます (ログ ファイルから):
! Undefined control sequence.
\labelenumi ->\let \textdexiakeraia
\relax (\alph *)
l.120 ...label=\let\textdexiakeraia\relax(\alph*)]
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.
LaTeX Info: Redefining \anw@print on input line 121.
LaTeX Font Info: Font shape `EU1/GFSArtemisia(0)/m/sl' in size <10.95> not a
vailable
(Font) Font shape `EU1/GFSArtemisia(0)/m/it' tried instead on inpu
t line 122.
ただし、オプションを単純に使用した場合、エラーは発生しませんlabel=(\alph*)
。
答え1
パッケージxgreek
ではギリシャ数字がかなり歪んだ形で定義されているため、表現を変更するのが困難です。
より良く動作するコードはこちらそして数字記号を省略することでローカルで表現を変更できるようにします。
\documentclass{article}
\usepackage{fontspec,xgreek,enumitem}
\setmainfont{GFS Artemisia}
\usepackage{polyglossia}
\setdefaultlanguage{english}
\setotherlanguage[variant=modern]{greek}
\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 bla bla bla
\item bla bla
\end{enumerate}
\end{document}