我想创建一个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}