我想定义一个适用于当前范围内所有文本的命令,例如\bfseries
。我需要这个,因为该leadsheets
包允许我将标签格式命令传递给环境,然后将其插入到标签的开头(在我的情况下是诗句前面的编号)。我想在数字周围画一个圆圈。为此,我找到了这段代码
\usepackage{tikz}
\newcommand*\circled[1]{\tikz[baseline=(char.base)]{
\node[shape=circle,draw,inner sep=2pt] (char) {#1};}}
当我能够直接将它环绕在我想要圈出的文本周围时,效果很好。现在的问题是,如果我直接传递label-format=\circled
tex,它会抱怨缺少 },如果我使用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}