更改自定义命令的行为

更改自定义命令的行为

我有一个要逐项列出的自定义命令:

\newcommand{\CVItem}[1]{
    \item\small{#1\vspace{-2pt}}
}

我如何自定义此命令以更改标签/项目符号类型,例如在不同情况下使用星号/破折号。是否可以将标签类型作为参数传递?

如果我在周围的 itemize 命令中有一个给定的标签类型(它又是一个像下面这样的自定义标签类型),我可以更改项目符号/标签类型吗?

\newcommand{\CVItemListStart}{\begin{itemize}[label=$\bullet$]}
    \newcommand{\CVItemListEnd}{\end{itemize}\vspace{2pt}}

答案1

你可以制作类似列表的结构\CVItemListStart...\CVItemListEnd表现得像enumitem受控label环境如下:

在此处输入图片描述

\documentclass{article}

\usepackage{enumitem}

\newcommand{\CVItem}[2][\defaultbullet]{%
  \item[#1] {\small #2\par}
}

\newcommand{\defaultbullet}{\textbullet}
\newcommand{\CVItemListStart}[1][\textbullet]{%
  \begingroup
  \renewcommand{\defaultbullet}{#1}%
  \begin{itemize}[label=#1]}
\newcommand{\CVItemListEnd}{%
  \end{itemize}
  \endgroup
}

\begin{document}

First list:
\CVItemListStart
  \CVItem{First}
  \CVItem[$\ast$]{Second}
  \CVItem{Third}
  \CVItem[--]{Final}
\CVItemListEnd

Second list:
\CVItemListStart[$\ast$]
  \CVItem{First}
  \CVItem{Second}
  \CVItem{Third}
  \CVItem{Final}
\CVItemListEnd

Third list:
\CVItemListStart
  \CVItem{First}
  \CVItem{Second}
  \CVItem{Third}
  \CVItem{Final}
\CVItemListEnd

\end{document}

答案2

我认为您不需要定义新命令。以下代码将完成这项工作。

\begin{itemize}
    \item [$\ast$] Point 1
    \item [$\bullet$] Point 2
\end{itemize}

在后面的方括号中写下要用于标签/项目符号类型的符号\item。它将完成这项工作。

相关内容