LaTeX 按照 InDesign 的方式对齐/分布对象?

LaTeX 按照 InDesign 的方式对齐/分布对象?

我正在尝试复制 中的LaTeX对齐和分布工具。这是工具栏InDesign的快照:ID

indesign 工具栏

假设我想先垂直对齐两个对象(文本、图形、框...),然后水平对齐它们,使它们重叠并完全居中。因此,如果第一个对象是 ,第二个对象是[ ]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包装,可以非常方便地将不同类型的盒子(所谓的棺材)与另一个盒子连接在一起,或者将一个盒子连接到另一个盒子上。它是l3experimentalbundle,这意味着语法改变仍然是可能的。

已经有本网站上的一些问题和答案涉及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}

在此处输入图片描述

相关内容