更改自訂命令的行為

更改自訂命令的行為

我有一個自訂命令來逐項列出:

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

如何自訂此命令來更改標籤/項目符號類型,例如在不同情況下的星號/破折號。是否可以將標籤類型作為參數傳遞?

如果我在周圍的 itemize 命令中有給定的標籤類型(這又是一個自訂標籤類型,如下所示),我可以更改項目符號/標籤類型嗎?

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

答案1

你可以讓你的列表式結構\CVItemListStart......\CVItemListEnd表現得像enumitemlabel透過以下方式控制環境:

在此輸入影像描述

\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。它會完成這項工作。

相關內容