有时找不到现有文件

有时找不到现有文件

我希望创建一个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}

相关内容