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