![根据目录创建统计数据](https://linux22.com/image/460067/%E6%A0%B9%E6%8D%AE%E7%9B%AE%E5%BD%95%E5%88%9B%E5%BB%BA%E7%BB%9F%E8%AE%A1%E6%95%B0%E6%8D%AE.png)
我正在写一篇关于科学传播的仪表板和可视化的论文。我认为在每章开头显示一个饼图来显示该部分的大小是一个巧妙的技巧。例如:如果有第 x 章,其中第 1 部分有 10 页,第 2 部分有 6 页,第 3 部分有 4 页,那么将有一个饼图,其中第 1 部分占 50%,第 2 部分占 30%,第 3 部分占 20%。
是否可以读出每个部分的页码、计算净页数并用 tikz 创建饼图?
答案1
以下答案使用轮图包,是我写的。
为了计算页数,包总数用来。
包裹埃托克是创建此目录所必需的。
环境tikzpicture
被放置在\iftotalpages
...内\fi
,这样只有当\totalpages
已知时才会执行。该值被赋予键etoc count total pages
。
该宏\WCetocthename
对应于\etocthename
。
弧之间的间隙是通过键gap
和获得的gap radius
。
键value
由 定义\WCetocthenumberofpages
,它对应于当前(子)部分的页数。
键etoc level
决定了目录的级别。
颜色是通过键的列表来确定的slices style{list}
。
\documentclass[a4paper]{article}
\usepackage[page]{totalcount}
\usepackage{wheelchart}
\usetikzlibrary{decorations.text}
\usepackage{etoc}
\etocsettocstyle{\hypersetup{hidelinks}}{}
\etocglobaldefs
\usepackage[linktoc=all,pdfstartview=FitH,colorlinks=true]{hyperref}
\begin{document}
\iftotalpages\begin{tikzpicture}
\pgfkeys{
/wheelchart,
arc data=\WCetocthename,
arc data pos=0.5,
etoc count total pages=\totalpages,
gap,
gap radius,
value=\WCetocthenumberofpages
}
\wheelchart[
data=,
etoc level=subsection,
middle={\Huge Title},
slices style{list}={orange!50,orange!75,green!20,green!40,green!60,green!80,purple!25,purple!50,purple!75}
]{}
\wheelchart[
data=\WCetocthelinkedname\\\WCetocthelinkednumber\\page \WCetocthelinkedpage,
etoc level=section,
radius={3}{4},
slices style{list}={orange,green,purple}
]{}
\end{tikzpicture}\fi
\section{Section A}
\subsection{A.1}
\newpage
\subsection{A.2}
\newpage
\section{Section B}
\subsection{B.1}
\newpage
\subsection{B.2}
\newpage
\subsection{B.3}
\newpage
\subsection{B.4}
\newpage
\section{Section C}
\subsection{C.1}
\newpage
\subsection{C.2}
\newpage
\subsection{C.3}
\end{document}
下图来自包文档。