我正在尝试复制 中的LaTeX
对齐和分布工具。这是工具栏InDesign
的快照:ID
假设我想先垂直对齐两个对象(文本、图形、框...),然后水平对齐它们,使它们重叠并完全居中。因此,如果第一个对象是 ,第二个对象是[ ]
,x
第一步将得到[ ]x
,第二个对象是[x]
。
当然,我可以利用centre
环境、负hspace
命令和一些数学知识来做到这一点。
我想要获得的是一组或多或少通用的命令。
我相信这可能很容易在 中实现Tikz
,但我不知道如何实现。或者也许用adjustbox
包。虽然这个问题显然很广泛,但我想知道是否有人已经调查过这个问题并能给我一些想法。
好的。根据要求,以下大致就是我想要系统化的内容:
\documentclass{article}
\usepackage{graphicx, xcolor, calc}
\newcommand*{\FirstObject}{\colorbox{black!20}{\quad}}
\newcommand*{\SecondObject}{x}
\begin{document}
\thispagestyle{empty}
\parindent=0pt
\section{First Step}
\newlength{\wone}
\setlength{\wone}{\widthof{\FirstObject{}}}
\newlength{\wtwo}
\setlength{\wtwo}{\widthof{\SecondObject{}}}
\newlength{\wthree}
\setlength{\wthree}{\wone + \wtwo}
\FirstObject{}\hspace*{-.5\wthree}\SecondObject{}
\section{Second Step}
\newlength{\hone}
\setlength{\hone}{\heightof{\FirstObject{}}}
\newlength{\htwo}
\setlength{\htwo}{\heightof{\SecondObject{}}}
\newlength{\hthree}
\setlength{\hthree}{\hone + \htwo}
\FirstObject{}\hspace*{-.5\wthree}%
\raisebox{-.25\hthree}{\SecondObject{}} % Don't know why .5 won't work here...
\end{document}
答案1
你可能会喜欢xcoffins
包装,可以非常方便地将不同类型的盒子(所谓的棺材)与另一个盒子连接在一起,或者将一个盒子连接到另一个盒子上。它是l3experimental
bundle,这意味着语法改变仍然是可能的。
已经有本网站上的一些问题和答案涉及xcoffins
,下面是另外一个小例子:
\documentclass{article}
\usepackage{xcoffins}
\usepackage{xcolor}
\NewCoffin\FirstObject
\NewCoffin\SecondObject
\SetHorizontalCoffin\FirstObject{\colorbox{black!20}{\quad}}
\SetHorizontalCoffin\SecondObject{x}
\begin{document}
\TypesetCoffin\FirstObject
\TypesetCoffin\SecondObject
% join both coffins at their horizontal and vertical centers:
\JoinCoffins
\FirstObject[hc,vc]%
\SecondObject[hc,vc]%
% \FirstObject now holds the joined coffins:
\TypesetCoffin\FirstObject
\end{document}