Dieselbe Vorlage in mehreren Dokumenten verwenden

Dieselbe Vorlage in mehreren Dokumenten verwenden

Ich habe ein Layout in LaTeX erstellt (Geometrie, Ränder, Überschriften usw.) und muss mehrere verschiedene Dokumente mit demselben Layout haben. Daher frage ich mich, ob ich, anstatt den „Layoutteil“ des Codes zu kopieren und einzufügen, so etwas wie eine Vorlage erstellen und diese für alle meine Dokumente verwenden könnte.

Ich habe eine Weile gesucht, konnte aber nichts Nützliches dazu finden. Ist das möglich? Und wenn ja, wie kann das gemacht werden?

Antwort1

Es gibt eine gute EinführungLaTeX für Klassen- und Paketautorenmit vielen Informationen zu diesem Thema.

Wie in den Kommentaren angegeben, können Sie Ihre eigene Stildatei oder sogar Klasse schreiben.

Ich kann nur raten, was für Sie eine geeignete Wahl wäre, aber ich schätze, Sie zielen auf Ihre eigene Stildatei ab.

Dies ist ein mehr oder weniger nutzloser, leerer Stil. Sie können ihn gerne mit Ihrer Präambel füllen. Natürlich brauchen Sie diese ausführlichen Kommentare am Anfang Ihrer Datei nicht, aber denken Sie daran: Es ist besser, Ihre Ideen zu dokumentieren, als ...

Dieser Stil muss als gespeichert werden empty.sty. Natürlich sollten Sie Ihrem Stil einen genaueren Namen geben. Wenn Sie jedoch den Namen der Datei ändern, achten Sie darauf, diesen Namen auch in der Datei zu ändern, insbesondere im Befehl \ProvidesPackage. Andernfalls gibt LaTeX einen Fehler aus.

Ich habe eine neue Boolesche Variable definiert @draft. Sie wird mithilfe der Stiloption festgelegt draft, oder final: \usepackage[draft]{empty}würde den Entwurfsmodus definieren.

Diese Option wird an das -Paket übergeben graphicx, das von diesem Stil geladen wird. (In Ihrem Fall: geometryund so weiter.) Seien Sie auch vorsichtig: Anstatt aufzurufen \usepackage, müssen Sie sagen \RequirePackage.

Sie können auch einige Befehle definieren und sogar die definierte Boolesche Variable verwenden, wie ich am Ende dieser Datei gezeigt habe.

EDIT: noch ein letztes Wort zum Speicherort der Datei. Generell wäre es eine gute Idee, sie irgendwo zu speichern, wo LaTeX Tex-Dateien sucht und findet. Mittlerweile bevorzuge ich TeXLive, daher beziehen sich meine Vorschläge auf TeXLive. TeXLive unterscheidet zwischen drei Speicherorten in Ihrem Dateisystem, an denen TeX- und LaTeX-Eingaben gespeichert werden können:

  1. Das Hauptverzeichnis, in dem die Distributoren alle Dateien sammeln, die sie in ihre Distribution aufnehmen. TeXLive speichert den Pfad zu diesem Speicherort entweder in $TEXMFMAINoder in $TEXMFDIST.
  2. Es gibt einen zweiten Speicherort, der dem Manager einer standortweiten TeXLive-Installation gewidmet ist. An diesem Speicherort kann der Manager die Vorlagen, Stile, Schriftarten usw. speichern, die für sein Unternehmen relevant sind. TeXLive speichert den Speicherort in $TEXMFLOCAL.
  3. Schließlich gibt es noch einen Ort, der dem einzelnen Benutzer gewidmet ist. An diesem Ort können SIE Ihre privaten Erweiterungen speichern, einschließlich meiner empty.sty. :-) TeXlive speichert den Pfad in $TEXMFHOME.

Diese drei Standorte wurden in der guten alten Zeit (tm) eingerichtet und sind stark von vernetzten UNIX-Systemen beeinflusst, bei denen es durchaus üblich war, eine TeX-Installation für die gesamte Firma/Universität/... mit Hunderten von Maschinen und Tausenden von möglichen Benutzern zu haben.

Heutzutage besteht bei unseren Personal-PCs keine wirkliche Notwendigkeit mehr, zwischen der standortweiten Installation durch den Systemadministrator und den privaten Dateien des Benutzers zu unterscheiden, da der Benutzer in den meisten Fällen mit dem Systemadministrator identisch ist.

Dennoch gibt es noch eine Sache, die erwähnenswert ist. LaTeX verwendet sehr viele Dateien. Es würde die System- und insbesondere die IO-Last dramatisch erhöhen, wenn LaTeX direkt im Dateisystem suchen würde und daher rekursiv alle Tausenden von Verzeichnissen immer wieder durchgehen müsste, nur um Ihre zu finden empty.sty. Um das System vor dieser Arbeit zu schützen, pflegt TeXLive Datenbanken der installierten Dateien und versucht, den Speicherort einer bestimmten Datei in einer dieser Datenbanken nachzuschlagen, anstatt mühsam direkt im Dateisystem zu suchen. Zumindest alle Dateien in $TEXMFMAIN, $TEXMFDISTund $TEXMFLOCALsollten in ihre entsprechenden Datenbanken eingefügt werden. Sie können die Datenbanken aktualisieren, indem Sie texhashoder ausführen mktexlsr.

Angesichts der Tatsache, dass a) es viele Benutzer gibt, für die eine individuelle Datenbank gepflegt werden muss, und b) ein Benutzer normalerweise nicht viele unterschiedliche TeX-Eingabedateien hat, wird TeXlive normalerweise so eingerichtet, dass $TEXMFHOMEim Dateisystem gesucht wird, anstatt über eine Datenbank zu verfügen.

Nachdem Sie die Datei empty.styan den gewünschten Ort kopiert haben, können Sie überprüfen, ob Ihr TeX-System den Stil findet, indem Sie Folgendes ausführen:

kpsewhich tex empty.sty

kpsewhichsollte den richtigen Speicherort Ihrer Datei drucken.

Wenn dies nicht der Fall ist, haben Sie möglicherweise vergessen, die Datenbank zu aktualisieren, oder die Datei am falschen Speicherort abgelegt.

Ein letztes Wort noch. Um etwas Ordnung in das sonst reine Chaos von Tausenden von Dateien zu bringen, die zu einer vollwertigen TeX-Installation gehören, haben sich Betreuer und Distributoren schon vor langer Zeit auf ein einzigartiges Schema geeinigt, das sogenannte TDS, dasTeX-Verzeichnisstruktur. Lesen Sie dieses Handbuch, um einen Eindruck davon zu bekommen, wie Sie Ihre Dateien am gewünschten Ort verteilen. (TIPP: Es sollte sein $TEXMFHOME/tex/latex/telmovianavaz/empty.sty.)

(Ich habe auch den Tippfehler korrigiert, den Christian Hupfer gefunden hat. Danke, Christian!)

%%%
%%% @(#) empty.sty -- emty style example
%%%
%%% Time-stamp:  <2017-01-28 00:45:49 tmjb>
%%%
%%%
%%% @(#)       $Id: $
%%% @(#) $Keywords: emty, style for TeX.SE $
%%%
%%%
%%%           File: /Users/tmjb/Desktop/LaTeX-Test/empty.sty
%%%        Project: TeX.SE
%%%    Description: This is an empty style file, just to answer a
%%%                 question at TeX.SE
%%%        Version: $Revision:  $
%%%         Author: tmjb -- Jan Braun <[email protected]>
%%%     Maintainer: tmjb -- Jan Braun <[email protected]>
%%%  Creation-Date: Sat Jan 28 2017 -- Jan Braun <[email protected]>
%%%      Copyright: (c) 2017 Jan Braun
%%%

%%% ------------------------------------------------------ &Change Log ---
%%%
%%% $Log: $


%%% ============================================================ &Code ===

%%% ---------------------------------------------------- &Package Name ---
% \NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesPackage{empty}[2017/01/28 TeX.SE emty style example V 0.1.1]


%%% ------------------------------------------------------- &Variables ---
%% We need some variables, to store and indicate which options (see
%% later) are choosen ...
\newif\if@draft                 % for Option draft



%%% --------------------------------------------------------- &Options ---
%% Options are definid by the main package or for this special style
%% file.  Just add them in square brackets like this:
%% \usepackage[final,foo,bar]{empty}
%% I advise, to avoid using final and draft in package related
%% options, as the are normally handed over from the main class
%% package options.
%%
%% ............................................................ &draft ...
%% Option final is per default defined by the main class package,
%% unless you specify draft.  This style defines it for continuity
%% reasons.  Draft and final should be  mutualy exclusive
\DeclareOption{draft}{
  \@drafttrue
  \PassOptionsToPackage{draft}{graphicx}
}

%% ............................................................ &final ...
%% Option final is per default defined by the main class package,
%% unless you specifyraft.  This style defines it for continuity
%% reasons.  Draft and final should be mutualy exclusive
\DeclareOption{final}{
  \@draftfalse
  \PassOptionsToPackage{final}{graphicx}
}


%% ....................................................... &Undeclared ...
%% This one is for any option, which was not declared before.
\DeclareOption*{\OptionNotUsed}
%% Set the options.
\ExecuteOptions{draft}
\ProcessOptions\relax



%%% -------------------------------------------------------- &Messages ---
%% Print out some warning messages, while compiling the text.
\if@draft
  \typeout{\MessageBreak empty.sty: WARNING! DRAFT-mode is in use! \MessageBreak }
\fi



%%% -------------------------------------------------------- &Packages ---
%%
%% To get all definitions of this style to work, we need some more
%% packages.  They are automatically loaded here.
%%
\RequirePackage{graphicx}



%%% ------------------------------------------------------ &Definitions ---

%%% ........................................................ &Constants ...
%%% 
%%% Define some consistent strings.
\def\@totalname{Summe}
%%% 
%%% Userspace command, to change the value of the above defined string.
\newcommand{\totalname}[1]{\def\@totalname{#1}}%

%% Define a command, to print nonsense, but only in draft mode.
\if@draft
   \newcommand{\foo}[1][bar]{foo #1 baz}
\else
   \typeout{\MessageBreak empty.sty: WARNING! FINAL-mode is in use! \MessageBreak } 
\fi

\endinput
%%% ============================================================= &EOF ===

%%% Local Variables:
%%% mode: LaTeX
%%% TeX-engine: luatex 
%%% TeX-master: nil
%%% TeX-parse-self: t
%%% TeX-auto-save: t
%%% End:

verwandte Informationen