带框标题的 yshift 无法识别 ex 或 em 长度

带框标题的 yshift 无法识别 ex 或 em 长度

我意识到如果你把长度放在这里:

attach boxed title to top left={yshift=<length>}

ptmmcm,标题框被移动。

如果将其放入exem,则不是。

这是一个tcolorbox错误吗?

\documentclass{article}
\usepackage[most]{tcolorbox}
\usepackage{mwe}

\begin{document}

\begin{tcolorbox}[title=My title, 
    enhanced,
    attach boxed title to top left={yshift=-40pt},
    ]
    With \texttt{pt} (or \texttt{mm}, or \texttt{cm}) the positioning works
\end{tcolorbox}

\vspace{30pt}

\begin{tcolorbox}[title=My title, 
    enhanced,
    attach boxed title to top left={yshift=-4ex},
    ]
    With \texttt{ex} (or \texttt{em}) it doesn't work
\end{tcolorbox}

\end{document}

在此处输入图片描述

答案1

虽然它可以工作,但是用处不大。

em是字体特定的长度,并且无需跟踪所有代码,您就可以猜测此时有效的字体,如果您添加

\def\nullfont{\ERROR}

在盒子之前你得到

! Undefined control sequence.
\nullfont ->\ERROR 

l.11 

除了告诉您\nullfont正在使用什么之外,它并没有什么用。

\nullfont是一种内置字体,没有字符,1em 是 0pt....

答案2

tcolorbox只是为了好玩:下面的方法有效。但是根据和内部执行的顺序tikz,在其他情况下可能会失败。

\documentclass{article}
\usepackage[most]{tcolorbox}
\usepackage{mwe}

\newdimen\myex
\newcommand*{\getex}{\global\myex=1ex}

\begin{document}

\begin{tcolorbox}[title=My title\getex, 
    enhanced,
    attach boxed title to top left={yshift=-10.2\myex},
    ]
    With \texttt{1ex} stored in the title it works
\end{tcolorbox}

\vspace{30pt}

\begin{tcolorbox}[title=My title, 
    enhanced,
    attach boxed title to top left={yshift=-10.2\myex},
    ]
    \getex With \texttt{1ex} stored in the text it works
\end{tcolorbox}

\end{document}

在此处输入图片描述

相关内容