將“tcolorbox”封裝在“titlesec”中

將“tcolorbox”封裝在“titlesec”中

這可能不是一個好主意,但我嘗試使用 以下tcolorbox 格式:titlesec

\documentclass[10pt,twoside]{book}
\usepackage{fontspec}
\usepackage{lipsum}
\usepackage{titlesec}
\usepackage{xcolor}
\usepackage[most]{tcolorbox}

\newcommand{\chaptauthor}{}
\newcommand{\chaptrans}{}

\tcbset{
    enhanced,
    colback=red!5!white,
    boxrule=0.1pt,
    colframe=red!75!black,
    fonttitle=\bfseries
}

\titleformat{\chapter}% command to format the chapter titles
[display]% shape/type of title
{}% formatting commands applied to both label and title
{\flushright \normalsize \color[rgb]{0.5,0,0.1} \MakeUppercase  \chaptertitlename  \hspace{1 ex}  {\fontsize{60}{60} \selectfont \color[rgb]{0.5,0,0.1} \sffamily  \thechapter} }
{0em}% separation between number and chapter title; we've already covered this with the box
{\LARGE\bfseries}% additional formatting command for title itself not applied to number
[% everything inside [...] below comes after the title
\hfill% 
\normalsize\normalfont% reset font formatting
%\vspace{0.5\baselineskip}% add a half-space of vertical space before author
%\hspace*{0.5in}% indent author name width of chapter number box 
{\begin{tcolorbox}[width=5cm]%
\begin{tabular}{rl}%
Author: & \kern-0.5em\chaptauthor \\
Translator: & \kern-0.5em\chaptrans\\
\end{tabular}%
\end{tcolorbox}%
}]% end of what comes after title


%\titlespacing*{\chapter}% spacing commands for chapter titles; the star unindents first line afterwards
%     {0em}% spacing to left of chapter title
%     {0ex}% vertical space before title 
%     {3\baselineskip}% vertical spacing after title; here set to 3 lines 


\begin{document}
\title{A title}
\maketitle

\frontmatter
\setcounter{tocdepth}{0}
\tableofcontents

\mainmatter
\renewcommand{\chaptauthor}{Author}
\renewcommand{\chaptrans}{Translator}
\chapter{One chapter}
\lipsum[5-9]
\chapter{Another chapter}
\lipsum[4-7]
\end{document}

結果是: 在此輸入影像描述

我應該如何更改程式碼以將框放在正下方Chapter 1,即使其佔據作者和譯者佔據的位置而無需tcolorbox(您可以刪除tcolorbox 以查看此內容)?

=========================編輯========================== ====

這就是我想要的位置,以防不清楚:

在此輸入影像描述

答案1

tcolorbox盒子的上方和下方有垂直間距。可以使用選項關閉此nobeforeafter功能。

框後面的額外空間是 由於等\titleformat\titlespacing\baselineskip\titlespacing

我還在該框周圍添加了一個命令,以使添加/更改更易於維護。

\documentclass[10pt,twoside]{book}
\usepackage{fontspec}
\usepackage{lipsum}
\usepackage{titlesec}
\usepackage{xcolor}
\usepackage{ragged2e}
\usepackage[most]{tcolorbox}

\newcommand{\chaptauthor}{}
\newcommand{\chaptrans}{}

\tcbset{
    enhanced,
    colback=red!5!white,
    boxrule=0.1pt,
    colframe=red!75!black,
    fonttitle=\bfseries
}

\newtcolorbox{myauthorbox}[1][]{%
    enhanced,
    colback=red!5!white,
    boxrule=0.1pt,
    colframe=red!75!black,
    fonttitle=\bfseries,
    nobeforeafter,
    #1
}%

\newcommand{\authorbox}[3][width=5cm]{%
\begin{myauthorbox}[#1]
    \begin{tabular}{rl}
      Author:     & \kern-0.5em #2 \\
      Translator: & \kern-0.5em #3 \\
    \end{tabular}
  \end{myauthorbox}%
}


\titleformat{\chapter}% command to format the chapter titles
[display]% shape/type of title
{}% formatting commands applied to both label and title
{\flushright \normalsize \color[rgb]{0.5,0,0.1} \MakeUppercase  \chaptertitlename  \hspace{1 ex}  {\fontsize{60}{60} \selectfont \color[rgb]{0.5,0,0.1} \sffamily  \thechapter} }
{0em}% separation between number and chapter title; we've already covered this with the box
{\LARGE\bfseries}% additional formatting command for title itself not applied to number
[% everything inside [...] below comes after the title
\hfill%  For right alignment of the box
\normalsize\normalfont% reset font formatting
%\vspace{0.5\baselineskip}% add a half-space of vertical space before author
%\hspace*{0.5in}% indent author name width of chapter number box 
{%
  \authorbox[width=5cm]{\chaptauthor}{\chaptrans}%
}]% end of what comes after title


\titlespacing*{\chapter}% spacing commands for chapter titles; the star unindents first line afterwards
     {0em}% spacing to left of chapter title
     {0ex}% vertical space before title 
     {1\baselineskip}% vertical spacing after title; here set to 3 lines 


\begin{document}
\title{A title}
\maketitle

\frontmatter
\setcounter{tocdepth}{0}
\tableofcontents

\mainmatter
\renewcommand{\chaptauthor}{Author}
\renewcommand{\chaptrans}{Translator}
\chapter{One chapter}
\lipsum[5-9]
\chapter{Another chapter}
\lipsum[4-7]
\end{document}

在此輸入影像描述

相關內容