So fügen Sie Grafiken in den Abschnittsnamen ein

So fügen Sie Grafiken in den Abschnittsnamen ein

pdfIch versuche, ein Symbol (eine Datei) direkt neben dem Abschnittsnamen einzufügen .

Bildbeschreibung hier eingeben

Ich möchte, dass das kleine Schildsymbol dort ist, wo es <Icon>ist.

Der Code zum Generieren dieses Bildes lautet:

\subsection{Sentinel $<$Icon$>$}\icon{static/sentinel.pdf}

\iconWenn ich versuche, das Folgende hinzuzufügen \subsection:

\subsection{Sentinel \icon{static/sentinel.pdf}}

Ich erhalte eine Fehlermeldung.

! Missing \endcsname inserted.
<to be read again>
               \csname\endcsname 
l.42 ...ction{Sentinel \icon{static/sentinel.pdf}}                                                  
? 
! Emergency stop.
<to be read again> 
                   \csname\endcsname 
l.42 ...ction{Sentinel \icon{static/sentinel.pdf}}
!  ==> Fatal error occurred, no output PDF file produced!
Transcript written on generated//manual.log.
make: *** [all] Error 1

Wenn möglich wäre es schön, dass das Icon nicht im Inhaltsverzeichnis auftaucht und die Verlinkung aus dem Inhaltsverzeichnis weiterhin funktioniert.

\iconist definiert durch

\newcommand{\icon}[1]{\begingroup
\setbox0=\hbox{\includegraphics[height=12pt,keepaspectratio]{#1}}%
\parbox{\wd0}{\box0}\endgroup}

Antwort1

Sie benötigen einige \protectIonen. Übrigens \newcommandkann so etwas Kompliziertes vereinfacht werden.

\documentclass{article}
\usepackage{graphicx}
\newcommand{\icon}[1]{\includegraphics[height=12pt]{#1}}
\begin{document}
  \section{Some section here}
  \subsection{Sentinel \protect\icon{example-image-a}}
\end{document}

Wenn Sie dies in vielen Fällen nicht möchten \protect, haben Sie diese Möglichkeiten. Machen Sie es zunächst robustmit etoolbox.

\documentclass{article}
\usepackage{graphicx}
\usepackage{etoolbox}
\newcommand{\icon}[1]{\includegraphics[height=12pt]{#1}}
\robustify{\icon}
\begin{document}
  \section{Some section here}
  \subsection{Sentinel \icon{example-image-a}}
\end{document}

Oder verwenden Sie \newrobustcmd(von etoolboxwieder) wie

\usepackage{etoolbox}
\newrobustcmd{\icon}[1]{\includegraphics[height=12pt]{#1}}

Oder verwenden Sie ein optionales Argument wie

\subsection[<opt argument>]{Sentinel \icon{example-image-a}}

usw....

Wenn Sie verwenden, hyperrefmüssen Sie möglicherweise verwenden, \texorpdfstring{\icon{example-image-a}}{}um die Warnung und die Folgen loszuwerden.

\documentclass{article}
\usepackage{graphicx}
\usepackage{etoolbox}
\usepackage{hyperref}
\newrobustcmd{\icon}[1]{\includegraphics[height=12pt]{#1}}
\begin{document}
  \section{Some section here}
  \subsection{Sentinel \texorpdfstring{\icon{example-image-a}}{}}
\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen