¿Glosarios y formato mylatex son incompatibles?

¿Glosarios y formato mylatex son incompatibles?

Estoy intentando acelerar mi gran preámbulo con muchos paquetes usando mylatexformat. Y tengo muchos errores, la mayoría de los cuales provienen del paquete de glosarios.

Mi MWE:

\documentclass[11pt,onecolumn,twoside,draft,titlepage,fleqn,a4paper,openright]{book} 
\usepackage{titlesec}
\usepackage{longtable}
\usepackage{makeidx}
\usepackage[nonumberlist, acronym, toc, section, shortcuts, nopostdot, nogroupskip]{glossaries}
\renewcommand*{\arraystretch}{1.3}  % sets the line indent in glossaries
\setlength{\glsdescwidth}{12.5cm}   
\setlength\LTleft{0pt}
\endofdump

\newglossary[slg]{symbols}{syi}{syg}{Nomenclature}
\newglossary[ilg]{indices}{iyi}{iyg}{List of indices}
\makeglossaries

\newacronym{ECD}{ECD}{equivalent circuit diagram}
\newacronym{RES}{RES}{renewable energy source}
\newglossaryentry{Rx1}
{
  name={\ensuremath{R_{x1}}},
  description={Equivalent series resistance},
  sort=Rx1, type=symbols
}
\newglossaryentry{ref}
{
  name={*},
  description={Indicates reference value},
  sort=ref, type=indices
}

\begin{document}
\glsaddall                                
\printglossary[type=\acronymtype, style=long, title=List of Abbreviations and Acronyms]
\printglossary[type=symbols, style=long, title=Nomenclature]
\printglossary[type=indices, style=long, title=List of indices]

\section*{Sample}
\begin{longtable}{ll}
Some & Text
\end{longtable}
\gls{ref}, \gls{ECD}, \gls{Rx1}
\end{document}

El comando \endofdump prohíbe el uso "normal" de Latex, por lo que debe comentarse para ejecuciones normales. Pero es necesario para mylatexformat que debe iniciarse desde la terminal (abierto en la misma carpeta que el archivo *.tex). Escribí el comando presentado en el manual de makeformat en la terminal:

etex -initialize -save-size=20000 -stack-size=20000 -jobname="mlt" "&pdflatex" mylatexformat.ltx """mlt.tex"""

donde mlt.tex es el nombre del archivo *.tex y también el nombre del supuesto archivo *.fmt (-jobname="mlt"). Tengo el archivo *.fmt mlt.fmt, pero cuando intenté incluirlo (por %&mlt en la primera línea de mlt.tex), no obtuve ningún resultado (y muchos errores).

También probé un ejemplo de muestra sin glosarios (es decir, se incluyeron muchos otros paquetes, pero no este) y fue exitoso.

Respuesta1

déjame saber cómo mostrar esto de una manera más presentable.

También me encantan los combos rápidos y eficientes. La combinación con mylatexformat es complicada pero sorprendente. La documentación del paquete parece una copia terrible de mylatex y necesita actualización.

Veo el paquete de glosarios (con el comando makeglossaries) como una compilación dinámica. Entonces sigo las instrucciones en: http://www.howtotex.com/tips-tricks/faster-latex-part-iv-use-a-precompiled-preamble/ Recomiendan que paquetes como minitoc se ubiquen después del comando\endofdump. Para mí será más fácil dividir el trabajo en dos archivos separados. No me gusta la idea de descomentar/descomentar una línea y compilar de manera diferente el mismo archivo. El primer archivo debe precompilarse con el comando:

pdftex -ini -jobname="fastformat" "&pdflatex" mylatexformat.ltx """example with a space.tex"""

Este nombre tiene 3 comillas.sólo siel documento tiene un espacio. (Pero a veces funciona para sistemas OS) El archivo example1.tex tiene lo siguiente

\documentclass{article}
% Add here more pacakges
\usepackage{hyperref}
% add here those packages after hyperref

% 'saves' everything above into one precompiled preamble
\endofdump
%% or
%\csname endofdump\endcsname

% No glossaries needed here. You could though. They shouldn't be read

\begin{document}
\noindent
Hola.
This shouldn't be read either on the precompilation
It does work if you comment the endofdump command 
and compile normally with pdflatex
Done
\end{document}

Ahora, el segundo archivo que compila la información tiene el combo Glosarios DESPUÉS DE UN\endofdump. El segundo archivo que sólo debe compilarse con los comandos comunes, digamos pdflatex, pero es posible que desee probar makeglossaries para que funcionen los glosarios. [No lo he probado con makeindex o xindy.]

%&fastformat
% the name above should match the name on the precompilation.

\endofdump
%add packages taht have problem with mylatexformat
%\usepackage{minitoc}

\usepackage[acronym]{glossaries}
\makeglossaries
\input{dictionary} % dictionary.tex is the file with glossary and acronyms

\begin{document}
\noindent
First use \gls{api}\    subsequent \gls{api}
\newpage


\printglossary[type=\acronymtype]
%%% \newpage just to demonstrate that links are correct
\newpage
\printglossary[type=main]

\end{document}

Este último ejemplo de archivo de glosarios lo encontré en algún lugar de tex.stackexchange

Como uso hiperreferencia, todas las llamadas a glosarios deben tener un hipervínculo. Puede eliminar la hiperreferencia, pero es posible que pierda todos los demás hipervínculos en todo el documento.

Ejecute una vez, compile dos veces y reinicie tres veces. Hecho

información relacionada