带覆盖文本的进度条

带覆盖文本的进度条

我需要将实际百分比值显示为进度条的覆盖层。正如您在 MWE 中看到的,我得到的唯一结果就是将其移动到进度条下方,但我希望它位于进度条内。这有可能吗,我在文档中没有找到任何线索。有什么建议吗?

\documentclass{book}
\usepackage{progressbar}
\usepackage{makecell}
\begin{document}
\renewcommand\cellset{\renewcommand\arraystretch{0.3}%
\setlength\extrarowheight{0pt}}
\begin{table}
\begin{tabular}{|l|c|c|}
foo & bar & 
\makecell{
    \progressbar[linecolor=blue, filledcolor=green]{0.6}\\
    \tiny{$60\%$}
} \\
\end{tabular}
\end{table}
\end{document}

生成的进度条

答案1

这是该包接受的密钥列表

  • 边框宽度
  • 高度
  • 圆润的
  • 高度
  • 圆度r
  • 宽度
  • 线条颜色
  • 空颜色
  • 填充颜​​色
  • 刻度宽度
  • 刻度高度
  • 刻度颜色
  • 细分

这些都不能让你做你想做的事。一个解决方案就是.sty直接稍微修改一下文件

\documentclass{book}
\usepackage{progressbar}
\usepackage{makecell}
\begin{document}
\renewcommand\cellset{\renewcommand\arraystretch{0.3}%
  \setlength\extrarowheight{0pt}}
\begin{table}
  \begin{tabular}{|l|c|c|}
    foo & bar & 
    \makecell{
      \progressbar[linecolor=blue, filledcolor=green, label = \color{black}{\tiny{$60\%$}}]{0.6}     
    } \\
  \end{tabular}
\end{table}
\end{document}

在此处输入图片描述

如果你想用这个新版本,只需将其复制到你代码所在的本地目录中,名称为progressbar.sty

答案2

如果您不想保留包的副本,例如,您可以使用\llap\raiseboxpicture环境的组合手动将文本放置在进度条上方。下面显示了两者的示例。当然,这不如包中的适当界面方便,因为需要反复试验才能正确放置文本。

顺便说一句,请注意你使用\tiny错了,它不是一个接受参数的宏(如\textit),而是一个影响同一组中所有后续文本的开关(如\itshape)。因此你应该将其用作{\tiny text},而不是\tiny{text}

在此处输入图片描述

\documentclass{book}
\usepackage{progressbar}
\usepackage{graphicx}
\begin{document}
\begin{table}
\begin{tabular}{|l|c|c|}
foo & bar & 
  \progressbar[linecolor=blue, filledcolor=green]{0.6}\llap{\raisebox{1.5pt}{\tiny$60\%$}\hspace{0.8cm}}  \\
foo & bar & 
  \progressbar[linecolor=blue, filledcolor=green]{0.6}%
  \begin{picture}(0,0)
    \put(-35,1.5) {\tiny$60\%$}
   \end{picture}
\end{tabular}
\end{table}
\end{document}

相关内容