我认为标题很明显,但我将用下面的图片解释我的想法:(
我正在使用 moderncv 经典风格和 moderntimeline)
左侧的第一个面板显示当前输出。中间的面板是我在 Photoshop 中整理的,用于解释我的目标(见下文)。右侧面板是我期望获得的结果。
这不是一个新问题,其他人已经给出了很好的解决方案(moderntimeline:在条形图的开始和结束时对齐文本或者Moderncv 与 moderntimeline - 如何将标签置于时间线上方的中心?)。
然而,它们都不能满足我的所有要求,最重要的是它们不是完全自动化的,即如果时间尺度发生变化,我将不得不手动更改一些代码)。
我们知道的长度,hintscolumnwidth
因为我们必须设置它,在我的示例中,它用绿线表示。我想要的只是\tllabelcventry
和的标签\tldatelabelcventry
停留在该空间内。但是,如果使用默认设置的标签没有越过绿线(橙色框),那么它应该保持原样。
现在让我们假设标签位于一个框内(这里用蓝色和橙色表示)。如果该框越过绿线(蓝色框),则应向左或向右移动。但要移动多少呢?它应该是最小值,以便其边框与它越过的绿线对齐。
这样,标签就可以保留一些关于其标记的“信息”,但也可以在内部对齐提示列。
我认为如果可以使用标签框,hintscolumnwidth
那么该过程应该是自动的,并且每当时间线增加时,曾经是蓝色的标签框就会变成橙色,并且不需要黑客攻击。