TOC で Tikz 製のアイコンを使用する

TOC で Tikz 製のアイコンを使用する

ここに画像の説明を入力してください

この画像は、私が本の目次でやりたいことの概略を示しています。章の 1 つだけに含まれるセクションでは、セクション番号ではなく固有のアイコンを使用したいと考えています。

現在、私は受け取った提案を活用していますこの質問ただし、.png 画像は扱いにくく、常にぼやけてしまいます。TikZ を使用して、どのサイズでも鮮明な画像を作成したいと思います。

時間の都合上、最初のセクションの例のみを示しました。ただし、1つの章内の各セクションに固有のアイコンを使用したいと思います。これらのアイコンは非常に基本的なもので、円の中に文字が入ったものです。ティックZこれにより、これらのアイコンを画像として作成する必要がなくなります。

どうすればいいのかわかりません。どんな助けでもいただければ幸いです。ありがとうございます。

答え1

一般的に、パッケージを使用すると、コマンドtikzscaleが変更され、-graphics\includegraphicsの読み取りとタイプセットが可能になりますtikz。そのため、次のようにすることができます。

  • tikzで画像を作成する
  • 各画像を個別のファイルに保存する
  • リンクされた回答のコードを使用してtikzscaleパッケージをロードします
  • \includegraphics[height=10pt]{mytikzimage}適切な場所で使用してください。

このアプローチには、画像を絶対サイズにtikzscale自動的に拡大縮小するという追加の利点があり、これはこのアイデアにとって非常に重要だと思います。ただし、この拡大縮小を実現するために各画像を数回タイプセットするため、のライブラリを調べることをお勧めします。そうしないと、ToC で複数のアイコンを使用すると、ドキュメントのコンパイルが大幅に遅くなる可能性があります。tikztikzexternalizetikzscale

私が借りた次のコードを見てくださいここすでにリンクされています:

\documentclass{book}
\usepackage{titletoc}
\usepackage{graphicx}
\usepackage{tikz}      % to draw the symbols
\usepackage{tikzscale} % to include tikz graphics as image files and scale them

\makeatletter
\newcommand\stdsectioninToC{
\titlecontents{section}
  [3.8em]
  {}
  {\contentslabel{2.3em}}
  {\hspace*{-2.3em}}
  {\titlerule*[1em]{.}\contentspage}
}
\newcommand\iconsectioninToC{
\titlecontents{section}
  [3.8em]
  {}
  {\contentslabel{2.3em}%
    \smash{\includegraphics[height=10pt]{image}}\hspace{0.5em}% change here 
  }
  {\hspace*{-2.3em}}
  {\titlerule*[1em]{.}\contentspage}
}
\AtBeginDocument{\stdsectioninToC}
\makeatother

\begin{document}

\tableofcontents

\chapter{A test chapter}
\section{First test section}
\section{Second test section}
\section{Third test section}
\section{Fourth test section}

\iconsectioninToC
\chapter{A test chapter}
\section{First test section}
\section{Second test section}
\section{Third test section}
\section{Fourth test section}

\stdsectioninToC
\chapter{A test chapter}
\section{First test section}
\section{Second test section}
\section{Third test section}
\section{Fourth test section}

\end{document}

image.tikzここでは、次の内容の追加ファイルを使用しました。

% image.tikz
\begin{tikzpicture}
    \draw [fill=red!30] (-1,0) -- (0,1) -- (1,0) -- (0,-1) -- cycle;
\end{tikzpicture}

下のスクリーンショットが示すように、これはうまく機能します。

ここに画像の説明を入力してください

完全を期すために: セクションごとに個別の画像が必要な場合は、内部のコードを変更する必要があります\iconsectioninToC(これは私の頭では理解できないので、リンクされた回答からコピーしたものです)。コメント部分を次のように変更します。

\stepcounter{mysecimage}
\smash{\includegraphics[height=10pt]{image-\the\value{mysecimage}}}\hspace{0.5em}

画像に名前を付けるimage-1.tikzなどimage-2.tikzします。

関連情報