Utilice la misma plantilla en varios documentos

Utilice la misma plantilla en varios documentos

Hice un diseño en LaTeX (geometría, márgenes, encabezados, etc.) y necesito tener varios documentos diferentes usando ese mismo diseño. Entonces me pregunto si en lugar de copiar y pegar la 'parte de diseño' del código podría crear algo así como una plantilla y usarla en todos los documentos que tengo.

He buscado por un tiempo pero no pude encontrar nada útil al respecto. ¿Es posible? Y, si es así, ¿cómo se puede hacer?

Respuesta1

Hay una buena introducción.LaTeX para escritores de clases y paquetescon mucha información sobre ese tema.

Como se indica en los comentarios, puedes escribir tu propio archivo de estilo o incluso clase.

Solo puedo adivinar cuál sería una opción apropiada para usted, pero supongo que está apuntando a su propio archivo de estilo.

Este es un estilo vacío más o menos inútil. Siéntete libre de llenarlo con tu preámbulo. Por supuesto, no necesita esos comentarios extensos en la parte superior de su archivo, pero recuerde: es mejor documentar sus ideas que...

Este estilo debe guardarse como empty.sty. Por supuesto, deberías darle a tu estilo un nombre más literal. Pero si cambia el nombre del archivo, asegúrese de cambiar este nombre también en el archivo, especialmente en el comando \ProvidesPackage. De lo contrario, LaTeX arrojará un error.

Definí una nueva variable booleana @draft. Se configura usando la opción de estilo drafto final: \usepackage[draft]{empty}definiría el modo borrador.

Esta opción se entrega al graphicxpaquete, que se carga con este estilo. (En tu caso: geometryy así sucesivamente.) También ten cuidado: en lugar de llamar \usepackage, tienes que decir \RequirePackage.

También puedes definir algunos comandos e incluso usar la variable booleana definida, como he mostrado al final de este archivo.

EDITAR: una última palabra sobre dónde almacenar el archivo. En general, sería una buena idea almacenar en algún lugar donde LaTeX busque y encuentre archivos tex. Mientras tanto, prefiero TeXLive, por lo que mis sugerencias están relacionadas con TeXLive. TeXLive distingue entre tres ubicaciones en su sistema de archivos, donde se pueden almacenar las entradas TeX y LaTeX:

  1. El directorio principal, donde los distribuidores recopilan todos los archivos, lo colocan en su distribución. TeXLive almacena la ruta a esta ubicación en $TEXMFMAINformato $TEXMFDIST.
  2. Hay una segunda ubicación, que está dedicada al administrador de una instalación TeXLive en todo el sitio. En esta ubicación el administrador puede almacenar las plantillas, estilos, fuentes y demás relacionados con su empresa. TeXLive almacena la ubicación en formato $TEXMFLOCAL.
  3. Finalmente, hay una ubicación dedicada al usuario individual. En esta ubicación USTED puede almacenar sus extensiones privadas, incluida mi empty.sty. :-) TeXlive almacena la ruta en formato $TEXMFHOME.

Estas tres ubicaciones se crearon en aquellos viejos tiempos (tm) y están fuertemente influenciadas por los sistemas UNIX conectados en red, donde era bastante habitual tener una instalación TeX para toda la empresa/universidad/... con cientos de máquinas. y miles de posibles usuarios.

Hoy en día, con nuestras PC personales, no existe una necesidad real de distinguir entre la instalación en todo el sitio por parte del administrador del sistema y los archivos privados del usuario, ya que en la mayoría de los casos, el usuario es idéntico al administrador del sistema.

Sin embargo, todavía hay una cosa que vale la pena mencionar. LaTeX hace un uso intensivo de muchos archivos. Aumentaría dramáticamente la carga del sistema, y ​​especialmente la carga de IO, si LaTeX buscara directamente en el sistema de archivos y, por lo tanto, recorrera recursivamente los miles de directorios una y otra vez, solo para encontrar su archivo empty.sty. Para proteger el sistema de este trabajo, TeXLive mantiene bases de datos de archivos instalados e intenta buscar la ubicación de un determinado archivo en una de estas bases de datos en lugar de buscar dolorosamente directamente en el sistema de archivos. Al menos todos los archivos en $TEXMFMAIN, $TEXMFDISTy $TEXMFLOCALdeben insertarse en sus bases de datos correspondientes. Puede actualizar las bases de datos ejecutando texhasho mktexlsr.

Dado el hecho de que a) hay muchos usuarios para los cuales se tuvo que mantener una base de datos individual, y b) un usuario generalmente no tiene muchos archivos de entrada TeX diferentes, generalmente se configura TeXlive para $TEXMFHOMEbuscar el sistema de archivos en lugar de tener una base de datos.

Por desgracia, después de haber copiado el estilo empty.styen la ubicación deseada, puede verificar si su sistema TeX encontrará el estilo ejecutando

kpsewhich tex empty.sty

kpsewhichdebe imprimir la ubicación correcta de su archivo.

Si no es así, eventualmente se olvidó de actualizar la base de datos o colocó el archivo en la ubicación incorrecta.

Una última palabra final. Para mantener algo de orden en el caos de miles de archivos que pertenecen a una instalación TeX completa, los mantenedores y distribuidores acordaron hace mucho tiempo un esquema único, el llamado TDS, elEstructura del directorio TeX. Lea ese manual para tener una idea de cómo distribuir sus archivos en la ubicación deseada. (PISTA: debería serlo $TEXMFHOME/tex/latex/telmovianavaz/empty.sty.)

(También corregí el error tipográfico que encontró Christian Hupfer. ¡Gracias 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:

información relacionada