Изменить поведение пользовательской команды

Изменить поведение пользовательской команды

У меня есть специальная команда для детализации:

\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. Это сработает.

Связанный контент