Glossários e mylatexformat incompatíveis?

Glossários e mylatexformat incompatíveis?

Estou tentando acelerar meu grande preâmbulo com muitos pacotes usando mylatexformat. E tenho muitos erros, a maioria dos quais vem do pacote de glossários.

Meu 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}

O comando \endofdump proíbe o uso "normal" de Latex, portanto deve ser comentado para execuções normais. Mas é necessário para o mylatexformat que deve ser iniciado a partir do terminal (aberto na mesma pasta do arquivo *.tex). Digitei o comando apresentado no manual do makeformat no terminal:

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

onde mlt.tex é o nome do arquivo *.tex e também o nome do suposto arquivo *.fmt (-jobname="mlt"). Eu tenho o arquivo *.fmt mlt.fmt, mas quando tentei incluí-lo (por %&mlt na primeira linha de mlt.tex), não obtive resultado (e muitos erros).

Eu também tentei um exemplo sem glossários (ou seja, muitos outros pacotes foram incluídos, mas não este), e foi bem sucedido.

Responder1

deixe-me saber como mostrar isso de uma maneira mais apresentável.

Eu também adoro combos rápidos e eficientes. A combinação com mylatexformat é complicada, mas ainda assim incrível. A documentação do pacote parece uma cópia terrível do mylatex e precisa ser atualizada.

Vejo o pacote glossários (com o comando makeglossaries) como uma construção dinâmica. Então sigo as instruções em: http://www.howtotex.com/tips-tricks/faster-latex-part-iv-use-a-precompiled-preamble/ Eles recomendam que pacotes como minitoc sejam localizados após o comando\endofdump. Para mim será mais fácil dividir o trabalho em dois arquivos separados. Não gosto da ideia de des/comentar uma linha e compilar de forma diferente o mesmo arquivo. O primeiro arquivo deve ser pré-compilado com commnad:

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

Este nome tem 3 aspassomente seo documento tem um espaço. (Mas às vezes funciona para sistemas operacionais) O arquivo example1.tex tem o seguinte

\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}

Agora, o segundo arquivo que compila as informações possui o combo Glossários APÓS A\endofdump. O segundo arquivo que só deve ser compilado com comandos comuns, digamos pdflatex, mas você pode tentar makeglossaries para que os glossários funcionem. [Eu não tentei com um makeindex ou 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 exemplo de arquivo de glossários que encontrei em algum lugar em tex.stackexchange

Como uso hyperref, todas as chamadas de glossários devem ter um hiperlink. Você pode remover o hiperref, mas poderá perder todos os outros hiperlinks em todo o documento.

Execute uma vez, compile duas vezes e reinicie três vezes. Feito

informação relacionada