我正在使用circledsteps
包来排版数字,如以下 MWE 所示:
\documentclass{article}
\usepackage{graphicx}
\usepackage{tikz}
\usepackage{circledsteps}
\newcommand{\mycircle}{\pgfkeys{/csteps/fill color=yellow}\Circled{123}}
\begin{document}
See Case \mycircle in Figure \ref{myfigure}.
\begin{figure}[h]
\begin{center}
\begin{tikzpicture}
\draw (0,0) -- (1,1) -- (1,0) -- cycle;
\end{tikzpicture}
\end{center}
\caption{Case 123}
\label{myfigure}
\end{figure}
\end{document}
这使
然而,当用以下文字代替标题时
\caption{Case \mycircle}
编译没有完成。发生了什么?
答案1
\pgfkeys
在移动参数中使用该命令时必须受到保护;因此您应该执行以下操作:
\documentclass{article}
\usepackage{graphicx}
\usepackage{tikz}
\usepackage{circledsteps}
\newcommand{\mycircle}{\pgfkeys{/csteps/fill color=yellow}\Circled{123}}
\begin{document}
See Case \mycircle{} in Figure \ref{myfigure}.
\begin{figure}[h]
\begin{center}
\begin{tikzpicture}
\draw (0,0) -- (1,1) -- (1,0) -- cycle;
\end{tikzpicture}
\end{center}
\caption{Case \protect\mycircle}
\label{myfigure}
\end{figure}
\end{document}
真正的问题是,当将参数“移动”到图形列表的列表中时,它会失败(如果您这样做,您的版本可以正常工作\caption[case 123]{Case \mycircle}
)
...但不管怎么说,这个想法是,你只需设置一次样式,所以我要做的是
\documentclass{article}
\usepackage{graphicx}
\usepackage{tikz}
\usepackage{circledsteps}
\pgfkeys{/csteps/fill color=yellow}
\newcommand{\mycircle}{\Circled{123}}
\begin{document}
See Case \mycircle{} in Figure \ref{myfigure}.
\begin{figure}[h]
\begin{center}
\begin{tikzpicture}
\draw (0,0) -- (1,1) -- (1,0) -- cycle;
\end{tikzpicture}
\end{center}
\caption{Case \mycircle}
\label{myfigure}
\end{figure}
\end{document}
或使用
\newcommand{\mycircle}{\Circled[fill color=green]{123}}
例如。
答案2
\Circled
在标题中使用我没有问题。我还center
用指令替换了环境\centering
,以删除不需要的垂直间距。
\documentclass{article}
\usepackage{graphicx}
\usepackage{tikz}
\usepackage{circledsteps}
\newcommand{\mycircle}{\pgfkeys{/csteps/fill color=yellow}\Circled{123}}
\begin{document}
See Case \mycircle in Figure \ref{myfigure}.
\begin{figure}[h]
\centering}
\begin{tikzpicture}
\draw (0,0) -- (1,1) -- (1,0) -- cycle;
\end{tikzpicture}
\caption{Case \Circled{123}}
\label{myfigure}
\end{figure}
\end{document}