我意识到如果你把长度放在这里:
attach boxed title to top left={yshift=<length>}
在pt
或mm
中cm
,标题框被移动。
如果将其放入ex
或em
,则不是。
这是一个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}