为什么我的粗体命令在我的自制环境中被忽略?

为什么我的粗体命令在我的自制环境中被忽略?

请考虑以下来源:

\documentclass[a4paper,12pt]{article}
\begin{document}

\newcounter{categorycounter}
\setcounter{categorycounter}{0}
\newenvironment{categoryname}[1][]{\stepcounter{categorycounter}\S\thecategorycounter.{\bf{ #1}}}{}

\begin{categoryname}{First category}\end{categoryname}

First category consists of blah blah blah.\newline

\begin{categoryname}{Second category} \end{categoryname}

Second category consists of bluh bluh bluh.\newline

\end{document}

我得到以下输出:

在此处输入图片描述

现在,我希望类别名称以粗体显示,如\bf上面的命令所示。为什么它被忽略了?我该怎么做才能解决这个问题?

这是我想要的输出:

在此处输入图片描述

答案1

  1. 使用\bfseries而不是\bf

  2. 您的主要问题是[]在命令定义中,它需要一个可选参数#1...但您希望将其用作#1强制参数。

查看提供您所请求的输出的更改后的代码

\documentclass[a4paper,12pt]{article}
\begin{document}

\newcounter{categorycounter}
\setcounter{categorycounter}{0}
\newenvironment{categoryname}[1]{\stepcounter{categorycounter}\S\thecategorycounter.{~{\bfseries #1}}}{}

\begin{categoryname}{First category}\end{categoryname}

First category consists of blah blah blah.

\begin{categoryname}{Second category} \end{categoryname}

Second category consists of bluh bluh bluh.

\end{document}

编辑:删除了\newline评论中提到的没有提供某些内容的内容...

您可能还想要环境内部的某些东西而不是环境外部的某些东西...在其他情况下,只需创建一个命令而不是环境。

相关内容