여러 문서에서 동일한 템플릿 사용

여러 문서에서 동일한 템플릿 사용

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 입력이 저장될 수 있는 파일 시스템의 세 위치를 구분합니다.

  1. 배포자가 모든 파일을 수집하는 기본 디렉터리를 배포에 넣습니다. TeXLive는 이 위치에 대한 경로를 또는 $TEXMFMAIN에 저장합니다 $TEXMFDIST.
  2. 두 번째 위치는 사이트 전체 TeXLive 설치 관리자 전용입니다. 이 위치에 관리자는 회사와 관련된 템플릿, 스타일, 글꼴 등을 저장할 수 있습니다. TeXLive는 위치를 $TEXMFLOCAL.
  3. 마지막으로, 개별 사용자 전용 위치가 있습니다. 이 위치에 내 empty.sty. :-) TeXlive는 경로를 $TEXMFHOME.

이 세 위치는 옛날(tm)에 설립되었으며 네트워크로 연결된 UNIX 시스템에서 큰 영향을 받았습니다. 그곳에서는 전체 회사/대학/... 수백 대의 시스템에 대해 하나의 TeX 설치를 갖는 것이 일반적이었습니다. 그리고 수천 명의 가능한 사용자.

요즘 개인 PC에서는 시스템 관리자가 사이트 전체에 설치하는 것과 사용자의 개인 파일을 구별할 필요가 없습니다. 대부분의 경우 사용자는 시스템 관리자와 동일하기 때문입니다.

그럼에도 불구하고, 아직 언급할 가치가 있는 것이 하나 있습니다. LaTeX는 많은 파일을 많이 사용합니다. LaTeX가 파일 시스템에서 직접 검색하여 empty.sty. 이러한 노력으로부터 시스템을 보호하기 위해 TeXLive는 설치된 파일의 데이터베이스를 유지 관리하고 파일 시스템에서 직접 검색하는 대신 이러한 데이터베이스 중 하나에서 특정 파일의 위치를 ​​찾으려고 시도합니다. 최소한 $TEXMFMAIN, $TEXMFDIST및 의 모든 파일은 $TEXMFLOCAL해당 데이터베이스에 삽입되어야 합니다. texhash또는 를 실행하여 데이터베이스를 업데이트할 수 있습니다 mktexlsr.

a) 개별 데이터베이스를 유지 관리해야 하는 사용자가 많고 b) 일반적으로 사용자가 다양한 TeX 입력 파일을 많이 갖고 있지 않다는 사실을 고려하여 일반적으로 TeXlive를 설정하여 검색합니다 $TEXMFHOME. 데이터베이스가 아닌 파일 시스템.

아아, 원하는 위치에 복사한 후 empty.styTeX 시스템이 다음을 실행하여 스타일을 찾을 수 있는지 확인할 수 있습니다.

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:

관련 정보