色付きの円の中に数字が入ったリストを作成しようとしていますenumerate
。円については、パッケージtikz
とcolor
パッケージを使用しています。プリアンブルで円を定義し、リスト項目を再定義します。
\documentclass{report}
\usepackage{color}
\usepackage{tikz}
% Defining the circle:
\newcommand*\circled[1]{\tikz[baseline=(char.base)]{
\node[shape=circle,draw,inner sep=2pt,fill=lightgray,lightgray] (char) {\color{gray}\textbf#1};}}
% Redefining the list items
\renewcommand{\labelenumi}{\protect\circled{enumi}}
\begin{document}
\begin{enumerate}
\item foo
\item bar
\end{enumerate}
\end{document}
問題は、リスト番号を印刷する代わりに、単に を印刷することですenumi
。私はWikibooksに従っています。列挙リストのカスタマイズ追加のパッケージを追加せずに動作させる方法があるはずだと思うのですが、方法がわかりません。
通らない場合はenumi
、リストの番号にアクセスするにはどうすればいいですか?
乾杯!
答え1
あなたがすべきないと言います\textbf#1
が、\bfseries#1
または です。また、ではなく で\textbf{#1}
ある必要があります。コードでは、 を として渡しており、カウンターの値を印刷する命令ではありません。\arabic{enumi}
enumi
enumi
\circled
#1
ただし、以下を使用することをお勧めしますenumitem
:
\documentclass{report}
\usepackage{color}
\usepackage{tikz}
\usepackage{enumitem}
% Defining the circle:
\DeclareRobustCommand*\circled[1]{%
\tikz[
baseline=(char.base)
]{%
\node[
shape=circle,
draw,
inner sep=2pt,
fill=lightgray,
lightgray
] (char) {\color{gray}\bfseries#1};%
}%
}
\begin{document}
\begin{enumerate}[label=\circled{\arabic*},ref=\arabic*]
\item foo
\item bar
\end{enumerate}
\end{document}
すべての第一レベルのenumerate
環境をカスタマイズして使用でき\circled
ます
\setlist[enumerate,1]{label=\circled{\arabic*},ref=\arabic*}
プリアンブルに と記述すれば、 にオプションの引数は必要ありません\begin{enumerate}
。
追加のパッケージが必要ない場合(理由はわかりませんが)、再定義の方法は\labelenumi
機能します。
\renewcommand{\labelenumi}{\protect\circled{\arabic{enumi}}}
しかし、\circled
しかし、あなた自身しなければならない\bfseries#1
またはのいずれかを実行してください\textbf{#1}
。 は\textbf#1
誤りであり、解析不能なエラーが発生します。
なぜロードする必要があるのでしょうかenumitem
?簡単です。
\item\label{foo} text
次に を試すと\ref{foo}
、テキスト内に丸で囲まれた数字が表示されますが、これは正しくないようです。 を使用する上記のコードではenumitem
、\ref{foo}
は単に飾りのない数字を出力します。