titlesec - 双线,垂直(旋转)部分标记

titlesec - 双线,垂直(旋转)部分标记

基本上我想模仿这个。

带有编号段落的堆叠部分

在右侧页面上,部分标记应朝向相反的方向。

我认为使用 titlesec 页面可以实现这一点。以下是我目前得到的结果。

\documentclass[twoside]{article}
\usepackage{lipsum}
\usepackage{titlesec}

\titleformat{name=\section,page=even}[leftmargin]
{\normalfont\filleft}{}{.5em}{\MakeUppercase}

\titleformat{name=\section,page=odd}[rightmargin]
{\normalfont\filleft}{}{.5em}{\MakeUppercase}

\titlespacing{\section}
{4pc}{}{1pc} %I'm not quite sure with this one

\usepackage{enumitem}

\newlist{paragraphlist}{enumerate}{1}
\setlist[paragraphlist,1]{leftmargin=*,label={\arabic*}}

\counterwithin{paragraphlisti}{subsubsection}

\begin{document}

\section{Lipsuma \\ Amuspil}  %doesn't work
\begin{paragraphlist}
\item \lipsum[1][1]
\item \lipsum[1][2]
\item \lipsum[1][3]
\item \lipsum[1][4]
\item \lipsum[1][5]
\end{paragraphlist}

\newpage

\section{Lipsumb \\ Bmuspil} %doesn't work
\begin{paragraphlist}
\item \lipsum[2][1]
\item \lipsum[2][2]
\item \lipsum[2][3]
\item \lipsum[2][4]
\item \lipsum[2][5]
\end{paragraphlist}
\end{document}

答案1

我太懒了,不想用 来做这件事titlesec,但这可能是可行的。相反,我编织了一个tikz基于 的方法:

\documentclass[twoside]{article}

\usepackage{tikz}
\usetikzlibrary{tikzmark}
\usepackage{tikzpagenodes}

\newcommand{\verticalsection}[2]{%
    \stepcounter{section}%
    \addcontentsline{toc}{section}{#1 (#2)}%
    \tikzmarknode{sec-\thesection-mark}{\strut}%
    \checkoddpage%
    \ifoddpage%
    \begin{tikzpicture}[remember picture, overlay]
        \node[anchor=south west, align=left, rotate=-90] at (sec-\thesection-mark.north -| current page marginpar area.west) {\textcolor{purple}{\MakeLowercase{\scshape#1}}\\ \MakeLowercase{\scshape#2}};
    \end{tikzpicture}%
    \else%
    \begin{tikzpicture}[remember picture, overlay]
        \node[anchor=south east, align=right, rotate=90] at (sec-\thesection-mark.north -| current page marginpar area.east) {\textcolor{purple}{\MakeLowercase{\scshape#1}}\\ \MakeLowercase{\scshape#2}};
    \end{tikzpicture}%
    \fi%
}

\usepackage{lipsum}

\begin{document}

\verticalsection{Lipsuma}{Amuspil foo}
\lipsum[1]

\verticalsection{Lipsumb}{Bmuspil bar}
\lipsum[1]

\newpage

\verticalsection{Lipsumc}{Cmuspil baz}
\lipsum[1]

\end{document}

奇数页(章节可以从页面的任何位置开始): 在此处输入图片描述

偶数页: 在此处输入图片描述


另一种更基本的方法是使用\marginpar

\documentclass[twoside]{article}

\usepackage{graphicx, xcolor}

\newcommand{\verticalsection}[2]{%
    \stepcounter{section}%
    \addcontentsline{toc}{section}{#1 (#2)}%
    \marginpar[%
        \raggedleft\vskip5pt\rotatebox{90}{\parbox{10em}{\raggedleft%
            \textcolor{purple}{\MakeLowercase{\scshape#1}}\par\MakeLowercase{\scshape#2}\hskip5pt}%
        }%
    ]{%
        \rotatebox{270}{\hskip5pt\parbox{10em}{%
            \textcolor{purple}{\MakeLowercase{\scshape#1}}\par\MakeLowercase{\scshape#2}}%
        }%
    }%
}

\usepackage{lipsum}

\begin{document}

\verticalsection{Lipsuma}{Amuspil foo}
\lipsum[1]

\verticalsection{Lipsumb}{Bmuspil bar}
\lipsum[1]

\newpage

\verticalsection{Lipsumc}{Cmuspil baz}
\lipsum[1]

\end{document}

输出几乎相同:

在此处输入图片描述

在此处输入图片描述

不过您需要注意垂直框的宽度:如果它比它所附着的段落长,下一节标题将向下移动。

此外,如果某个章节的开始位置离页面太远,最好让它从下一页开始,否则章节标题将超出下页边距。

相关内容