定义一个带有前置内容的 tcolorbox 环境

定义一个带有前置内容的 tcolorbox 环境

我已经成功定义了我自己的tcolorbox

\newtcolorbox{cvbox}[2][]{%
  blanker,
  leftupper=4cm,
  rightupper=2cm,
  after skip=1cm,
  title=\textcolor{blue}{\textbf{\uppercase{#2}}},
  breakable,
  #1
}

但我想在参数定义的内容之前添加一个 bigskip #1。如果我像下面这样重新定义我的环境,我会得到一个编译错误:

\newtcolorbox{cvbox}[2][]{%
  blanker,
  leftupper=4cm,
  rightupper=2cm,
  after skip=1cm,
  title=\textcolor{blue}{\textbf{\uppercase{#2}}},
  breakable,
  \bigskip #1
}

所以我不知道如何添加它。可以吗?我不想每次使用时都定义它cvbox

答案1

我觉得你这句话I would like to add a bigskip before the content defined by the parameter #1不是你想要的。Parameter #1是可选参数(初始为空),用于添加新选项或更改已定义的选项cvbox。与框内容无关。

如果您想要\bigskipcvbox 和前一段之间的内容,您应该使用before=\bigskip选项(当您需要它时可以作为可选参数引入)

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[most]{tcolorbox}
\usepackage{blindtext}

\newtcolorbox{cvbox}[2][]{%
  blanker,
  leftupper=4cm,
  rightupper=2cm,
  after skip=1cm,
  title=\textcolor{blue}{\textbf{\uppercase{#2}}},
  breakable,
  #1
}
\begin{document}
\blindtext
\begin{cvbox}[before=\bigskip]{Example with bigskip}
\blindtext
\end{cvbox}
\newpage
\blindtext
\begin{cvbox}{Example without bigskip}
\blindtext
\end{cvbox}
\end{document}

在此处输入图片描述

但是如果您想要bigskipcvbox 标题和 cvboxcontents 之间,您应该使用before upper=\bigskip选项:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[most]{tcolorbox}
\usepackage{blindtext}

\newtcolorbox{cvbox}[2][]{%
  blanker,
  leftupper=4cm,
  rightupper=2cm,
  after skip=1cm,
  title=\textcolor{blue}{\textbf{\uppercase{#2}}},
  breakable,
  #1
}
\begin{document}
\blindtext
\begin{cvbox}[before upper=\bigskip]{Example with bigskip}
\blindtext
\end{cvbox}
\newpage
\blindtext
\begin{cvbox}{Example without bigskip}
\blindtext
\end{cvbox}
\end{document}

在此处输入图片描述

相关内容