许多建筑物没有第 13 层,有些飞机没有第 13 排等等。
如何设置一个文档,使其自动隐藏第 13 页、第 13 图、第 13 章等,例如,通过跳过计数器。如果它不破坏类的奇数/偶数页结构,则可获得加分book
。
答案1
以下示例重新定义\@arabic
以更改的行为\arabic
。如果数字为 13 或更大,则打印增加的数字:
1, 2, ... 11, 12, 14, 15, ...
的奇异性测试\cleardoublepage
基于计数器值,该值不会因重新定义的而改变\@arabic
。
示例文件:
\documentclass{book}
\makeatletter
\renewcommand*{\@arabic}[1]{%
\ifnum#1<13
\the\numexpr(#1)\relax
\else
\the\numexpr(#1)+1\relax
\fi
}
\makeatother
\begin{document}
\chapter{First chapter}
\addtocounter{chapter}{10}
\newpage\null
\newpage\null
\newpage\null
\newpage\null
\newpage\null
\newpage\null
\newpage\null
\newpage\null
\newpage\null
\chapter{Chapter before 13}
\chapter{Chapter after 13}
\end{document}
另一种方法是使用12a
而不是 ,13
以避免造成过多的奇怪现象:
\makeatletter
\renewcommand*{\@arabic}[1]{%
\ifnum#1=13 %
12a%
\else
\the\numexpr(#1)\relax
\fi
}
\makeatother
答案2
[1{/usr/local/texlive/2012/texmf-var/fonts/map/pdftex/updmap/pdftex.map}]
[2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [15] [16] [17] [18] (./bk.aux) )
^^^^^
\documentclass[twoside]{book}
\makeatletter
\let\saved@oddhead\@oddhead
\def\@oddhead{%
\ifnum\c@page=\active
\global\advance\c@page\@ne
\if@twoside
\global\advance\c@page\@ne
\fi
\fi
\saved@oddhead}
\makeatletter
\begin{document}
abc\clearpage
abc\clearpage
abc\clearpage
abc\clearpage
abc\clearpage
abc\clearpage
abc\clearpage
abc\clearpage
abc\clearpage
abc\clearpage
abc\clearpage
abc\clearpage
abc\clearpage
abc\clearpage
abc\clearpage
abc\clearpage
\end{document}
答案3
你可以尝试一下,但是一切使用计数器将受到影响。
\documentclass{article}
\makeatletter
\def\addtocounter#1#2{\@ifundefined {c@#1}{\@nocounterr {#1}}{\global
\advance \csname c@#1\endcsname #2\relax \expandafter\ifnum\csname
c@#1\endcsname=13 \global\advance \csname c@#1\endcsname\@ne}}
\makeatother
\begin{document}
1\clearpage
2\clearpage
3\clearpage
4\clearpage
5\clearpage
6\clearpage
7\clearpage
8\clearpage
9\clearpage
10\clearpage
11\clearpage
12\clearpage
14\clearpage
15
\end{document}