不需要的空格(格式错误)

不需要的空格(格式错误)

编译时,对宏的调用会在单词之间插入额外的空格,并且“[3 Min]”会分成两行。为什么?

\documentclass{beamer}
\usepackage{tcolorbox}

\newcommand{\test}[1]{\textbf{Aufgabe #1: {\thesection}}}

\def\mytcolorbox#1#2#3%
{%
    \begin{tcolorbox}%
    #1\hfill[#2 Min]%
    \tcblower%
    #3%
    \end{tcolorbox}%
}%

\begin{document}
\begin{frame}
\mytcolorbox{\test{hello} text 1 text2 text 3 and so on...}{3}{great}
\end{frame}
\end{document}

答案1

如果您的 [3 分钟] 必须转到右边距,那么您需要一些比在和~之间添加更复杂的东西。#2Min

\documentclass{beamer}
\usepackage{tcolorbox}

\newcommand{\test}[1]{\textbf{Aufgabe #1: {\thesection}}}

\newcommand\mytcolorbox[3]{%
  \begin{tcolorbox}
    #1\nobreak\hfill\penalty50\hskip1em\null\nobreak
    \hfill\mbox{[#2 Min]}%
    {\parfillskip=0pt \finalhyphendemerits=0 \par}
    \tcblower
    #3%
    \end{tcolorbox}%
}

\begin{document}
\begin{frame}
\mytcolorbox{\test{hello} text 1 text2 text 3 text 4 and so on...}{3}{great}
\end{frame}
\end{document}

https://tex.stackexchange.com/a/391739/4427了解更多信息。

在此处输入图片描述

没有text 4

在此处输入图片描述

相关内容