定义一个类似 \bfseries 的命令

定义一个类似 \bfseries 的命令

我想定义一个适用于当前范围内所有文本的命令,例如\bfseries。我需要这个,因为该leadsheets包允许我将标签格式命令传递给环境,然后将其插入到标签的开头(在我的情况下是诗句前面的编号)。我想在数字周围画一个圆圈。为此,我找到了这段代码

\usepackage{tikz}
\newcommand*\circled[1]{\tikz[baseline=(char.base)]{
        \node[shape=circle,draw,inner sep=2pt] (char) {#1};}}

当我能够直接将它环绕在我想要圈出的文本周围时,效果很好。现在的问题是,如果我直接传递label-format=\circledtex,它会抱怨缺少 },如果我使用label-format=\circled{}编译器,则没问题,但显然什么也没有发生。

我怎样才能实现上面描述的效果?label-format=\bfseries效果很好,所以我需要一个自动环绕以下文本的命令。

不幸的是,我不知道如何在 LaTeX 中调用这样的命令,所以我无法搜索它。

答案1

从 v0.6 (2019/10/02) 开始leadsheets允许最后的诗句标签的格式化命令可以接受一个强制参数:

\documentclass{article}
\usepackage{tikz}
\newcommand*\circled[1]{%
  \tikz[baseline=(char.base)]{
    \node[shape=circle,draw,inner sep=2pt] (char) {#1};
  }%
}

\usepackage{leadsheets}[2019-10-02]
\setleadsheets{
  verse/numbered,
  verse/label-format = \circled
}

\begin{document}

\begin{song}{title=My Song}
\begin{verse}
  bla bla
\end{verse}
\begin{verse}
  blub blub
\end{verse}
\end{song}

\end{document}

在此处输入图片描述

相关内容