1

To minimize the amount of copy-pasting I have to do between documents/projects, I've decided to create a separate file in which I renew the \maketitle command. This file (title.tex) should then be used as input for any project (in this case main.tex):

File main.tex:

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

File title.tex:

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

This doesn't work because the path provided for \includegraphics is relative. Making the path absolute would solve the problem, but that wouldn't make the file as portable as I would like.

Is there any way I can keep using a relative path for my image?

2
  • Thanks for the suggestion, but using TEXINPUTS is not very portable. What would work (for me) is to read the path to the title.tex file from within the file and use that in the path to image, but I have no idea how. There is probably a more elegant way to do something like what I want. How do packages provide images?
    – Silke
    Aug 12, 2012 at 19:40

3 Answers 3

2
% 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

The answer was actually fairly simple: Turn title.tex into title.sty and place it in the texmf folder (together with the image file):

%% 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'.

And in use the package in main.tex:

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

I have no idea if this is the proper way to do it, but it works well.

2
  • So what is difference with my yesterday answer? :-) Aug 13, 2012 at 12:02
  • Your answer still required the path to image, which wasn't what I wanted - and apparently isn't necessary. Your answer did lead me to my own answer - so thanks a lot!
    – Silke
    Aug 13, 2012 at 12:22
0

You can also simply create a command that write the path of the directory with things to be included (image.png and title.tex) and put inside \input:

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

as well as in the \includegraphics command:

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

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .