如何使宽度为 80% 的段落居中对齐,同时保持完美的网格对齐?

如何使宽度为 80% 的段落居中对齐,同时保持完美的网格对齐?

我需要将一个对齐的段落居中,占文本总宽度的 80%,同时保持与底层基线网格完美对齐。

我可以获得所需的大小和居中,但无法与底层网格对齐。

参见下面的 MWE。我需要让第二个样本与第一个样本完全对齐到网格。

这是我目前所拥有的:

\documentclass[12pt]{report}
\usepackage{vgrid}

\begin{document}

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam non
vulputate neque, sit amet dictum dolor. Vestibulum auctor ante nec arcu 
faucibus lacinia. Curabitur interdum rhoncus magna feugiat dapibus. Nulla 
ac metus quis felis gravida placerat. Aliquam dignissim magna id nibh 
bibendum dignissim.

{\centering
\begin{minipage}{.8\textwidth}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam non
vulputate neque, sit amet dictum dolor. Vestibulum auctor ante nec arcu 
faucibus lacinia. Curabitur interdum rhoncus magna feugiat dapibus. Nulla 
ac metus quis felis gravida placerat. Aliquam dignissim magna id nibh 
bibendum dignissim.
\end{minipage}
\par}

\end{document}

得出以下结论:

在此处输入图片描述

如何才能使一个宽度为 80% 的段落居中,同时保持完美的网格对齐?

答案1

使用@egreg 的回答(所有荣誉都归于他,但是这篇文章太长了,无法发表评论):

您可以按如下方式定义minipage*环境,它不会弄乱您的垂直网格:

\newenvironment{minipage*}[2][t]
    {\minipage[#1]{#2}}
    {\par\xdef\tpd{\the\prevdepth}\endminipage\par\prevdepth\tpd}

不是重新定义原始minipage环境,因为它会干扰使用它的其他包。

答案2

还有另一种无需“脱离网格”即可管理缩进边距的方法。

缩进组末尾的空行可以用 来替换\par。请记住,对“传入”文本格式的修改直到下一个段落结束才会生效。

\documentclass[12pt]{report}
\usepackage{vgrid}

\begin{document}

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam non
vulputate neque, sit amet dictum dolor. Vestibulum auctor ante nec arcu 
faucibus lacinia. Curabitur interdum rhoncus magna feugiat dapibus. Nulla 
ac metus quis felis gravida placerat. Aliquam dignissim magna id nibh 
bibendum dignissim.

\begingroup
\setlength{\leftskip}{.1\textwidth}
\setlength{\rightskip}{\leftskip}
\noindent
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam non
vulputate neque, sit amet dictum dolor. Vestibulum auctor ante nec arcu 
faucibus lacinia. Curabitur interdum rhoncus magna feugiat dapibus. Nulla 
ac metus quis felis gravida placerat. Aliquam dignissim magna id nibh 
bibendum dignissim.

\endgroup

\end{document}

示例代码的输出

答案3

如果允许临时解决方案......

从代码结果可以看出,\baselineskip12 pt 字体等于 14.5 pt。因此,在本地添加差异可以解决问题。

\documentclass[12pt]{report}
\usepackage{vgrid}

\begin{document}
\the\baselineskip

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam non
vulputate neque, sit amet dictum dolor. Vestibulum auctor ante nec arcu 
faucibus lacinia. Curabitur interdum rhoncus magna feugiat dapibus. Nulla 
ac metus quis felis gravida placerat. Aliquam dignissim magna id nibh 
bibendum dignissim.


{\centering\vspace{2.5pt}
\begin{minipage}{.8\textwidth}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam non
vulputate neque, sit amet dictum dolor. Vestibulum auctor ante nec arcu 
faucibus lacinia. Curabitur interdum rhoncus magna feugiat dapibus. Nulla 
ac metus quis felis gravida placerat. Aliquam dignissim magna id nibh 
bibendum dignissim.
\end{minipage}
\par}

\end{document}

在此处输入图片描述

相关内容