LaTeX 枚举-带有非粗体文本的粗体项目

LaTeX 枚举-带有非粗体文本的粗体项目

我正在尝试自定义环境enumerate,其中 为\item粗体但文本不为粗体。我尝试的是(根据其中一个 google-results 的建议):

\let\origitem\item
\renewcommand{\item}{\normalfont\origitem}
\newcommand{\bolditem}{\normalfont\bfseries\origitem}

然后使用它

\begin{enumerate}
    \bolditem[0] First item (whole line is bold)
    \bolditem[1] Second item (also bold)
    \item[2] Third item (not bold)
\end{enumerate}

但这会使整行变为粗体。我只希望编号部分变为粗体。

我怎样才能实现这个目标?

答案1

你可以使用这个enumitem包。如果你不想使用额外的包,你可以简单地重新定义\labelenumi

\documentclass{article}
\usepackage{enumitem}

\begin{document}

\begin{enumerate}
    \renewcommand\labelenumi{\bfseries\theenumi}
    \item First item.
    \item Second item.
    \item Third item.
\end{enumerate}

% requires the enumitem package
\begin{enumerate}[label=\bfseries\arabic*]
    \item First item.
    \item Second item.
    \item Third item.
\end{enumerate}

\end{document}

编辑:在更具编程性的层面上,您可以定义一个新的列表式环境,其行为类似于标准enumerate,但具有所需的标签格式。这可以使用类似这样的方法完成

\documentclass{article}

\newenvironment{boenumerate}
  {\begin{enumerate}\renewcommand\labelenumi{\textbf\theenumi}}
  {\end{enumerate}}

\begin{document}

\begin{boenumerate}
    \item First item.
    \item Second item.
    \item Third item.
\end{boenumerate}

\end{document}

enumerate或模仿中给出的环境定义source2e):

\documentclass{article}

\makeatletter
\def\boenumerate{%
\renewcommand\labelenumi{\textbf\theenumi}
  \ifnum \@enumdepth >\thr@@\@toodeep\else
    \advance\@enumdepth\@ne
    \edef\@enumctr{enum\romannumeral\the\@enumdepth}%
      \expandafter
      \list
        \csname label\@enumctr\endcsname
        {\usecounter\@enumctr\def\makelabel##1{\hss\llap{##1}}}%
  \fi}
\let\endboenumerate =\endlist
\makeatother

\begin{document}

\begin{boenumerate}
    \item First item.
    \item Second item.
    \item Third item.
\end{boenumerate}

\end{document}

类似的东西,但是现在有了包的帮助enumitem

\documentclass{article}
\usepackage{enumitem}

\newlist{boenumerate}{enumerate}{4}
\setlist[boenumerate,1]{label=\bfseries\arabic*}

\begin{document}

\begin{boenumerate}
    \item First item.
    \item Second item.
    \item Third item.
\end{boenumerate}

\end{document}

答案2

您应该使用类似 的包。该包允许通过键值语法enumitem来修改。item

\documentclass{article}
\usepackage{enumitem}
\begin{document}
\begin{enumerate}[label=\textbf{\arabic*},start=0]
   \item First item
   \item Second item
   \item Third item
\end{enumerate}
\end{document}

在此处输入图片描述

答案3

重新定义 不是一个好主意\item,因为它在 LaTeX 的许多部分都有使用。这里有一个\benumerate环境,您可以在其中使用\bolditem命令将其替换为正常命令。

\documentclass[a4paper]{article}

\let\ifbolditem\iffalse
\def\bolditemtrue{\global\let\ifbolditem\iftrue}
\def\bolditemfalse{\global\let\ifbolditem\iffalse}

\newenvironment{benumerate}
  {\def\bolditem{\bolditemtrue\item}%
   \enumerate
   \renewcommand\makelabel[1]{\hss\llap{\ifbolditem\bfseries\fi##1\bolditemfalse}}}
  {\endenumerate}


\begin{document}
\begin{benumerate}
\item Normal
\bolditem Bold
\item Normal again
\bolditem[9] Bold
\end{benumerate}
\end{document}

答案4

通过使用enumerate包您也可以使用此命令。

\documentclass{article}
\usepackage{enumerate}
\begin{document}
    \begin{enumerate}[\bfseries a.]
        \item one
        \item two
        \item three
    \end{enumerate}
\end{document}

相关内容