複数のドキュメントで同じテンプレートを使用する

複数のドキュメントで同じテンプレートを使用する

LaTeX でレイアウト (ジオメトリ、余白、ヘッダーなど) を作成しましたが、同じレイアウトを使用して複数の異なるドキュメントを作成する必要があります。コードの「レイアウト部分」をコピーして貼り付ける代わりに、テンプレートのようなものを作成し、それをすべてのドキュメントで使用できるのではないかと考えています。

しばらく検索してみましたが、役に立つ情報は見つかりませんでした。それは可能でしょうか? もし可能であれば、どうすればできるでしょうか?

答え1

良い紹介がありますクラスおよびパッケージ作成者向けの LaTeXそのテーマに関する多くの情報が含まれています。

コメントに記載されているように、独自のスタイル ファイルやクラスを作成することもできます。

あなたにとって適切な選択が何であるかは推測することしかできませんが、あなたはあなた自身のスタイル ファイルをターゲットにしているのだと思います。

これは、ほとんど役に立たない空っぽのスタイルです。自由に前文で埋めてください。もちろん、ファイルの先頭に長いコメントは必要ありませんが、覚えておいてください。アイデアを文書化する方が、...

このスタイルは として保存する必要がありますempty.sty。もちろん、スタイルにはより正確な名前を付ける必要があります。ただし、ファイル名を変更する場合は、ファイル内、特にコマンド 内のこの名前も必ず変更してください\ProvidesPackage。そうしないと、LaTeX でエラーが発生します。

新しいブール変数を定義しました@draft。これは、スタイル オプションdraftまたはfinal:を使用して設定され\usepackage[draft]{empty}、ドラフト モードを定義します。

graphicxこのオプションは、このスタイルでロードされる -packageに渡されます。(あなたの場合は、geometryなどです。) また、注意が必要です: を呼び出す代わりに\usepackage、 と言う必要があります\RequirePackage

このファイルの最後に示したように、いくつかのコマンドを定義し、定義されたブール変数を使用することもできます。

編集: 最後に、ファイルの保存場所について。一般的には、LaTeX が tex ファイルを検索して見つける場所に保存するのが賢明です。一方、私は TeXLive を好んでいるので、TeXLive に関連する提案をします。TeXLive は、ファイルシステム上で TeX および LaTeX 入力を保存できる 3 つの場所を区別します。

  1. ディストリビューターが配布物に入れるすべてのファイルを収集するメイン ディレクトリ。TeXLive は、この場所へのパスを または に保存し$TEXMFMAINます$TEXMFDIST
  2. 2 番目の場所は、サイト全体の TeXLive インストールの管理者専用です。この場所には、管理者が会社に関連するテンプレート、スタイル、フォントなどを保存できます。TeXLive は、この場所を に保存します$TEXMFLOCAL
  3. 最後に、個々のユーザー専用の場所があります。この場所には、私の を含むプライベート拡張機能を保存できますempty.sty。:-) TeXlive は にパスを保存します$TEXMFHOME

これら 3 つの場所は古き良き時代 (tm) に設立されたもので、数百台のマシンと数千人のユーザーを抱える会社/大学/... 全体で 1 つの TeX インストールを使用するのが一般的だったネットワーク化された UNIX システムの影響を強く受けています。

最近の個人用 PC では、ほとんどの場合、ユーザーとシステム管理者は同一であるため、システム管理者によるサイト全体のインストールとユーザーの個人ファイルを区別する必要は実際にはありません。

それでも、言及する価値のあることが 1 つあります。LaTeX は大量のファイルを多用します。LaTeX がファイルシステムを直接検索し、何千ものディレクトリを何度も再帰的にたどって を探すと、システム、特に IO の負荷が劇的に増加しますempty.sty。この手間からシステムを保護するために、TeXLive はインストールされたファイルのデータベースを保持し、ファイルシステムを直接検索する手間を省いて、これらのデータベースの 1 つで特定のファイルの場所を検索しようとします。少なくとも、、、およびのすべてのファイルは、対応$TEXMFMAINするデータベースに挿入する必要があります。またはを実行して、データベースを更新できます。$TEXMFDIST$TEXMFLOCALtexhashmktexlsr

a) 多数のユーザーがおり、各ユーザーごとに個別のデータベースを維持する必要があり、b) 通常、ユーザーは多数の異なる TeX 入力ファイルを持っていないという事実を考慮すると、TeXlive は通常、$TEXMFHOMEデータベースを持つ代わりにファイルシステムを検索するように設定されます。

残念ながら、目的の場所にコピーした後empty.sty、TeXシステムがスタイルを見つけるかどうかは、次のコマンドを実行して確認できます。

kpsewhich tex empty.sty

kpsewhichファイルの正しい場所が印刷されるはずです。

そうでない場合は、データベースの更新を忘れたか、ファイルを間違った場所に置いたことになります。

最後に一言。TeXのインストールに付随する何千ものファイルの混沌とし​​た状態をある程度整えるために、保守管理者と配布者はずっと以前から独自のスキーム、いわゆるTDSに合意してきました。TeX ディレクトリ構造. マニュアルを読んで、ファイルを目的の場所に展開する方法を理解してください。(ヒント: . のはずです$TEXMFHOME/tex/latex/telmovianavaz/empty.sty。)

(Christian Hupfer が見つけたタイプミスも修正しました。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:

関連情報