我希望创建一个fancy header
带有可选徽标的。如果用户未使用以下方式定义徽标
\logo{some-file.pdf}
该文件将使用默认徽标(“TFPL.pdf”)。
我的解决方案
\providecommand*{\logo}[1]{\gdef\@logo{#1}}
\providecommand*{\@logo}{TFPL.pdf}
效果很好,但由于某些原因,我想用以下方式定义默认徽标文件macro
:
\newcommand*{\logodefault}{TFPL.pdf}
\providecommand*{\logo}[1]{\gdef\@logo{#1}}
\providecommand*{\@logo}{\logodefault}
但是我收到一个错误:
(/usr/share/texmf/tex/context/base/supp-pdf.mkii [正在加载 MPS 到 PDF 转换器(版本 2006.09.02)。])(/usr/share/texmf/tex/latex/base/article.cls)
!LaTeX 错误:未找到文件“TFPL.pdf”。
我的 MWE:
\documentclass[a4paper,9pt]{article}
\usepackage{TFPL}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{epsfig}
\DeclareGraphicsExtensions{.pdf,.jpg}
\usepackage{epstopdf}
\usepackage{lipsum}
\begin{document}
\section{One}\indent
\lipsum[1-8]
\end{document}
TFPL.sty:
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{TFPL}[2016/08/02 Thinfilm]
\RequirePackage{xstring} %% if-else
\DeclareOption*{\PackageWarning{Thinfilm}{Unknown ‘\CurrentOption’... te marha}}
\ProcessOptions\relax
%%----------Page--------------------------------------------------------------------------
\RequirePackage[margin=2.5cm, top=4cm, bottom=3cm, headsep=2cm]{geometry}
%%----------Header------------------------------------------------------------------------
\newcommand*{\logodefault}{TFPL.pdf}
\providecommand*{\logo}[1]{\gdef\@logo{#1}}
\providecommand*{\@logo}{\logodefault}
\RequirePackage{lastpage}
\RequirePackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\rhead{\includegraphics[height=1cm]{\@logo}}
\lhead{\title}
\rfoot{Page \thepage / \pageref{LastPage}}
为什么LaTeX
在第二种情况(通过定义)中没有找到文件“TFPL.pdf” macro
?
答案1
不要给出文件扩展名。您正在定义允许哪些文件类型以及以何种优先级查找它们。
\begin{filecontents}{\jobname.sty}
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{\jobname}[2017/01/22 Thinfilm]
\RequirePackage{xstring} %% if-else
\DeclareOption*{\PackageWarning{Thinfilm}{Unknown ‘\CurrentOption’... te marha}}
\ProcessOptions\relax
%%----------Page--------------------------------------------------------------------------
\RequirePackage{geometry}
\geometry{margin=2.5cm, top=4cm, bottom=3cm, headsep=2cm,headheight=35pt}
%%----------Header------------------------------------------------------------------------
\newcommand*{\logodefault}{example-image}
\providecommand*{\logo}[1]{\gdef\@logo{#1}}
\providecommand*{\@logo}{\logodefault}
\RequirePackage{graphicx}
\DeclareGraphicsExtensions{.pdf,.eps,.png,.jpg}
\RequirePackage{lastpage}
\RequirePackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\rhead{\includegraphics[height=1cm]{\@logo}}
\lhead{\title}
\rfoot{Page \thepage/\pageref{LastPage}}
\end{filecontents}
\documentclass[a4paper]{article}
\usepackage{\jobname}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{lipsum}
\logo{example-image-a}
\begin{document}
\section{One}
\lipsum[1-8]
\end{document}