我在那里,愉快地追寻着beamer
在我追踪贝克斯希尔可怕的 Overprint Hurler 的踪迹时,我找到了完全不同的东西。它看起来像是 vbox 和 centering 的混合体,但变异得非常非常厉害。
为了在这只怪物肆虐之前将其杀死,我研究了它和它的亲属(在安全距离内)。它的行为很奇怪,但通过关在笼子里,我可以看到它对基本刺激的反应模式。最后,我意识到,如果我能引入一些基因突变,暂时关闭基因,\centering
那么它就可以安全了,我就可以继续寻找 Overprint 了。
用不那么平淡的语言来说,在调查tikz 节点内的 Overprint 环境:内容意外对齐我发现问题出在center
环境(又名\centering
)与环境beamer
实现方式之间的交互overprint
。它beamer
所做的是将环境的所有可能版本收集到包含规定宽度的 s 的 esoverprint
中。然后它设置正确的版本(根据覆盖规范),但高度和深度与最大的版本相同。但是,如果环境包含在环境中,则会出现一些奇怪的事情。似乎包含环境的已经考虑了环境,因此由位于线中心的环境组成,并在前面(可能在后面)具有必要的间距。但是当设置 时,它仍然在环境内,因此会拾取一个vbox
minipage
overprint
center
vbox
minipage
center
minipage
vbox
center
新的缩进。这没什么关系,除非vbox
的宽度被调整到规定的宽度,因此 TeX 会添加更多的水平空间以将背面推vbox
入行的中心(或者它是这么认为的)。
鉴于所有这些都是在beamer
overprint 环境中进行的,而且我不想乱搞该代码,最简单的解决方案似乎是在环境\centering
之前关闭(并且overprint
,根据我对原始问题的理解,在内部再次将其重新打开)。但\centering
似乎是一个单向陷阱:有\centering
,,,但没有。\rightragged
\leftragged
\backtonormal
以下是一些可供参考的代码:
\documentclass{article}
\newbox\mybox
\begin{document}
\setbox\mybox=\vbox\bgroup\fbox{\begin{minipage}{4cm}hello
world\end{minipage}}\egroup
\centering
\wd\mybox=4cm
\fbox{\box\mybox}
\setbox\mybox=\vbox\bgroup\fbox{\begin{minipage}{4cm}hello
world\end{minipage}}\egroup
\wd\mybox=4cm
\fbox{\box\mybox}
\setbox\mybox=\vbox\bgroup\fbox{\begin{minipage}{4cm}\centering hello
world\end{minipage}}\egroup
\wd\mybox=4cm
\fbox{\box\mybox}
\fbox{\begin{minipage}{4cm}hello world\end{minipage}}
\fbox{\begin{minipage}{4cm}\centering hello world\end{minipage}}
\end{document}
以下是我得到的结论:
答案1
该软件包ragged2e
提供了增强版本\centering
,\raggedright
和\raggedleft
(您可能会或可能不会喜欢),但最重要的是提供了命令
\justifying
取消上述声明。
答案2
因为你已经在框中了(所以分页不是问题),你不能这样做吗
\begin{minipage}{\textwidth}
将整个宽度框居中是无操作的,并且框内的文本将被对齐。
答案3
\documentclass{article}
\usepackage{lipsum}
\makeatletter
\def\normaljustify{%
\let\\\@centercr\rightskip\z@skip \leftskip\z@skip%
\parfillskip=0pt plus 1fil}
\makeatother
\begin{document}
\centering\lipsum[1]
\normaljustify\lipsum[1]
\end{document}
如果您需要 parindent,那么请在定义中设置它。