三种不同的标题样式

三种不同的标题样式

我想调整以下宏以提供三种不同的样式标题选项。目前,它提供两种,一种是当节为正常(编号)时,另一种是当节*(未编号)时。我想要第二个未编号的选项(它将有一个边距图像(带有第二个与 people.pdf 不同的图标))。

ssection我已将其中的两行(即不充分的定义和示例文档中的相应行)注释掉(%) ,因为这会产生错误。我知道不能简单地通过添加第三个定义来完成,因为有一个ifstar语句只有两个选项,而不是三个。因此我不确定如何继续。

现有的宏输出如下:http://cl.ly/082k1i2w0e2t/sidebar-images.pdf

(我还想知道是否有办法titlebar@@@通过在其他定义的基础上构建来调整后续定义……但也许这需要一个单独的问题?)

\documentclass{report}
\usepackage{graphicx}
\usepackage[nopar]{lipsum}
\usepackage[noadjust]{marginnote}

\usepackage{titlesec}
\usepackage{tikz}\usetikzlibrary{shapes.misc}
\makeatletter

%   number section bar      
\newcommand\titlebar@{%sections
\tikz[baseline,trim left=3.1cm,trim right=3.0cm] {
    \fill [black!15] (2.5cm,-1ex) rectangle (\textwidth+3.1cm,2.5ex);
    \node [
        fill=black!100!white,
        anchor= base east,
        rounded rectangle,
        minimum height=3.75ex] at (3cm,0.01) {
        \color{white}\textbf{T\thesection}
            };
}}

%   section bar, icon 1 
\newcommand\titlebar@@{%osections
\tikz[baseline,trim left=3.1cm,trim right=3.15cm] {
    \fill [black!15] (2.5cm,-1ex) rectangle (\textwidth+3.1cm,2.5ex);
    }
\marginpar{\vskip-1.9cm\hspace{-14cm}
\includegraphics[width=\marginparwidth]
{people.pdf}    }
    }

%   section bar, icon 2 
\newcommand\titlebar@@@{%ssections
\tikz[baseline,trim left=3.1cm,trim right=3.15cm] {
    \fill [black!15] (2.5cm,-1ex) rectangle (\textwidth+3.1cm,2.5ex);
    }
\marginpar{\vskip-1.9cm\hspace{-14cm}
\includegraphics[width=\marginparwidth]{people.pdf}}}

%   make title commands
\newcommand\titlebar{\@ifstar\titlebar@@\titlebar@}
\titleformat{\section}{\large\bfseries}{\titlebar}{0.1cm}{}
\renewcommand*{\thesection}{\arabic{section}}
\newcommand{\osection}[1]{\section*{\titlebar*#1}}
%   \newcommand{\ssection}[1]{\section*{\titlebar*#1}}
\makeatother





\begin{document}
  \chapter{test}
\osection{person}
    \lipsum[1]
\section{another}
\lipsum[1]  
%\ssection{another}
\lipsum[1]  
\end{document}

答案1

你做错了 定义 3 命令

\renewcommand{\sectionOne}[1]{\global\def\titlebar{\titlebar@}\section{#1}}
\renewcommand{\sectionTwo}[1]{\global\def\titlebar{\titlebar@@}\section{#2}}
\renewcommand{\sectionTree}[1]{\global\def\titlebar{\titlebar@@@}\section{#3}}

此外,如果您连续使用相同的标题栏样式,则可以只调用一次自定义命令,并在其他时间调用 \section。

相关内容