LaTeX :如何调用\title的内容?如何调用带@的命令?

原创
2021/09/15 20:28
阅读数 105

先来一段错误代码

\documentclass{ctexart}
\usepackage{fancyhdr}
\pagestyle{fancy}
\lhead{\author}
\chead{\title}
\rhead{189xxxxxxxx}
\usepackage{zhlipsum} % 中文随机文本
\title{标题}
\author{作者}
\date{\today}
\begin{document}
\maketitle
\zhlipsum[1-5]
\end{document}

编译后会发现 \lhead{\author}\chead{\title} 是失效的!为什么?

问题的原因?

(1)像 \author 的这种命令,它的源定义是带 @,这种需要放入开发者模式

\makeatletter % 进入开发者模式
% 带@的命令
\makeatother % 退出开发者模式

(1)\maketitle 会把 \author \title \@author \@title 都清掉的,所以想用还要在 \maketitle 之前用 \let 把定义给其他一个宏

解决办法?

方法一:直接不用\maketitle

\documentclass{ctexart}
\title{标题}
\author{作者}
\date{\today}
\usepackage{fancyhdr}%页眉页脚设置宏包
\pagestyle{fancy}
\makeatletter
\lhead{\@author}
\chead{\@title}
\rhead{189xxxxxxxx}
\makeatother
\usepackage{zhlipsum} % 中文随机文本
\begin{document}
\zhlipsum[1-5]
\end{document}

方法二:用 \let 新定义个宏

\documentclass{ctexart}
\title{标题}
\author{作者}
\date{\today}
\usepackage{fancyhdr}%页眉页脚设置宏包
\pagestyle{fancy}
\lhead{\Myauthor}
\chead{\Mytitle}
\rhead{189xxxxxxxx}
\makeatletter
\let\Mytitle\@title
\let\Myauthor\@author
\makeatother
\usepackage{zhlipsum} % 中文随机文本
\begin{document}
\maketitle
\zhlipsum[1-5]
\end{document}

方法三:给 \maketitle 打补丁

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部