我不知道我做错了什么。我正在尝试使用pgfgantt
包。我做了一些研究,阅读了手册,但结果让我完全困惑。我似乎无法理解到底发生了什么。
我想做以下事情:
使主标题居中;排序,参见编辑,- 减少所有标题之间的间距,
- 减小第一个至第三个标题的大小,
- 增加第四个标题的大小(包含星期日期),
- 最后旋转最后一个标题中的标签,以便日/月形式的周数能够适合单元格。
最大的问题是标题间距和大小!我尝试阅读手册,尝试自己弄清楚,但在这个阶段,它太复杂了,无法理解。任何帮助我都会很感激。谢谢
下面是 MWE,用于在图片上显示我的结果。我使用 pgfgantt v 4.0,我认为它与以前的版本不兼容。
\documentclass[a4paper,landscape]{article}
\usepackage{graphicx}
\usepackage[a4paper, landscape, margin=0.5in]{geometry}
\usepackage[usernames,dvipsnames,svgnames,table]{xcolor}
\usepackage{pgfgantt}
\ganttset{calendar week text={\small{\startday/\startmonth}}}
\begin{document}
\begin{figure}[h!bt]
\begin{center}
\begin{ganttchart}[
hgrid,
vgrid={*6{draw=none}, dotted},
bar/.append style={fill=black},
bar incomplete/.append style={fill=white},
time slot format=isodate,
time slot format/base century=2000,
x unit=0.062cm,
y unit chart=0.6cm,
bar top shift=0.1,
bar height=0.8,
title label font=\bfseries\normalsize,
time slot format/start date=2018-01-01]{2018-01-01}{2018-12-30}
\gantttitle[y unit title=1cm, title height=0.75]{TITLE}{0}{52}\\
\gantttitlecalendar[y unit title=1cm, title height=0.75]{year, month=shortname}\\
\gantttitlecalendar[y unit title=1cm, title height=0.75]{week}\\
\ganttbar{Short}{2018-01-01}{2018-01-15}\\
\ganttbar{Widerrr}{2018-01-16}{2018-02-28}\\
\ganttbar{Long long long long }{2018-03-01}{2018-05-31}\\
\ganttbar{Midium long}{2018-06-01}{2018-08-31}\\
\ganttbar{Project X}{2018-09-01}{2018-12-30}
\end{ganttchart}
\end{center}
\end{figure}
\end{document}
编辑。
我在代码中发现了一个错误。要使标题居中,我只需要提供一行中所有单元格的编号:
\gantttitle{TITLE}{364}
答案1
y unit title
标题行之间的间隙由(即标题的高度加上间隙)和 (title height
即用于标题的第一个 的比例)决定。例如y unit title=1cm
和title height=0.75
导致 0.25 厘米的高度间隙。title height=1
因此设置将消除间隙。
由于周的标题行较高,因此会与条形图重叠。因此,我使用选项添加了一条不可见的标题行,title/.style={opacity=0}
以便为其腾出空间。
标题行中的标签可以使用选项进行旋转title label node/.append style={rotate=90}
。
其结果是:
代码:
\documentclass[a4paper,landscape]{article}
\usepackage{graphicx}
\usepackage[a4paper, landscape, margin=0.5in]{geometry}
\usepackage[usernames,dvipsnames,svgnames,table]{xcolor}
\usepackage{pgfgantt}
\ganttset{calendar week text={\small{\startday/\startmonth}}}
\begin{document}
\begin{figure}[h!bt]
\begin{center}
\begin{ganttchart}[
hgrid,
vgrid={*6{draw=none}, dotted},
bar/.append style={fill=black},
bar incomplete/.append style={fill=white},
time slot format=isodate,
time slot format/base century=2000,
x unit=0.062cm,
y unit chart=0.6cm,
y unit title=0.6cm, % height of title line and gap
title height=1, % use full height for title, leaving no gap
bar top shift=0.1,
bar height=0.8,
title label font=\bfseries\normalsize,
time slot format/start date=2018-01-01]{2018-01-01}{2018-12-30}
\gantttitle{TITLE}{364}\\
\gantttitlecalendar{year, month=shortname}\\
% increase height rotate label
\gantttitlecalendar[title height=1.8, title label node/.append style={rotate=90}]{week}\\
\gantttitle[title/.style={opacity=0}]{}{364}\\ % invisible title to make room for previous higher line
\ganttbar{Short}{2018-01-01}{2018-01-15}\\
\ganttbar{Widerrr}{2018-01-16}{2018-02-28}\\
\ganttbar{Long long long long }{2018-03-01}{2018-05-31}\\
\ganttbar{Midium long}{2018-06-01}{2018-08-31}\\
\ganttbar{Project X}{2018-09-01}{2018-12-30}
\end{ganttchart}
\end{center}
\end{figure}
\end{document}