\ifodd 条件的模拟,用于验证页码是否等于某个常数

\ifodd 条件的模拟,用于验证页码是否等于某个常数

我有一个很好的例子,说明如何使用\ifodd条件环境,如\makeatletter@Symbol 1 所示。

\begin{document}
\makeatletter
\newbox\LT@oddhead
\newbox\LT@evenhead
\def\endoddhead{\LT@end@hd@ft\LT@oddhead}
\def\endevenhead{\LT@end@hd@ft\LT@evenhead}
\def\LT@head{\ifodd\c@page\LT@oddhead\else\LT@evenhead}
\makeatother
\begin{landscape}\small\begin{longtabu}to\linewidth{lll XX XXXXX}
    \caption*{ Long caption of a long table}\\\toprule1&2&3&4&5&6&7&8\\\midrule\endfirsthead
    \caption*{ (Cont) Long caption of a long table }\\\toprule1&2&3&4&5&6&7&8\\\midrule\endoddhead
    \toprule1&2&3&4&5&6&7&8\\\midrule\endevenhead

我想添加一条语句来检查 pagenumber 是否等于某个常量。例如:

\def\LT@head{\ifeq\c@page={some constant}\{some stuff}\else\LT@head}

但我在环境中找不到\ifodd命令的类似物。有什么想法吗?\makeatletter

编辑:添加最小工作示例 编辑 2:减少 MWE 并在 someconstant 前添加 @ 符号。如果我取消注释带有\ifnum编译器的行,则不会生成 pdf。警告消息是! Missing number, treated as zero.。我仍然感到困惑。

\documentclass[a4paper, 10pt, oneside,hidelinks]{book} 
\usepackage[utf8]{inputenc}
\usepackage[russian]{babel}
\usepackage{booktabs}
\usepackage{lscape}
\usepackage{tabu}
\usepackage{longtable}



\begin{document}
\makeatletter
\newbox\LT@oddhead
\newbox\LT@evenhead
\newbox\LT@endhead
\newcommand{\@someconstant}{2}
\newcommand{\Endd}{End}
\def\endoddhead{\LT@end@hd@ft\LT@oddhead}
\def\endevenhead{\LT@end@hd@ft\LT@evenhead}
\def\endendhead{\LT@end@hd@ft\LT@endhead}
\def\LT@head{\ifodd\c@page\LT@oddhead\else\LT@evenhead}
%\def\LT@head{\ifnum\c@page=\@someconstant\relax\Endd\else\LT@head\fi}
\makeatother



\begin{landscape}
  \small
\begin{longtabu} to \linewidth{ lll XX  XXXXX}

\caption*{ Long caption of a long table}\\\toprule1&2&3&4&5&6&7&8\\\midrule\endfirsthead
    \caption*{ (Cont) Long caption of a long table }\\\toprule1&2&3&4&5&6&7&8\\\midrule\endoddhead
    \toprule1&2&3&4&5&6&7&8\\\midrule\endevenhead
    End\\\endendhead


  \bottomrule
  \endfoot

  \bottomrule
  \endlastfoot




1-й

 & Длина, мм & Самцы & —
 & 85,1--104,0 93,7 (6) & 100,6 (1) & —
 & —
 & —
 & —
 \\ &  & Самки & —
 & 92,1--105,8 97,6 (4) & 137,6 (1) & —
 & —
 & —
 & —
 \\ 
 &  & juv & 43,6–82,0 53,3 (20) & —
 & —
 & —
 & —
 & —
 & —
 \\ 
 & Масса, г & Самцы & —
 & 2,3--4,2 \linebreak2,8 (6) & 3,2 (1) & —
 & —
 & —
 & —
 \\ 
 &  & Самки & —
 & 2,2--3,6\linebreak 2,7 (4) & 7,9 (1) & —
 & —
 & —
 & —
 \\ 
 &  & juv & 0,2--1,8\linebreak 0,4 (20) & —
 & —
 & —
 & —
 & —
 & —
 \\ 
\\

2-й & Длина, мм & Самцы & —
 & 72,0--114,0
93,6 (16) & 104,3--132,3
113,4 (4) & 121,5--178,2
139,3 (9) & 
158,9 (1) & 193,7--212,7
175,6 (3) & —
 \\ 
 &  & Самки & —
 & 77,5--110,4
95,2 (7) & 110,4--131,3
117,6 (4) & 167,8 (1) & —
 & 182,9 (1) & —
 \\ 
 &  & juv & 45,1--86,9
51,9 (40) & —
 & —
 & —
 & —
 & —
 & —
 \\ 
 & Масса, г & Самцы & —
 & 1,1--5,1 \linebreak 2,7 (16) & 3,7--5,5 \linebreak 4,3  (4) &
 5,1--15,0\linebreak  9,2 (9) 
 & 17,0 (1) & 21,0--30,0 26,3 (3) & —
 \\ 
 &  & Самки & —
 & 1,5--4,7
\linebreak2,8 (7) & 4,0--6,1
\linebreak5,1 (4) & 15,0 (1) & —
 & 34,0 (1) & —
 \\ 
 &  & juv & 0,2--1,3
\linebreak0,4 (40) & —
 & —
 & —
 & —
 & —
 & —
 \\ 

\\

3-й & Длина, мм & Самцы & —
 & 85,8--114,6
100,4 (7) & 113,7--131,2
118,3 (5) & 124,0--172,7
148,3 (2) & 144,6  (1)
 & —
 & 181,7--184,0
182,8 (2) \\ 
 &  & Самки & —
 & 84,7--115,7
98,0 (9) & 109,1--156,4
133,3 (3) & 106,9--167,1
140,0 (3) & 159,3 (1) & 222,6 (1) & 170,2 (1) \\ 
 &  & juv & 42,3--90,4
61,0 (26) & —
 & —
 & —
 & —
 & —
 & —
 \\ 
 & Масса, г & Самцы & —
 & 2,1--5,2
\linebreak3,7 (7) & 4,5--10,0
\linebreak5,8 (5) & 7,6--19,0
\linebreak13,3 (2) & 11,0 (1) & —
 & 23,5--24,9
24,2 (2) \\ 
 &  & Самки & —
 & 2,0--5,9
\linebreak3,5 (9) & 4,9--14,0
\linebreak9,7 (3) & 4,5--21,0
\linebreak12,5 (3) & 15,0 (1) & 39,0 (1) & 18,0 (1) \\ 
 &  & juv & 0,3--2,6
\linebreak0,9 (26) & —
 & —
 & —
 & —
 & —
 & —
 \\ 

\\

4-й & Длина, мм & Самцы & —
 & 77,6--112,0
92,7 (14) & 115,2--140,2
127,7 (2) & 135,2 (1) & 146,1--181,1
159,9 (3) & 157,9 (1) & 175,4--244,7
210,0 (2) \\ 
 &  & Самки & —
 & 88,0--113,7
99,1 (4) & 105,0--157,1
135,4 (6) & 123,0--174,3
141,3 (6) & 134,2--182,3
160,1 (3) & 181,6--187,0
183,4 (3) & —
 \\ 
 &  & juv & 43,9--81,0
52,0 (19) & —
 & —
 & —
 & —
 & —
 & —
 \\ 
 & Масса, г & Самцы & —
 & 1,2--5,0
\linebreak2,7 (14) & 5,0--12,0
\linebreak8,5 (2) & 10,9 (1) & 12,0--23,0
\linebreak16,6 (3) & 13,4 (1) & 17,0 (1) \\ 
 &  & Самки & —
 & 2,0--6,0
\linebreak3,2 (4) & 4,3--17,0
\linebreak9,3 (6) & 7,0--26,0
\linebreak13,0 (6) & 7,0--19,8
\linebreak14,4 (3) & 20,0--36,0
\linebreak25,3 (3) & —
 \\ 
 &  & juv & 0,2--2,3
\linebreak0,5 (19) & —
 & —
 & —
 & —
 & —
 & —
 \\ 
\\


5-й & Длина, мм & Самцы & —
 & 71,7--108,2
\linebreak91,3 (32) & 87,3--140,0
\linebreak110,6 (39) & 105,6--149,4
\linebreak126,8 (7) & 130,4--160,9
\linebreak149,6 (5) & 166,2 (1) & —
 \\ 
 &  & Самки & —
 & 80,2--105,4
\linebreak93,2 (30) & 93,6--152,9
\linebreak114,0 (48) & 123,0--147,1
\linebreak136,3 (12) & 144,2--147,0
\linebreak145,6 (2) & 140,7--179,6
\linebreak160,1 (2) & —
 \\ 
 &  & juv & 43,0--99,5
\linebreak73,1(47) & —
 & —
 & —
 & —
 & —
 & —
 \\ 
 & Масса, г & Самцы & —
 & 1,0--4,7
\linebreak2,6 (32) & 1,7--13,0
\linebreak4,6 (39) & 3,6--15,0
\linebreak8,37(7) & 9,1--21,0
\linebreak14,9 (5) & 11,6 (1) & —
 \\ 
 &  & Самки & —
 & 1,7--4,7
\linebreak2,9 (30) & 2,0--17,0
\linebreak5,5 (48) & 7,9--15,4
\linebreak10,9 (12) & 9,9--13,0
\linebreak11,4 (2) & 12,3--28,0
\linebreak20,1 (2) & —
 \\ 
 &  & juv & 0,2--4,2
\linebreak1,4 (47) & —
 & —
 & —
 & —
 & —
 & \multicolumn{1}{l}{—
} \\ 
 &  &  &  &  &  &  &  &  &  \\ 
\\


6-й & Длина, мм & Самцы & —
 & 61,0--147,4
\linebreak98,2 (19) & 104,1--166,3
\linebreak120,4 (27) & 119,1--189,3
\linebreak147,0 (12) & 139,0--175,4
\linebreak157,2 (3) & 176,6--215,0
\linebreak195,8 (2) & 199,1--267,0
\linebreak246,4 (5) \\ 
 &  & Самки & —
 & 78,2--139,6
\linebreak99,1 (15) & 93,3--162,4
\linebreak122,3 (23) & 119,0--177,0
\linebreak145,6 (6) & 145,8--169,7
\linebreak158,9 (4) & 203,6 (1) & 212,9 (1) \\ 
 &  & juv & 44,0--96,3
\linebreak64,4 (35) & —
 & —
 & —
 & —
 & —
 & —
 \\ 
 & Масса, г & Самцы & —
 & 1,3--13,0
\linebreak5,0 (15) & 2,7--14,0
\linebreak5,9 (27) & 6,5--24,0
\linebreak12,0 (12) & 9,0--9,8
\linebreak9,4 (2) & 18,0--38,0
\linebreak28,0  (2) & 19,6--73,0
\linebreak49,7 (5) \\ 
 &  & Самки & —
 & 1,6--11,0
\linebreak4,4 (12) & 1,8--13,0
\linebreak6,3 (23) & 5,6--16,0
\linebreak11,3 (5) & 10,7--18,0
\linebreak13,9 (4) & 34,0 (1) & 36,0 (1) \\ 
 &  & juv & 0,2--3,0
\linebreak1,3 (35) & —
 & —
 & —
 & —
 & —
 & —
 \\ 

\\

7-й & Длина, мм & Самцы & —
 & 69,6--131,3,5
\linebreak93,4 (39) & 83,5--159,1
\linebreak116,4 (41) & 105,4--181,8
\linebreak138,8 (14) & 132,0--168,0
\linebreak153,7 (5) & 134,9--178,9
\linebreak156,9 (2) & 193,5 (1) \\ 
 &  & Самки & —
 & 64,9--133,0
\linebreak88,2 (31) & 83,3--169,1
\linebreak121,6 (39) & 95,2--168,4
\linebreak136,9 (20) & 136,0--183,8
\linebreak158,8 (5) & 163,1--202,0
\linebreak177,1 (3) & 200,0 (1) \\ 
 &  & juv & 39,1--93,1
\linebreak61,3 (150) & —
 & —
 & —
 & —
 & —
 & —
 \\ 
 & Масса, г & Самцы & —
 & 1,0--9,0
\linebreak3,0 (39) & 1,8--17,0
\linebreak6,3 (41) & 4,1--34,0
\linebreak12,1 (14) & 8,4--21,7
\linebreak15,2 (5) & 9,1--22,0
\linebreak15,5 (2) & 39,0 (1) \\ 
 &  & Самки & — & 1,0--8,7
\linebreak2,3 (31) & 1,7--22,0
\linebreak7,6 (39) & 4,0--24,0
\linebreak11,3 (20) & 9,0--26,0
\linebreak17,6 (5) & 15,0--39,0
\linebreak23,5 (3) & 51,0 (1)
 \\ 
 &  & juv & 0,1--3,5
\linebreak0,8(150) & —
 & —
 & —
 & —
 & —
 & —
 \\
\\ 

Общее & Длина, мм & Самцы & —
 & 61,0--147,4
\linebreak93,6 (133) & 83,5--166,3
\linebreak115,5 (119) & 105,4--189,3
\linebreak140,4 (45) & 130,4--181,1
\linebreak153,9 (18) & 134,9--215,0
\linebreak178,9 (9) & 175,4--267,0
\linebreak221,1 (10) \\ 
 &  & Самки & —
 & 64,9--139,6
\linebreak93,5 (100) & 83,3--169,1
\linebreak119,7 (124) & 95,2--177,0
\linebreak139,1 (48) & 134,2--183,8
\linebreak157,4 (15) & 140,7--222,6
\linebreak182,8 (11) & 170,2--212,9
\linebreak194,4 (3) \\ 
 &  & juv & 39,1--99,5
\linebreak61,8 (337) & —
 & —
 & —
 & —
 & —
 & —
 \\ 
 & Масса, г & Самцы & —
 & 1,0--13,0
\linebreak3,1 (129) & 1,7--17,0
\linebreak5,8 (119) & 3,6 -34,0
\linebreak11,0  (45) & 8,4--23,0
\linebreak14,5 (17) & 9,1--38,0
\linebreak21,3 (9) & 17,0--73,0
\linebreak39,4 (9) \\ 
 &  & Самки & —
 & 1,0--11,0
\linebreak2,9  (97) & 1,7--22,0
\linebreak6,6  (124) & 4,0--26,0
\linebreak11,5 (47) & 7,0--26,0
\linebreak14,8 (15) & 12,3--39,0
\linebreak26,7 (11) & 18,5--51,0
\linebreak35,1 (3) \\ 
 &  & juv & 0,1--4,2
\linebreak0,9 (337) & —
 & —
 & —
 & —
 & —
 & —
 \\ 

\end{longtabu}
\end{landscape}


\end{document}

答案1

就您的问题而言,这个答案更为笼统:如何检查页码是否是特定的,而不仅仅是奇怪的?

使用refcount

为什么?当你谈论页码时,你必须记住 TeX 的页面构建器是异步的,你最终可能会测试一个你实际上不在的页码。因此,使用引用是获得正确页码的最佳方式。当你想比较引用计数器时,它就refcount可以完成这项工作。

在此处输入图片描述

\documentclass{article}
\usepackage{refcount,lipsum}
\begin{document}
Label \verb|abc| is on page~\pageref{abc}.
\ifnum\getpagerefnumber{abc}=5
  True
\else
  False
\fi

\lipsum[1-25]
\label{abc}
\lipsum[26-50]
\end{document}

第一次编译后,引用尚不可用,\getpagerefnumber{<label>}默认为0。因此,为了获得正确的输出,您需要第一次至少编译两次,之后只需解决引用问题即可正确评估条件。无论如何,如果存在引用问题,LaTeX 都会发出警告。

相关内容