更新 \maketitle 中的相对图像路径

更新 \maketitle 中的相对图像路径

为了尽量减少在文档/项目之间复制粘贴的次数,我决定创建一个单独的文件来更新命令\maketitle。此文件 ( title.tex) 随后应用作任何项目(在本例中main.tex)的输入:

文件main.tex

\documentclass{article}
\input{/path/to/title}
\begin{document}
    \maketitle
\end{document}

文件title.tex

\usepackage[utf8]{inputenc}
\usepackage{geometry,graphicx}
\geometry{a4paper}
\renewcommand{\maketitle}{
    \includegraphics{image}
}

这不起作用,因为提供的路径\includegraphics是相对的。将路径设为绝对路径可以解决问题,但这不会使文件像我希望的那样具有可移植性。

有什么方法可以让我继续使用图像的相对路径吗?

答案1

% Main.tex

\documentclass{article}
\usepackage{mytitle}
\begin{document}
    \MakeTitle{/path/to/image}
\end{document}
% mytitle.sty

\NeedsTeXFormat{LaTeX2e}[1994/06/01] 
\ProvidesPackage{mytitle}[2012/08/12 v0.01 LaTeX package to include title]  
\RequirePackage[utf8]{inputenc}
\RequirePackage[a4paper]{geometry}
\RequirePackage{graphicx}

\newcommand{\MakeTitle}[1]{\includegraphics{#1}}

\endinput 

答案2

答案其实很简单:转到title.tex并将title.sty其放入texmf文件夹中(连同image文件):

%% This package provides a modified title
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
\ProvidesPackage{title}[2012/08/13 v1 title]

\usepackage[utf8]{inputenc}
\usepackage{geometry,graphicx}
\geometry{a4paper}
\renewcommand{\maketitle}{
    \includegraphics{image}
}

\endinput
%%
%% End of file `title.sty'.

并在中使用包main.tex

\documentclass{article}
\usepackage{title}
\begin{document}
    \maketitle
\end{document}

我不知道这是否是正确的方法,但效果很好。

答案3

您也可以简单地创建一个命令,将要包含的内容(image.png 和 title.tex)写入目录的路径并放入其中\input

%main.tex    
\documentclass{article}
    \newcommand{\onlypath}{/some/path/things}
    \input{\onlypath/title}
    \begin{document}
        \maketitle
    \end{document}

以及在\includegraphics命令中:

%title.tex
\usepackage[utf8]{inputenc}
\usepackage{geometry,graphicx}
\geometry{a4paper}
\renewcommand{\maketitle}{
    \includegraphics{\onlypath/image}
}

相关内容