![titlesec - 双线,垂直(旋转)部分标记](https://linux22.com/image/443463/titlesec%20-%20%E5%8F%8C%E7%BA%BF%EF%BC%8C%E5%9E%82%E7%9B%B4%EF%BC%88%E6%97%8B%E8%BD%AC%EF%BC%89%E9%83%A8%E5%88%86%E6%A0%87%E8%AE%B0.png)
基本上我想模仿这个。
在右侧页面上,部分标记应朝向相反的方向。
我认为使用 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}
输出几乎相同:
不过您需要注意垂直框的宽度:如果它比它所附着的段落长,下一节标题将向下移动。
此外,如果某个章节的开始位置离页面太远,最好让它从下一页开始,否则章节标题将超出下页边距。