我正在为纸牌游戏制作布局,带有降部组件的字符(如 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.
就我而言,对于章节标题为两行的作者……(叹息。)