
In meiner Lehrveranstaltung möchte ich das Niveau der einzelnen Unterthemen anhand der in Kreisen eingezeichneten Niveaustufen konkretisieren.
Wenn ich den Befehl verwende \section{title} \trf
, erscheinen die eingekreisten Buchstaben unter dem Titel.
Wenn ich sie in den \section{XX}-Befehl einfüge wie \section{title \trf}
, wird das Dokument nicht kompiliert
\documentclass{article}
\usepackage{tikz}
\newcommand{\atrf}{\tikz[baseline=(letter.base)]\node[draw,circle,inner sep=1pt, shade,shading=ball,circle,ball color=black!10!red] (letter) {ATRF};}
\newcommand{\trf}{\tikz[baseline=(letter.base)]\node[draw,circle,inner sep=1pt, shade,shading=ball,circle,ball color=black!10!blue] (letter) {TRF};}
\newcommand{\asi}{\tikz[baseline=(letter.base)]\node[draw,circle,inner sep=1pt, shade,shading=ball,circle,ball color=black!10!orange] (letter) {ASI};}
\begin{document}
\section{Chapitre 1} \asi \trf
\section{Chapitre 2}
\subsection{Sous section 2.1}
\subsection{Sous section 2.2}
\end{document}
So lassen Sie Ebenen in der Titelzeile erscheinen (und damit auch im Inhaltsverzeichnis)
Antwort1
Beim Verwenden von Makros in Abschnittstiteln müssen Sie vorsichtig sein, da diese Titel an mehreren anderen Stellen im Dokument erscheinen, z. B. in PDF-Lesezeichen oder in den Kopf- oder Fußzeilen der Seiten.
Die Verwendung von Makros ist dennoch möglich. Sie müssen dazu jedoch eine alternative Version des Titels ohne Makros im optionalen Argument des \section
Makros angeben (dasselbe gilt für ähnliche Makros wie \chapter
usw. \subsection
):
\documentclass{article}
\usepackage{tikz}
\newcommand{\atrf}{\tikz[baseline=(letter.base)]\node[draw,circle,inner sep=1pt, shade,shading=ball,circle,ball color=black!10!red] (letter) {ATRF};}
\newcommand{\trf}{\tikz[baseline=(letter.base)]\node[draw,circle,inner sep=1pt, shade,shading=ball,circle,ball color=black!10!blue] (letter) {TRF};}
\newcommand{\asi}{\tikz[baseline=(letter.base)]\node[draw,circle,inner sep=1pt, shade,shading=ball,circle,ball color=black!10!orange] (letter) {ASI};}
\begin{document}
\section[Chapitre 1 (ASI) (TRF)]{Chapitre 1 \asi \trf}
\section{Chapitre 2}
\subsection{Sous section 2.1}
\subsection{Sous section 2.2}
\end{document}
Antwort2
Ich würde Code-Duplikation vermeiden: Ihre Befehle können als Befehl mit zwei Argumenten definiert werden, der die benötigten Ti liefertkZ-Anweisungen und können beim Setzen des Inhaltsverzeichnisses geändert werden (es sei denn, Sie möchten die Bälle auch dort haben).
Als nächstes definieren Sie solche Befehle als robust, damit sie eine bewegte Diskussion überstehen.
\documentclass{article}
\usepackage{tikz}
\newcommand{\shadedball}[2]{% #1 = color, #2 = acronym
\ifintoc
(\textcolor{black!10!#1}{#2})%
\else
\begin{tikzpicture}[baseline=(letter.base)]
\node[
draw,
circle,
inner sep=1pt,
shade,
shading=ball,
circle,
ball color=black!10!#1,
minimum width=3em,% <--- to get balls of the same width
] (letter) {#2};
\end{tikzpicture}%
\fi
}
\newif\ifintoc
\DeclareRobustCommand{\atrf}{\shadedball{red}{ARTF}}
\DeclareRobustCommand{\trf}{\shadedball{blue}{TRF}}
\DeclareRobustCommand{\asi}{\shadedball{orange}{ASI}}
\begin{document}
\intoctrue
\tableofcontents
\intocfalse
\section{Chapitre 1 \asi\ \trf\ \atrf}
\end{document}
Ohne das bedingte Geschäft
\documentclass{article}
\usepackage{tikz}
\newcommand{\shadedball}[2]{% #1 = color, #2 = acronym
\begin{tikzpicture}[baseline=(letter.base)]
\node[
draw,
circle,
inner sep=1pt,
shade,
shading=ball,
circle,
ball color=black!10!#1,
minimum width=3em,% <--- to get balls of the same width
] (letter) {#2};
\end{tikzpicture}%
}
\DeclareRobustCommand{\atrf}{\shadedball{red}{ARTF}}
\DeclareRobustCommand{\trf}{\shadedball{blue}{TRF}}
\DeclareRobustCommand{\asi}{\shadedball{orange}{ASI}}
\begin{document}
\tableofcontents
\section{Chapitre 1 \asi\ \trf\ \atrf}
\end{document}