tcolorbox 及其标题中的多行

tcolorbox 及其标题中的多行

我正在处理这个问题tcolorbox,它工作得很好,直到我的标题超出一行宽度。问题是文本不会换行。

与具有正常文本宽度的框相比,它看起来像这样:

在此处输入图片描述

title与其他变量一起提供如下内容:

\begin{tcolorbox}[title=...]
...
\end{tcolorbox}

我读CTAN 文档(第 4.1 章,第 18 页) 有一些替代方案title。这些替代方案是adjusted titlesqueezed titlesqueezed title*,但它们都不提供多行支持。

有人有解决方案吗?

我可能不会再使用该包,因为当我在一个大型项目中间时mdframed它多次产生错误并且将它替换为...很麻烦。tex capacity exceededtcolorbox


这是所要求的最小工作示例:

\documentclass[a4paper,10pt]{article}

\usepackage[utf8]{inputenc}
\usepackage[slovene]{babel}

\usepackage{units}
\usepackage{acronym}
\usepackage{hyperref}
\usepackage{multicol}

\usepackage{xcolor}
\usepackage{color}

\hypersetup{
    colorlinks=true
}

\makeatletter
\newcommand*{\rom}[1]{\expandafter\@slowromancap\romannumeral #1@}
\makeatother

\usepackage{tcolorbox}
\tcbuselibrary{breakable}

\newcommand{\vprasanje}[4]{
\begin{tcolorbox}[%
breakable,%
left=5mm,%
right=5mm,%
top=5mm,%
bottom=5mm,%
toptitle=0mm,%
bottomtitle=0mm,%
lefttitle=0mm,%
righttitle=0mm,%
boxrule=0.15mm,%
arc=0.25mm,%
colback=red!20!white,%
colframe=red!80!white,%
fonttitle=\hypersetup{allcolors=white!10!white},%
title={\underline{\makebox[\textwidth]{\textit{"{#2}"}\hfill}}}\newline{\makebox[\textwidth]{\hfill{\scriptsize \uppercase{\textbf{Viri}}:~~\textit{#3}}}}%
]
#4
\end{tcolorbox}
}

\begin{document}

\vprasanje{1}{This is the longlonglong longlonglong longlong longlong longlong longlong longlong longlong long longlong long long long long long long long long long long long long long long long long long long long question.}{some references}{This is the long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long answer.}

\end{document}

答案1

问题的主要原因是,在某些条件下,它\underline不会在其参数内包装文本,但包\uline中的文本会包装。ulem

\parbox在我看来,这里没有必要使用外部环境等。

但是,不应使用下划线(太多)

\documentclass[a4paper,10pt]{article}

\usepackage[utf8]{inputenc}
\usepackage[slovene]{babel}
\usepackage{ulem}

\usepackage{units}
\usepackage{acronym}
\usepackage{hyperref}
\usepackage{multicol}

\usepackage{xcolor}
\usepackage{color}

\hypersetup{
    colorlinks=true
}

\makeatletter
\newcommand*{\rom}[1]{\expandafter\@slowromancap\romannumeral #1@}
\makeatother

\usepackage{tcolorbox}
\tcbuselibrary{breakable}

\newcommand{\vprasanje}[4]{
  \begin{tcolorbox}[%
    breakable,%
    left=5mm,%
    right=5mm,%
    top=5mm,%
    bottom=5mm,%
    toptitle=0mm,%
    bottomtitle=0mm,%
    lefttitle=0mm,%
    righttitle=0mm,%
    boxrule=0.15mm,%
    arc=0.25mm,%
    colback=red!20!white,%
    colframe=red!80!white,%
    fonttitle=\hypersetup{allcolors=white!10!white},%
    title={{\itshape\uline{"#2"}}
      \vskip0.1ex
      \hfill\scriptsize \uppercase{\textbf{Viri}}:~~\textit{#3}}%
]
#4
\end{tcolorbox}
}

\begin{document}

\vprasanje{1}{This is the longlonglong longlonglong longlong longlong longlong longlong longlong longlong long longlong long long long long long long long long long long long long long long long long long long long question.}{some references}{This is the long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long answer.}

\end{document}

在此处输入图片描述

答案2

\parbox{}{}我通过使用而不是找到了解决方案\makebox[]{}。看来我误诊了这个问题……

相关内容