
이 그림은 어떻게 그릴 수 있나요?
\documentclass[12pt]{book}
\usepackage[top=25mm,bottom=25mm,left=25mm,right=25mm]{geometry}
\usepackage[all]{background}
\usepackage{ptext,xcolor}
%\usepackage{showframe}
\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage{changepage}
\strictpagecheck
\usepackage{fancyhdr}
\fancyhf{}
\fancyhead[LO,RE]{\thepage}
\fancyhead[LE]{عنوان کتاب}
\fancyhead[RO]{\leftmark}
\renewcommand{\headrulewidth}{0pt}
\pagestyle{fancy}
\usepackage{xepersian}
\settextfont[Scale=1.2]{Yas}
\linespread{1.5}
\newcommand*{\vsp}{2cm}
\newcommand*{\hsp}{2.5cm}
\newcommand{\MyTikzLogo}{%
\begin{tikzpicture}[remember picture,overlay]
\checkoddpage
\ifoddpage
\draw [color=magenta,line width=1mm] ($(\paperwidth+\hsp,-\vsp)$) --($(\hsp,-\vsp)$);
\else
\draw [color=cyan,line width=1mm] ($(0,-\vsp)$) --($(\paperwidth-\hsp,-\vsp)$);
\fi
\end{tikzpicture}
}
\SetBgContents{\MyTikzLogo}
\SetBgPosition{current page.north west}
\SetBgOpacity{1.0}
\SetBgAngle{0.0}
\SetBgScale{1.0}
\begin{document}
\chapter{titel}
\section{sec }
\ptext[1-40]
\end{document}
답변1
이 경우 배경을 사용하지 않겠습니다. 내 제안은 페이지 번호를 인쇄하는 명령에 장식을 추가하고 tikzpicture
제어된 경계 상자와 함께 사용하는 것입니다.
다음은 시작입니다. 위쪽 부분만 했는데 아래쪽 부분이 더 쉬울 것 같습니다. Parsi 항목을 제거했습니다(글꼴이 없습니다).
\documentclass[12pt]{book}
\usepackage[top=25mm,bottom=25mm,left=25mm,right=25mm,
headheight=40pt]{geometry}
\usepackage{xcolor}
\usepackage{lipsum}
\usepackage{tikz}
\usetikzlibrary{calc, shapes.geometric}
\usepackage{changepage}
\strictpagecheck
\usepackage{fancyhdr}
\fancyhf{}
\fancyhead[LO,RE]{\myfancynum}
\fancyhead[LE]{book title}
\fancyhead[RO]{\leftmark}
\renewcommand{\headrulewidth}{0pt}
\pagestyle{fancy}
\linespread{1.5}
\newcommand{\myfancynum}{%
\begin{tikzpicture}
\path (0,0) [use as bounding box]
node[diamond, draw=cyan, inner sep=0pt, minimum size=32pt] (pageno) {\thepage} ;
\checkoddpage\ifoddpage
% 36pt = 32pt + 4pt +4pt;
\path (pageno.west) node[fill=cyan, fill opacity=0.4, diamond, inner sep=0pt, minimum size=16pt] {};
\draw[cyan] (pageno.north) ++(0, +4pt) -- ++(40pt, -40pt) -- ++(\linewidth,0);
\draw[cyan] (pageno.east) ++(4pt, 0) -- ++(-40pt, -40pt) -- ++(0, -4cm);
\else
\path (pageno.east) node[fill=cyan, fill opacity=0.4, diamond, inner sep=0pt, minimum size=16pt] {};
\draw[cyan] (pageno.north) ++(0, +4pt) -- ++(-40pt, -40pt) -- ++(-\linewidth,0);
\draw[cyan] (pageno.west) ++(-4pt, 0) -- ++(40pt, -40pt) -- ++(0, -4cm);
\fi
\end{tikzpicture}%
}
\begin{document}
\chapter{A chapter}
\section{A section}
\lipsum[1-40]
\end{document}
얻으려면:
여기서의 비결은 ( 더 많은 것이 필요하면 use as bounding box
a에서 사용할 수 있음 ) 사진의 크기가 페이지 번호가 있는 다이아몬드 크기와 같다고 확신하는 것입니다.scope
fancyhdr
당연히 헤더의 크기도 늘려야 했습니다. 이러한 상수를 모두 사용하지 않도록 코드를 정리해야 하지만 독자의 연습 문제로 남겨두겠습니다.
새로운 모양으로 업데이트 --- 이것은 앵커의 사용을 보여주므로 매우 교육적이라고 생각합니다... 변경:
\newcommand{\myfancynum}{%
\begin{tikzpicture}
% this trick is used to have the bounding box centered on the number, but
% the real drawing (the star) hanging down (thanks to anchor=north).
% By default, fancyhdr will line the baseline of this graph (that for it is
% just the pagenumber) to the chapter-section-title whatever info it prints in
% the header.
% To see how fancyhdr lines up things, change this \path to a \draw
\path [use as bounding box] (-16pt,16pt) rectangle (16pt,-16pt);
\path node[star, star points=8, star point ratio=1.3, draw=cyan,
inner sep=0pt, minimum size=32pt, anchor=north] (pageno) {\thepage} ;
\checkoddpage\ifoddpage
% line lengths are adjusted by hand. Probably a bit of math could fix this, but well...
\path (pageno.west) node[fill=cyan, fill opacity=0.4, diamond, inner sep=0pt, minimum size=16pt] {};
\draw[cyan] (pageno.inner point 7) -- ++(44pt,0);
\draw[cyan] (pageno.east) -- ++(+40pt, 0) -- ++(4pt,-4pt) -- ++({\linewidth-48pt},0);
\draw[cyan] (pageno.outer point 6) -- ++(\linewidth,0);
\draw[cyan] (pageno.west) -- ++(-8pt, -8pt) -- ++(0, -4cm);
\else
\path (pageno.east) node[fill=cyan, fill opacity=0.4, diamond, inner sep=0pt, minimum size=16pt] {};
\draw[cyan] (pageno.inner point 2) -- ++(-44pt,0);
\draw[cyan] (pageno.west) -- ++(-40pt, 0) -- ++(-4pt,-4pt) -- ++({-\linewidth+48pt},0);
\draw[cyan] (pageno.outer point 4) -- ++(-\linewidth,0);
\draw[cyan] (pageno.east) -- ++(+8pt, -8pt) -- ++(0, -4cm);
\fi
\end{tikzpicture}%
}
당신에게 줄 것입니다 :