我试图将章节标题放在页面边缘,并用彩色背景框围绕它们。周围的框需要设置在文档主体之外。到目前为止,我已经阅读了 typearea、geometry、layout、titlesec、TikZ 和其他文档,但还没有找到解决方案。
看http://latex-project.org/guides/lb2-ch4.pdf这是我想要实现的效果的一个示例。其中章节标题比正文更靠右。我想要的是将章节标题放在页面左边缘的一个彩色框中,类似于附件文档第二页上的标题。
这是框的代码。我只需要一种方法将其放置在页面左侧边缘。
\documentclass[a4paper,12pt]{report}
\usepackage{tikz}
\usepackage[uppercase, sf, explicit, raggedright]{titlesec} %
\usepackage{xcolor}
\makeatletter
\titleformat{\chapter}
{\sffamily\huge\bfseries}
{}
{0pt}
{
\usetikzlibrary{backgrounds}
\tikzstyle{background rectangle}=[fill=cyan]
\begin{tikzpicture}[framed]
\color{white}
\draw (0,0) +(3ex,0) node[anchor=west]{Chapter \thechapter{} \filright#1};
\end{tikzpicture}
}
\makeatother
\begin{document}
\chapter{Chaptertitle}
\end{document}
答案1
您可以简单地将第 4 个参数设置\titleformat
为负值。
在下面的 MWE 中我将其设置在页面的左边距:
\documentclass[a4paper,12pt]{report}
\usepackage{tikz}
\usetikzlibrary{backgrounds}
\usepackage[uppercase, sf, explicit, raggedright]{titlesec} %
\usepackage{xcolor}
\usepackage{lipsum} % only for the example
\titleformat{\chapter}
{\sffamily\huge\bfseries}
{}
{\dimexpr-\oddsidemargin-\hoffset-1in}
{%
\tikzstyle{background rectangle}=[fill=cyan]%
\begin{tikzpicture}[framed]
\color{white}
\draw (0,0) +(3ex,0) node[anchor=west]{Chapter \thechapter{} \filright#1};
\end{tikzpicture}%
}
\begin{document}
\chapter{Chaptertitle}
\lipsum[1-5]
\end{document}
输出:
一些评论:
\makeatletter
...\makeatother
没有必要,因为没有@
涉及任何字符。- 我已经把它放到
\usetikzlibrary{backgrounds}
定义之外了。 - 我删除了定义中的一些虚假空格,并
%
在某些行的末尾添加了
编辑
为了对未编号的章节实现相同的结果,\tableofcontents
您必须声明一个单独的\titleformat
:
\titleformat{name=\chapter,numberless}
{\sffamily\huge\bfseries}
{}
{\dimexpr-\oddsidemargin-\hoffset-1in}
{%
\tikzstyle{background rectangle}=[fill=cyan]%
\begin{tikzpicture}[framed]
\color{white}
\draw (0,0) +(3ex,0) node[anchor=west]{#1};
\end{tikzpicture}%
}
完成 MWE
\documentclass[a4paper,12pt]{report}
\usepackage{tikz}
\usetikzlibrary{backgrounds}
\usepackage[uppercase, sf, explicit, raggedright]{titlesec} %
\usepackage{xcolor}
\usepackage{lipsum} % only for the example
\titleformat{\chapter}
{\sffamily\huge\bfseries}
{}
{\dimexpr-\oddsidemargin-\hoffset-1in}
{%
\tikzstyle{background rectangle}=[fill=cyan]%
\begin{tikzpicture}[framed]
\color{white}
\draw (0,0) +(3ex,0) node[anchor=west]{Chapter \thechapter{} \filright#1};
\end{tikzpicture}%
}
\titleformat{name=\chapter,numberless}
{\sffamily\huge\bfseries}
{}
{\dimexpr-\oddsidemargin-\hoffset-1in}
{%
\tikzstyle{background rectangle}=[fill=cyan]%
\begin{tikzpicture}[framed]
\color{white}
\draw (0,0) +(3ex,0) node[anchor=west]{#1};
\end{tikzpicture}%
}
\begin{document}
\tableofcontents
\chapter{Chaptertitle}
\lipsum[1-5]
\end{document}
输出 (ToC)