我可以在标题中内嵌图画吗

我可以在标题中内嵌图画吗

我试图在图片的标题中添加一个简单的绘图。绘图只是一条线,我使用它在标题中添加某种图例。

我尝试过使用picture环境和内联\tikz命令来实现这一点,但都不起作用。似乎\caption不能容忍这种内容?我还愚蠢地尝试通过\protect绘制来修复它,但这似乎没有帮助。

我还没有放弃的原因是我的尝试实际上似乎在标题内产生了所需的绘图,但它们引发了如下错误:

ERROR: Argument of \@caption has an extra }.

那么有没有办法解决我在这里尝试的问题?

更新:

@pluton 的建议似乎有效。此外,我希望它picture也能与 LaTeX 配合使用,因为我想避免在当前项目中加载 TiKZ。具体来说,我尝试过:

\documentclass{article}

\begin{document}
\begin{figure}
  \centering
  \caption{Test \protect{\setlength{\unitlength}{1mm}
    \begin{picture}(5,3)
      \put(0,1){\line(5,0){5}}
    \end{picture}}}
 \label{fig:test}
\end{figure}

\end{document}

这给了我上述错误。

然而,(错误的)输出似乎很好:

输出显示结果标题。

答案1

\protect适用于单个 token,切勿将其应用于{

\documentclass{article}
\newcommand\zzz{{\setlength{\unitlength}{1mm}%
    \begin{picture}(5,3)
      \put(0,1){\line(5,0){5}}
    \end{picture}}}

\begin{document}
\begin{figure}
  \centering
  \caption{Test \protect\zzz}
 \label{fig:test}
\end{figure}

\end{document}

答案2

根据David Carlisle的回答,一个可能的解决方案Tikz是:

\documentclass[10pt,tikz]{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{tikz}
\newcommand\strokeA{[\tikz[baseline=(current bounding box.base)]{\draw[red,line width=2pt] (0,3pt) -- (1.8em,3pt);}]}
\newcommand\strokeB{[\tikz[baseline=(current bounding box.base)]{\draw[blue,line width=2pt] (0,3pt) -- (1.8em,3pt);}]}
\begin{document}
\begin{figure}[ht]
\caption{Title: legend A \protect\strokeA{} and legend B \protect\strokeB}
\end{figure}
\end{document}

在此处输入图片描述

相关内容