我简单修改了这个链接中的时钟代码:钟
这是我的代码:
\NewDocumentCommand{\Clock}{O{1cm}O{\large}O{cyan}O{\textbf{}}}{%
\def\radius{#1}%
\begin{tikzpicture}[line cap=rect,line width=0.055*\radius]
\filldraw [fill=#3] (0,0) circle [radius=\radius] node {O\textbf{}};
\foreach \angle [count=\xi] in {60,30,...,-270}
{
\draw[line width=1pt] (\angle:0.9*\radius) -- (\angle:\radius);
\node[font=#2] at (\angle:0.68*\radius) {};
}
\foreach \angle in {0,90,180,270}
\draw[line width=0.04*\radius] (\angle:0.82*\radius) -- (\angle:\radius);
\end{tikzpicture}%
}
我试图在这两行中将我的文本作为参数:
\NewDocumentCommand{\Clock}{O{1cm}O{\large}O{cyan}O{\textbf{}}}
\filldraw [fill=#3] (0,0) circle [radius=\radius] node {O\textbf{}};
使用 O\textbf{}
以下是我使用此代码的方法:
\quad\Clock[0.9 cm][\footnotesize][green][\textbf{my text here}
然而O
,我不想在时钟中间看到“我的文本在这里”,我该怎么做呢?
答案1
在命令的定义中,我简单地用\Clock
替换了第 4 个参数。O{\textbf{}}
O{}
正如 David Carlisle 在您的问题评论中所说,替换node {O\textbf{}};
为node {\textbf{#4}};
(因此时钟中的文本始终为粗体)。这里#4
是调用时使用的第 4 个参数\Clock
最后,我将你调用时使用的文本“my text here”改为\Clock
“my text here”,因为“my text here”太长了。
\documentclass[11pt]{article}
\usepackage{tikz}
\NewDocumentCommand{\Clock}{O{1cm}O{\large}O{cyan}O{}}{%
\def\radius{#1}%
\begin{tikzpicture}[line cap=rect,line width=0.055*\radius]
\filldraw [fill=#3] (0,0) circle [radius=\radius] node [align=center] {\textbf{#4}};
\foreach \angle [count=\xi] in {60,30,...,-270}
{
\draw[line width=1pt] (\angle:0.9*\radius) -- (\angle:\radius);
\node[font=#2] at (\angle:0.68*\radius) {};
}
\foreach \angle in {0,90,180,270}
\draw[line width=0.04*\radius] (\angle:0.82*\radius) -- (\angle:\radius);
\end{tikzpicture}%
}
\begin{document}
\Clock\quad\Clock[0.9cm][\footnotesize][green][my text]
\end{document}
此代码适用于最新的 LaTeX(2022 版本之前,请\usepackage{xparse}
在前言中添加\NewDocumentCommand
)。