Это изображение дает грубое приближение того, что я хотел бы сделать в оглавлении моей книги. Я бы хотел, чтобы разделы только в одной из моих глав использовали уникальный значок, а не номер раздела.
В настоящее время я использую предложения, которые я получил вэтот вопрос. Однако с изображениями .png трудно работать, и они всегда получаются нечеткими. Я хотел бы попробовать использовать TikZ, чтобы сделать эти изображения, чтобы они оставались четкими при любом размере.
Ради экономии времени я привел пример только для первого раздела. Однако я хотел бы использовать уникальный значок для каждого раздела в пределах одной главы. Эти значки будут очень простыми: просто круг с буквой внутри. Я хочу использоватьТикЗдля того, чтобы избежать необходимости делать эти значки изображениями.
Я не знаю, как это сделать. Любая помощь будет оценена по достоинству. Спасибо.
решение1
В общем, использование пакета tikzscale
изменяет \includegraphics
команду, чтобы иметь возможность читать и набирать tikz
-graphics. Поэтому вы можете сделать что-то вроде
- создайте свои изображения с помощью tikz
- сохранить каждое изображение в отдельном файле
- используйте код связанного ответа и загрузите
tikzscale
пакет - использовать
\includegraphics[height=10pt]{mytikzimage}
в соответствующих местах.
Этот подход имеет дополнительный бонус, который tikzscale
автоматически масштабирует tikz
-images до абсолютного размера, что, как я считаю, имеет решающее значение для этой идеи? Вы можете заглянуть в tikz
библиотеку externalize
, поскольку tikzscale
верстает каждое изображение пару раз, чтобы достичь этого масштабирования. в противном случае использование нескольких иконок в вашем ToC может значительно замедлить компиляцию вашего документа.
Смотрите следующий код, который я позаимствовал изздесь, ссылку на который вы уже дали:
\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
т. д.