LaTeX代码中@符号的功能是什么?附实际使用示例
LaTeX中@符号的作用解析
在LaTeX里,@不是运算符,它是用来区分内核/宏包「内部命令」和用户「可用命令」的标识符。
默认情况下,LaTeX不允许用户在普通文档代码里直接使用带@的命令——这类命令属于内核或宏包的内部实现细节,比如你示例里的\@twoside、\c@page。这么设计的核心目的是避免用户自定义命令和系统内部命令重名,减少命名冲突。如果用户确实需要调用这类内部命令,得先通过\makeatletter将@的字符类别改为字母(默认属于特殊字符),使用完再用\makeatother恢复默认设置。
看你给出的示例代码:
\def\cleardoublepage{% \clearpage% \if@twoside% \ifodd\c@page% \else% \thispagestyle{empty}% \vspace*{\fill}% \newpage% \fi% \fi% }
其中\@twoside是内核维护的布尔变量,用于判断文档是否启用双面排版;\c@page是对应page计数器的内部命令,代表当前页码。这段代码的作用是自定义\cleardoublepage命令:先执行\clearpage清空当前页的浮动元素,若文档为双面排版且当前页码是偶数,则生成一个无页码样式的空白页,保证下一页从奇数页开始。
内容的提问来源于stack exchange,提问作者Thomas Didymus
相关产品推荐
相关产品推荐

