垂直行距与垂直字符间距

垂直行距与垂直字符间距

我为学生的测试做了一些“标题”。我使用的代码是

\begin{document}
\begin{flushleft}Combinatorics -- 2018.2 \hfill  \includegraphics[scale=0.08]{logo.pdf}\end{flushleft}
\vspace{-0,3cm}
\hrule
\vspace{-0,3cm}
\begin{flushleft}\textbf{FIRST TEST}\hfill Prof$.$ Alessandro Gaio\end{flushleft}
\vspace{0.3cm}

产生了

在此处输入图片描述

但当我把“组合学”改成“微分几何”时

\begin{document}
\begin{flushleft}Differential Geometry -- 2018.2 \hfill  \includegraphics[scale=0.08]{logo.pdf}\end{flushleft}
\vspace{-0,3cm}
\hrule
\vspace{-0,3cm}
\begin{flushleft}\textbf{FIRST TEST}\hfill Prof$.$ Alessandro Gaio\end{flushleft}
\vspace{0.3cm}

“geometry” 中字符 “y” 的出现产生了这样的结果:

在此处输入图片描述

正如您所注意到的,与编写“组合学”时相比,“微分几何”和水平线之间的空间有所增加。

那么我该如何避免这种情况发生呢?我希望两个空间都像小空间一样。

提前致谢!

答案1

使用\hrule可以实现精确的间距,但flushleft会造成阻碍。最好使用水平框。

由于\hrule不会在上方和下方添加垂直空间,因此您可以精确决定要放置多少空间。唯一要做的就是删除顶行的深度,这可以通过结束段落(由单个框组成)并按 后退来完成\prevdepth

宏绝对是可行的方法,因此如果您想更改间距,您只需修复宏的代码。

\documentclass{article}
\usepackage{graphicx}
\usepackage{showframe}

\newcommand{\assignmentheader}[3]{%
  \par\noindent
  \makebox[\textwidth][s]{%
    \strut #1 -- #2\hfill
    \includegraphics[height=3mm]{example-image}%
  }%
  \par\vspace{-\prevdepth}\vspace{0.5ex}
  \hrule\vspace{0.5ex}
  \noindent
  \makebox[\textwidth][s]{\textbf{#3}\hfill Prof.\ Alessandro Gaio}%
  \par
}
\begin{document}

\assignmentheader{Combinatorics}{2018.2}{FIRST TEST}

\bigskip

\assignmentheader{Differential Geometry}{2018.2}{FIRST TEST}

\end{document}

在此处输入图片描述

顺便说一句,如果你不想让句号Prof.被视为句子结尾,请输入

Prof.\ Alessandro Gioia

而不是可怕的Prof$.$ ;-)

showframe包仅用于显示文本块边界,在生产版本中将其删除。

答案2

LaTeX\rule命令将根据一致的基线到基线间距进行定位,但由于您使用了 Tex 基元,因此\hrule它会立即定位在垂直列表中,因此会受到下降符的影响。从您已有的内容开始,最简单的更改是使用

\mbox{\textbf{\smash{Differential Geometry}}}

\smash 隐藏了其内容的垂直范围。

相关内容