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}
, not : 로 enumi
전달하는 코드에서는 카운터 값을 인쇄하는 명령이 아니라 as 이어야 합니다 .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}
되지 않은 숫자만 인쇄됩니다.