标签\ganttbar
pgfgantt
默认为右对齐(在图表边界)。是否可以将其左对齐?
答案1
如果问题是关于标签文本对齐,那么您可以使用坐标交叉点,如下所示:
\documentclass{article}
\usepackage{tikz,pgfgantt}
\begin{document}
\begin{tikzpicture}[node distance=0cm]
\node[align=center] at (-4,0) (o) {This is\\ adjust node}; %Remove the text later or change it to a \coordinate
\begin{ganttchart}[vgrid, hgrid, bar label font=\Large,bar label text={--#1$\rightarrow$}]{12}
\gantttitle{Title}{12} \\
\ganttbar[name=b1,bar label anchor/.style={draw,right = of o|-b1}]{Task 1}{1}{3} \\
\ganttbar[name=b2,bar label anchor/.style={draw,right = of o|-b2},bar label font=\color{orange}]{Task 2}{4}{10} \\
\ganttbar[name=b3,bar label anchor/.style={draw,right = of o|-b3},bar label font=\MakeUppercase]{Final task}{11}{12}
\end{ganttchart}
\node[fill,circle,inner sep=2pt] at (b1) {}; %This line is for demo
\draw[dashed] (o) |- (b1); % This too!
\end{tikzpicture}
\end{document}
这将使
从图中可以看出,我们首先提供一个调整节点。由于图表的西北点是原点,因此我们只需从放置节点的原点向左移动即可(o)
。然后我们取此点与条形中心的正交交点(用黑点表示),交点用虚线表示。我们将条形标签的左侧放在这些交点处,因此它们变为左对齐。为了能够引用每个条形标签,我们需要提供一些名称,如代码所示。
请注意,我将其放置node distance=0cm
到没有额外填充的点,否则标签将与此键指示的距离一样远。此外,我将选项放在draw
锚样式键上,看看它是否正常工作,是否可以稍后简单地删除。
答案2
另一种左对齐条形标签的方法是使用align=left, text width=<some value>
,其中<some value>
应该足够大以容纳最宽的标签。这种方法的优点是您不需要为每个条形调整选项;您只需向环境提供一次键ganttchart
。
(基于 percusse 的 MWE)
\documentclass{article}
\usepackage{pgfgantt}
\begin{document}
\begin{ganttchart}[
vgrid,
hgrid,
bar label font=\Large,
bar label text={--#1$\rightarrow$},
bar label anchor/.append style={align=left, text width=8em}
]{12}
\gantttitle{Title}{12} \\
\ganttbar{Task 1}{1}{3} \\
\ganttbar[bar label font=\color{orange}]{Task 2}{4}{10} \\
\ganttbar[bar label font=\MakeUppercase]{Final task}{11}{12}
\end{ganttchart}
\end{document}
答案3
这pgfgantt 的文档提供了几个示例。下面给出其中一个。任务 1 居中(默认),任务 3 右对齐。
相关键是bar label inline anchor/.style
。
\documentclass{standalone}
\usepackage{pgfgantt}
\begin{document}
\begin{ganttchart}[vgrid, hgrid, inline]{12}
\gantttitle{Title}{12} \\
\ganttbar{Task 1}{1}{3}
\ganttbar[bar label inline anchor/.style=above]{Task 2}{5}{10} \\
\ganttbar[bar label shape anchor=left,%
bar label inline anchor/.style=right]{Task 3}{2}{7}
\ganttbar[inline=false]{Final task}{11}{12}
\end{ganttchart}
\end{document}