Verwenden von \reflectbox für ein Tikz-Symbol in addtocontents

Verwenden von \reflectbox für ein Tikz-Symbol in addtocontents

Ich habe ein Buch mit der neuesten MacTex-Version und dem Satz mit Lualatex erstellt. ( \documentclass[a4paper,11pt,twoside]{book}) Ich habe \reflectboxdas gesamte Dokument getestet und es funktioniert immer gut. Wenn ich jedoch den Befehl verwenden möchte, um ein Symbol umzudrehen, das ich in das Inhaltsverzeichnis einfüge, über

\addtocontents{toc}{~\noindent\hfil\reflectbox{\fontsize{20pt}{20pt}{\fryingpan}} \hspace{2pt} {\textbf{\large{Recipes}}} \hspace{2pt} {\fontsize{20pt}{20pt}{\fryingpan}}\hfil\par}

Ich erhalte Tex:661:Undefinierte Steuersequenz.

Ich habe auch versucht, weitere Klammern einzufügen, z. B.

\addtocontents{toc}{~\noindent\hfil{\reflectbox{\fontsize{20pt}{20pt}{\fryingpan}}} \hspace{2pt} {\textbf{\large{Recipes}}} \hspace{2pt} {\fontsize{20pt}{20pt}{\fryingpan}}\hfil\par}

aber am Ende kommt es zu dem gleichen Fehler.

Ohne \reflectboxfunktioniert der Code einwandfrei:

\addtocontents{toc}{~\noindent\hfil{\fontsize{20pt}{20pt}{\fryingpan}} \hspace{2pt} {\textbf{\large{Recipes}}} \hspace{2pt} {\fontsize{20pt}{20pt}{\fryingpan}}\hfil\par}

Irgendwelche Ideen? James

Dies ist meine Präambel:

\documentclass[a4paper,11pt,twoside]{book}
\renewcommand{\baselinestretch}{1}

\usepackage[no-math]{luatexja-fontspec}
\setmainjfont{Hiragino Mincho Pro}
\setsansjfont{Hiragino Sans}

\setmainfont[Ligatures=TeX]{CMU Serif}
\setsansfont[Ligatures=TeX]{Linux Biolinum O}

\ltjsetparameter{jacharrange={-1, -2, +3, -4, -5, +6, +7, +8}}
\usepackage{polyglossia}
\setdefaultlanguage{english}
\setotherlanguage{russian}
\setotherlanguage{japanese}

\setlength{\columnsep}{3em}
\setlength{\columnseprule}{0.5pt}
%\setlength{\footnotesep}{0.3cm}
\setlength{\skip\footins}{18pt}

\usepackage [top=1.8cm,
        bottom=1.8cm,
        left=3cm,
        right=2cm,
        headheight=17pt,
        includehead,includefoot,
        %heightrounded,
        %showframe
        ]{geometry}
\usepackage{multicol}
\usepackage{parskip}
    \setlength{\parindent}{0pt}
    \setlength{\parskip}{\baselineskip}
\usepackage{verbatim}
\usepackage{graphicx}
    \setlength{\intextsep}{18pt}
    \setlength{\textfloatsep}{\baselineskip}
    \setlength{\floatsep}{\baselineskip}
\usepackage[export]{adjustbox}
\usepackage{rotating}
\usepackage{fancyhdr}
\usepackage{float}
\usepackage{wrapfig}
%\usepackage{subcaption}
\usepackage{caption}
\captionsetup[figure]{aboveskip=7pt, belowskip=-            \baselineskip,font=footnotesize,labelfont=bf}
\usepackage{enumitem}
\setlist[itemize]{parsep=4pt}
\setlist[enumerate]{parsep=5pt}
\usepackage{gensymb}
%\usepackage{wrapfig}
\usepackage{natbib}
\usepackage{array,tabu}
\usepackage{amssymb, pifont, marvosym, tikzsymbols, fdsymbol, wasysym, fontawesome, ifsym, academicons}
\usepackage{setspace}
\usepackage{xcolor}
    \definecolor{orcid}{HTML}{a7cc46}
    \definecolor{RG}{HTML}{21cbbb}
    \definecolor{linkedin}{HTML}{1078b3}
    \definecolor{twitter}{HTML}{2aa3ef}
    \definecolor{face}{HTML}{4469b0}
\usepackage{skak}
\usepackage{chngcntr}
\usepackage{textcomp}
\usepackage{titlesec}
\usepackage{longtable}
%\usepackage{amsmath}
%\usepackage{svg}
\usepackage{nicefrac}
\usepackage{balance}
\usepackage{mdwlist}
\usepackage{imakeidx}
%\usepackage[font=normalsize]{idxlayout}
\usepackage[final]{pdfpages}
\makeindex[columns=2, columnseprule, title=Index]
\PassOptionsToPackage{hyphens}{url}\usepackage[breaklinks,hidelinks,linktocpage=true]{hyperref}
\hypersetup{%
            colorlinks = true,
            linkcolor = blue,
            urlcolor = blue
            }

\setlistdepth{4}
\newlist{myEnumerate}{enumerate}{4}
\setlist[enumerate,1]{label=\textit{\arabic*.}}
\setlist[enumerate,2]{label=\textit{\alph*.}}
\setlist[enumerate,3]{label=\textit{\roman*.}}
\setlist[enumerate,4]{label=$$}

\titleformat{\chapter}[block]{\color{black}\Large\bfseries\filcenter}{}{0pt}{}
\titlespacing*{\chapter}{0pt}{0pt}{0pt}
\titleformat{\section}[block]{\color{black}\Large\bfseries\filcenter}{}{1em}{}
\setcounter{secnumdepth}{0}

\setcounter{tocdepth}{3} %definition of the no. of levels in the ToC list

\renewcommand{\thefootnote}{\scriptsize{\roman{footnote}}} %fontsize footnote
\addto\captionsenglish{\renewcommand{\contentsname}{Table of Contents \label{TaoCo}}} %Title of ToC

%definition of \quote margins 
\renewenvironment{quote}{%
   \list{}{%
     \leftmargin20pt   % this is the adjusting screw
     \rightmargin\leftmargin
   }
   \item\relax
}
{\endlist}
%--------------------------PAGESTYLE Preface-----------------------------------------
\fancypagestyle{preface}{
    \fancyhf{}
    \renewcommand{\headrulewidth}{0pt}
    \renewcommand{\footrulewidth}{0pt}
    \fancyhead[L]{\small Preface}
    \fancyhead[R]{\small Name}
    \fancyfoot[C]{\small Name}
    %\fancyfoot[LE,RO]{\small \thepage}
}

Antwort1

Wenn Sie diese reflektierte Bratpfanne häufig verwenden möchten, empfehle ich Ihnen, ein Makro dafür zu schreiben:

\newcommand\napgniyrf{\protect\reflectbox{\fontsize{20pt}{20pt}{\fryingpan}}}

Beachten Sie die \protectoben in den Kommentaren vorgeschlagenen Änderungen. Mit dieser Änderung funktioniert Ihr MWE (oder zumindest das, was Ihr MWE hätte sein sollen! :)) einwandfrei und erzeugt:

Bildbeschreibung hier eingeben

Hier ist der vollständige Code:

\documentclass{article}
\usepackage{tikzsymbols}
\usepackage{graphicx}

\newcommand\napgniyrf{\protect\reflectbox{\fontsize{20pt}{20pt}{\fryingpan}}}
\begin{document}

\addtocontents{toc}{~\noindent\hfil{\fontsize{20pt}{20pt}{\fryingpan}}\hspace{2pt}{\textbf{\large{Recipes}}}\hspace{2pt}{\fontsize{20pt}{20pt}{\fryingpan}}\hfil\par}

\addtocontents{toc}{~\noindent\hfil\napgniyrf\hspace{2pt}{\textbf{\large{Recipes}}}\hspace{2pt}{\napgniyrf}\hfil\par}

\tableofcontents
\end{document}

Möglicherweise möchten Sie auch definieren

\newcommand\Fryingpan{\fontsize{20pt}{20pt}{\fryingpan}}

sodass Sie nicht \fontsizejedes Mal verwenden müssen, wenn Sie ein verwenden möchten \fryingpan.

Antwort2

Das Argument to \addtocontentsist verschiebbar, daher sollten fragile Befehle wie \reflectboxgeschützt werden. Es ist einfacher, stattdessen einen robusten Befehl zu definieren.

Ich würde \fontsize{20pt}{20pt}dies vermeiden: \scaleboxist besser.

\documentclass{article}
\usepackage{tikzsymbols}
\usepackage{graphicx}

\DeclareRobustCommand\mnapgniyrf{\scalebox{-2}[2]{\fryingpan}}
\DeclareRobustCommand\mfryingpan{\scalebox{2}{\fryingpan}}

\begin{document}

\addtocontents{toc}{%
  \noindent\hfil\mfryingpan
  \hspace{2pt}\textbf{\large{Recipes}}\hspace{2pt}%
  \mnapgniyrf\par
}

\tableofcontents
\end{document}

Bildbeschreibung hier eingeben

Eine andere Strategie, wenn Sie die Symbole in unterschiedlichen Größen verwenden müssen, ist

\DeclareRobustCommand\mnapgniyrf[1]{\scalebox{-#1}[#1]{\fryingpan}}
\DeclareRobustCommand\mfryingpan[1]{\scalebox{#1}{\fryingpan}}

und die Forderungen nach doppelter Größe wären

\mfryingpan{2}
\mnapgniyrf{2}

verwandte Informationen