在目录中使用 Tikz 制作的图标

在目录中使用 Tikz 制作的图标

在此处输入图片描述

这张图片粗略地展示了我想在书中的目录中实现的功能。我希望只有其中一章中的部分使用独特的图标,而不是部分编号。

目前,我正在使用收到的建议这个问题。但是,.png 图像很难处理,而且总是模糊不清。我想尝试使用 TikZ 来制作这些图像,这样它们在任何尺寸下都能保持清晰。

为了节省时间,我只提供了第一部分的示例。但是,我希望为同一章中的每个部分使用一个唯一的图标。这些图标非常简单:只是一个带有字母的圆圈。我想使用蒂克兹这样就可以避免将这些图标制作成图像。

我不知道该怎么做。任何帮助我都感激不尽。谢谢。

答案1

一般来说,使用该包tikzscale会改变\includegraphics命令,使其能够读取和排版tikz-graphics。因此,你可以这样做

  • 使用 tikz 创建图像
  • 将每幅图像保存在单独的文件中
  • 使用链接答案的代码并加载tikzscale
  • \includegraphics[height=10pt]{mytikzimage}在适当的地方使用。

这种方法还有一个额外的好处,那就是tikzscale可以自动将tikz图像缩放到绝对大小,我认为这对这个想法至关重要?不过,您可能需要查看 的tikzexternalize,因为tikzscale要对每个图像进行几次排版才能实现这种缩放。否则,在目录中使用多个图标可能会大大减慢文档的编译速度。

请参阅以下我借用的代码这里,您已经链接了:

\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

相关内容