2

It may not be a very good idea, but I am trying to use tcolorbox for formatting titlesec as follows:

\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}

The result is: enter image description here

How should I change the code to put the box directly below Chapter 1, that is, make it occupy the position occupied by the Author and Translator without tcolorbox (you may remove tcolorbox to see this)?

=========================Edit============================

This is where I would like it to be, in case it is not clear:

enter image description here

  • You know that the box appears in the ToC as well? And your question is a little bit unclear. Shall the white space above and below the tcolorbox be removed – user31729 Aug 4 '15 at 7:15
  • Yes, I know how to remove that! :-) – usr203050 Aug 4 '15 at 7:15
  • @Christian Hupfer, yes, and every other bad element should also be removed. – usr203050 Aug 4 '15 at 7:22
  • Every bad element :D – user31729 Aug 4 '15 at 7:23
4

tcolorbox boxes have vertical spacings above and below the box. This can be switched off using nobeforeafter option.

The additional space after the box is due to \titleformat etc. Use \titlespacing to set the vertical spacing after the chapter title to, say, \baselineskip -- this is the last parameter of \titlespacing.

I additionally wrapped a command around the box to make additions/changes easier to maintain.

\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}

enter image description here

  • Not exactly what I want. In fact, I want the box to be exactly below the text "Chapter 1" not below "One chapter"! As mentioned in the question, remove the tcolorbox and you will see where I want it to be. – usr203050 Aug 4 '15 at 7:37
  • @usr203050: I'll change – user31729 Aug 4 '15 at 7:38
  • @usr203050: Updated – user31729 Aug 4 '15 at 7:46
  • @Christian Hupfer, accepted. :-) – usr203050 Aug 4 '15 at 7:48
  • @usr203050: Actually, I 'hate' titlesec ;-) But thanks – user31729 Aug 4 '15 at 7:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.