我该如何测量我的棺材?

我该如何测量我的棺材?

我正在尝试棺材作为封面(顺便说一句,我非常享受,真是一个王牌套餐)。

我现在想做的是将一个标志、一些水平的空白和一个彩色的水平条很好地融入\textwidth

在我的代码中,虽然水平条的长度计算效果很好,但看起来有点笨重和 20 世纪。我特别担心可能会产生很大的开销\settowidth{\worki}{\TypesetCoffin{\logo}}。有人能建议一种更干净、更“现代”的方式来做这件事吗?

\CoffinWidth{<coffin>}补充一个问题:有没有计划在 xcoffins 中添加棺材专用的测量工具?例如,可能类似于?

附言:我很欣赏 xcoffins 的持续改进,而且界面可能仍然有点可塑性......

这是我的 M(ish)WE:

\documentclass[12pt,a4paper]{memoir}
\semiisopage
\checkandfixthelayout
\usepackage{xcolor}
\usepackage{graphicx}
\usepackage{xcoffins}

\begin{document}
\thispagestyle{empty}

\NewCoffin \result
\SetHorizontalCoffin \result {}

\NewCoffin \logo
\SetHorizontalCoffin \logo {\includegraphics[height=2in]{mylogo}}

\NewCoffin \ruleh
\newlength{\worki}
\newlength{\workii}
\settowidth{\worki}{\TypesetCoffin{\logo}}
\setlength{\workii}{\textwidth}
\addtolength{\workii}{-5pt}
\addtolength{\workii}{-\worki}
\SetHorizontalCoffin \ruleh  {\color{blue}\rule{\workii}{1pc}}

\JoinCoffins \result \logo
\JoinCoffins \result[\logo-vc,\logo-r] \ruleh[vc,l](5pt,0pt)

\noindent
\TypesetCoffin \result
\end{document}

答案1

\setlength{\worki}{\wd\logo}

棺材名称也是包含它的盒子寄存器的名称。这可能不是“现代”的做法,也许棺材可能有一个接口。

如果您想要一些“现代”的东西,那么可以定义这些命令:

\usepackage{xparse}
\ExplSyntaxOn
\NewDocumentCommand{\WidthOfCoffin}{m}{ \box_wd:N #1 }
\NewDocumentCommand{\HeightOfCoffin}{m}{ \box_ht:N #1 }
\NewDocumentCommand{\DepthOfCoffin}{m}{ \box_dp:N #1 }
\ExplSyntaxOff

所以你可以说

\setlength{\worki}{\WidthOfCoffin{\logo}}

相关内容