防止带有降部的字母(g、q、y……)影响行距

防止带有降部的字母(g、q、y……)影响行距

我正在为纸牌游戏制作布局,带有降部组件的字符(如 g、q、y...)弄乱了间距。例如:

\documentclass{article}
\usepackage{graphicx}
\usepackage{mwe}
\begin{document}
blah
\\[0.2\baselineskip]
\includegraphics[width=4cm]{example-image}
\end{document}

导致图像被放置在高于

\documentclass{article}
\usepackage{graphicx}
\usepackage{mwe}
\begin{document}
glah
\\[0.2\baselineskip]
\includegraphics[width=4cm]{example-image}
\end{document}

我怎样才能防止这种情况发生(而不必将东西放在不同的节点或类似的东西中)?现在,我正在向没有下降部分的线条添加\vphantom{g}(或),但这不是一个非常优雅的解决方案。\strut

目前,我唯一一次看到这种情况是使用\baselineskip(确实可以避免使用这些),但我正在做很多需要独立于所用字母的事情。我已经在使用 ttfamily 字体,因此它们占用相同的水平空间,如果它们也能占用相同的垂直空间那就太好了。

答案1

添加垂直空间之前,请先删除先前的深度。

\documentclass{article}
\usepackage{graphicx}

\newcommand{\fixedvspace}[1]{%
  \par\kern-\prevdepth\vspace{#1}%
}

\begin{document}

\begin{minipage}[t]{4cm}
\hrule

blah
\fixedvspace{0.2\baselineskip}
\includegraphics[width=4cm]{example-image}

\end{minipage}%
\begin{minipage}[t]{4cm}
\hrule

glah
\fixedvspace{0.2\baselineskip}
\includegraphics[width=4cm]{example-image}

\end{minipage}

\end{document}

这里的 `\hrule 只是为了固定小页面,使其参考点位于最顶部。

在您的特定设置中,可能存在看似非常专业的更简单的解决方法。技巧可能隐藏在您用于布局纸牌游戏的语法中。

在此处输入图片描述

答案2

问题不在于文本中的降部,而在于图像的高度迫使产生\lineskip粘连间距。LaTeX 没有很好的方法来避免这种情况,但你可以这样做

\documentclass{article}
\usepackage{graphicx}

\showoutput
\begin{document}

glah


\mbox{}\\
\includegraphics[width=4cm]{example-image}

\end{document}

这样你就可以\baselineskip在文本和空白之间获得间距\mbox(因此可以调整文本的深度),并\lineskip在图像之前获得固定的间距。如果空白框线比你想要的空间大,请使用或任何其他方式\\[-\baselineskip]代替\\\mbox{}

答案3

即使 David Carlisle 的愿​​景更好,您也可以使用类似这样的内容(使用您的实际代码)以及calc包及其depthof计算:

\documentclass{article}
\usepackage{graphicx}
\usepackage{mwe}
\usepackage{calc}

\begin{document}
\newlength{\abc}
\newlength{\nabc}
\setlength{\abc}{\depthof{glah}}
\setlength{\nabc}{-\abc}

\rule[\nabc]{0pt}{0pt}blah
\\[0.2\baselineskip]
\includegraphics[width=4cm]{example-image}

glah
\\[0.2\baselineskip]
\includegraphics[width=4cm]{example-image}
\end{document}

答案4

我从一个不同但相关的问题中偷来了这个答案,但我想在这里发布以防别人来寻找它。来自:https://tex.stackexchange.com/a/51406/153289

{\normalfont\bfseries\libertine\scshape #1
    \par\strut\par
    \unskip\unskip\setbox0=\lastbox
    \vspace*{\dimexpr\ht\strutbox-\baselineskip\relax}}%

#1多行参数在哪里,例如:Hello World\\This~is~a~test.就我而言,对于章节标题为两行的作者……(叹息。)

相关内容