titlesec 和 textpos:标题名称出现两次

titlesec 和 textpos:标题名称出现两次

我想创建一个block章节开头的类型,其中章节编号和名称以彩色背景排版。

#1我对的参数做错了titleformat,因为章节名称出现了两次。

在此处输入图片描述

我想排版一个非常大的章节编号和旁边的章节标题(可能有两行);而背景的框由纸张边距和数字的大小定义。

我试图避免使用tikz,这就是我选择使用 textpos 的原因;但是使用其他包进行绝对定位也可以。

\documentclass{book}
\usepackage{fontspec}
\setmainfont{Linux Libertine O}
\usepackage{lipsum}
\usepackage{xcolor}
%\usepackage{crop}
\usepackage{graphicx}
\usepackage[raggedright, calcwidth, explicit]{titlesec}
\usepackage[absolute]{textpos}
\newlength{\bleeding}
\setlength{\bleeding}{2.5mm}
\usepackage{calc}
\textblockcolour{red!80}
\titleformat{\chapter}[block]
{%\begin{textblock*}{\paperwidth+2\bleeding}(-\bleeding,-\bleeding)}%
}
{
}
{0cm}% sep
{
  \begin{textblock*}{\paperwidth+2\bleeding}(-\bleeding,-\bleeding)%
    \vspace{\bleeding}
    \begin{minipage}[t]{5cm}
    \hspace{2\bleeding}{%
      \resizebox{4cm}{6cm}{%
      \fontsize{148}{148}\selectfont
      \textcolor{white}{\sffamily\thechapter}
      }
    }%
  \end{minipage}
  \begin{minipage}[t]{\linewidth-5cm}
%    \vspace{-2cm}
    \fontsize{68}{68}\selectfont
    #1
  \end{minipage}
  \end{textblock*}
  \vspace*{-20pt}
  }



\begin{document}
\chapter{Chapter title}
\label{sec:chapter-title}

\lipsum[2]

\end{document}

答案1

编译您的示例时,我得到了与您相同的结果。

此外,我在控制台上收到以下警告:

Chapter 1.

Package textpos Warning: environment textblock* not in vertical mode. 
(textpos)                Environment textblock* should not have any text
(textpos)                or printable material appearing before it.
(textpos)                Alignment may work out wrongly. on input line 43.


Package textpos Warning: environment textblock* not in vertical mode. 
(textpos)                Environment textblock* should not have any text
(textpos)                or printable material appearing before it.
(textpos)                Alignment may work out wrongly. on input line 43.

因此我插入了\ifvmode\else\endgraf\fi确保垂直模式的textblock*环境。

另外,我%在以被标记为字符标记的内容结尾的行(例如,{})中添加了行,以确保由于 LaTeX 的\endlinechar-thingie 而插入到行尾的空格字符不会被标记为空格标记,这在水平模式下可能会产生一些水平粘连。

完成这些操作后,警告就会消失,并且章节标题只会出现一次。

\documentclass{book}
\usepackage{fontspec}
\setmainfont{Linux Libertine O}
\usepackage{lipsum}
\usepackage{xcolor}
%\usepackage{crop}
\usepackage{graphicx}
\usepackage[raggedright, calcwidth, explicit]{titlesec}
\usepackage[absolute]{textpos}
\newlength{\bleeding}
\setlength{\bleeding}{2.5mm}
\usepackage{calc}
\textblockcolour{red!80}
\titleformat{\chapter}[block]
{%\begin{textblock*}{\paperwidth+2\bleeding}(-\bleeding,-\bleeding)}%
}%
{%
}%
{0cm}% sep
{%
  \ifvmode\else\endgraf\fi
  \begin{textblock*}{\paperwidth+2\bleeding}(-\bleeding,-\bleeding)%
    \vspace{\bleeding}%
    \begin{minipage}[t]{5cm}%
    \hspace{2\bleeding}{%
      \resizebox{4cm}{6cm}{%
      \fontsize{148}{148}\selectfont
      \textcolor{white}{\sffamily\thechapter}%
      }%
    }%
  \end{minipage}%
  \begin{minipage}[b]{\linewidth-5cm}% b instead of t -> baseline of last line of title will be aligned to baseline of chapter number.
%    \vspace{-2cm}
    \fontsize{68}{68}\selectfont
    #1%
  \end{minipage}%
  \end{textblock*}%
  \vspace*{-20pt}%
  }%



\begin{document}
\chapter{Chapter title}
\label{sec:chapter-title}

\lipsum[2]

\end{document}

在此处输入图片描述

相关内容