我正在尝试修改很棒的简历使得水平线位于线的垂直中心。
相关代码行awesome-cv.cls声明如下:
\def\vhrulefill#1{\leavevmode\leaders\hrule\@height#1\hfill \kern\z@}
我读过另一个答案,说要使用深度来实现这一点,但玩了一段时间后,我似乎还是做不到。请帮忙。
答案1
您还可以指定深度,可以\@depth<some length>
在其后添加\@height#1
(或在其前添加,顺序无关紧要)。该版本\vhrulefill
还允许您指定深度,如下#2
所示:
\makeatletter %% <- change @ so that it can be used in command sequences
\def\myrulefill#1#2{\leavevmode\leaders\hrule\@height#1\@depth#2\hfill \kern\z@}
\makeatother %% <- change @ back
定义好后,就可以生成一条线,其顶部<top
从基线凸起,底部凸起<bottom>
。\myrulefill{<top>}{-<bottom>}
请注意减号,这是必需的,因为线的深度实际上是它延伸的距离以下基线。
您没有具体说明“居中”是什么意思,但我至少可以想到三种可能性:
以大写字母 X 为中心
这似乎就是您的图片所显示的。您可以使用以下方法制作这样的粗线
#1
:\newcommand*\crulefill[1]{\myrulefill {\dimexpr(\fontcharht\font`X+#1)/2}{\dimexpr(-\fontcharht\font`X+#1)/2}}
以小写字母 x 为中心
字母 x 的高度为
1ex
,因此如果这是您想要的,您可以使用以下方式将规则置于中心.5ex
:\renewcommand*\crulefill[1]{\myrulefill{\dimexpr(1ex+#1)/2}{\dimexpr(-1ex+#1)/2}}
以数学轴为中心
数学轴是一条假想线,数学运算符(例如 、 和 )和分数中的横线都以该
+
线为-
中心。对于 Computer Modern,数学轴的位置略高于基线。以下是获取以数学轴为中心的规则的方法:*
\rightarrow
.5ex
\makeatletter \renewcommand*\crulefill[1]{% \settoheight\@tempdima{$\m@th\vcenter{}$}% \myrulefill{\dimexpr\@tempdima+#1/2}{\dimexpr-\@tempdima+#1/2}% } \makeatother
这用于创建一个以数学轴为中心的空框,并使用.f
\vcenter{}
将其高度存储在临时寄存器中\@tempdima
\settoheight
(%
有些行末尾有 ,其原因在这个答案顺便一提。)
示范:
\documentclass{article}
\makeatletter %% <- change @ so that it can be used in command sequences
\def\myrulefill#1#2{\leavevmode\leaders\hrule\@height#1\@depth#2\hfill \kern\z@}
\makeatother %% <- change @ back
\begin{document}
% ================================== %
% Centred at half the height of X: %
% ================================== %
\newcommand*\crulefill[1]{\myrulefill
{\dimexpr(\fontcharht\font`X+#1)/2}{\dimexpr(-\fontcharht\font`X+#1)/2}}
X \crulefill{1pt} $\leftarrow$ centred w.r.t.\@ X.
% ================================== %
% Centred at half the height of x: %
% ================================== %
\renewcommand*\crulefill[1]{\myrulefill{\dimexpr(1ex+#1)/2}{\dimexpr(-1ex+#1)/2}}
x \crulefill{1pt} $\leftarrow$ centred w.r.t.\@ x.
% =========================== %
% Centred on the math axis: %
% =========================== %
\makeatletter
\renewcommand*\crulefill[1]{%
\settoheight\@tempdima{$\m@th\vcenter{}$}%
\myrulefill{\dimexpr\@tempdima+#1/2}{\dimexpr-\@tempdima+#1/2}%
}
\makeatother
$+$ \crulefill{1pt} $\leftarrow$ centred w.r.t.\@ math axis.
\end{document}