Executando verificação de segurança...
1

Compilador LaTeX online

Atualmente, estou desenvolvendo um projeto de um compilador LaTeX na nuvem. Alguém aqui já trabalhou em algo similar e poderia compartilhar a experiência?

Na primeira versão, utilizei Node.js rodando em um contêiner Docker, que implantei no Google Cloud Run. No entanto, estou enfrentando um problema: a compilação de documentos é muito lenta, levando cerca de 1 minuto para concluir.

Gostaria de saber quais tecnologias ou abordagens vocês recomendariam para otimizar o desempenho desse compilador e reduzir o tempo de compilação. Alguma sugestão de melhorias ou alternativas?

Carregando publicação patrocinada...
2

josevangoes já ouvi falar do Overleaf? Eu não tenho certeza o que eles rodam no backend. Dependendo do fonte LaTeX que está escrevendo, a compilação pode exceder o tempo máximo para uma conta gratuita. Não entendo tão bem quanto os caras do forum do LaTeX, mas deixo alguns comentários caso seja úteis:

LaTeX tem a vantagem de você poder compilar o documento a partir de um fonte criado em um editor de texto simples. Caso você explore recursos que envolvam uso de "bibliotecas" externas, o pdflatex, por exemplo, vai precisar baixar tais dependendências da nuvem para então poder concluir a compilação. Textos com referências cruzadas, levam um pouco mais de tempo por causa de rodadas adicionais para resolvê-las.

Renderizar um texto de uma página web usando o MathJax é diferente de você compilar um texto fonte LaTeX na linha de comando ou usando alguma IDE.

1

Para dar uma visão geral do meu projeto, segue o link de um vídeo onde apresento como ele funciona por dentro:

YouTube: Minha Aplicação

Hoje fiz uma reimplantação e, para minha surpresa, o tempo de compilação foi reduzido para menos de 5 segundos. Vou realizar mais testes para confirmar se esse resultado se mantém.

No futuro, compartilharei neste mesmo tópico uma aplicação para que todos possam testar meu compilador LaTeX.

1

josevangoes, que ideia legal você está desenvolvendo! Isso me lembra aquelas interfaces para receber os manuscritos em periódicos internacionais.

Eu ia te perguntar pelos logs da compilação, mas como mostrou o fonte do seu template no vídeo, foi fácil fazer uma cópia, mesmo que parcial, para testar se compilava sem nenhum warning. Para resolver alguns, comentei um setpackage, adicionei um setlength, modifiquei a largura da tabela para \begin{tabular}{c|p{15.5cm}|} como pode ver nos comentários Extras:

Template parcial
\documentclass[a4paper,12pt]{article}

\usepackage[utf8]{inputenc}
\usepackage{amsmath}
% Ajustar margens
\usepackage[top=2cm,
            bottom=2cm,
            left=2cm,
            right=2cm]{geometry}
\usepackage{graphicx}
\usepackage{fancyhdr}

% ------------------------------------------------------------------------------
% Extra: Não entendi porque usou o sectsty
%\usepackage{sectsty}
% ------------------------------------------------------------------------------

% Adiciona espaçamento entre parágrafos
\usepackage{parskip}
% Pacote para personlização de tableas
\usepackage{array}

% ------------------------------------------------------------------------------
% Extra: Para remover o warning 
% 		Package fancyhdr Warning: \headheight is too small (12.0pt): 
% 		(fancyhdr)                Make it at least 32.80273pt, for example:
% 		(fancyhdr)                \setlength{\headheight}{32.80273pt}.
% 		(fancyhdr)                You might also make \topmargin smaller to
%                                         compensate:
% 		(fancyhdr)                \addtolength{\topmargin}{-20.80273pt}.
\setlength{\headheight}{32.80273pt}
% ------------------------------------------------------------------------------

% Ajusta o espaçamento entre parágrafos
% Ajuste conforme necessário
\setlength{\parskip}{0.5em}
% Remove o recuo dos parágrafos
\setlength{\parindent}{1pt}

\pagestyle{fancy}
\fancyhf{}

% Cabeçalho personalizado com caminho absoluto para a imagem no diretório
% temporário
\fancyhead[L]{\textbf{\LARGE{Folha de Redação}}}
\fancyhead[R]{\includegraphics[width=4cm, height=1cm]{/tmp/latex-temp/logo.png}}

\begin{document}
	% Ajuste o valor para mover o "Tema" para baixo
	\vspace*{0.5em}
	
	\noindent
	
	\section*{Temas Relevantes para ...}
	
	\begin{enumerate}
		\item \textbf{A importância da ...:} Discutir como ...
		
		\item \textbf{O Desafio da...: }
		
		\item \textbf{Educação e ...:}
		
		\item \textbf{A Inter...}
		
		\item \textbf{O papel}
		
		\item \textbf{A Valorização}
		
		\item \textbf{O Desafio}
		
		\item \textbf{Educação}
		
		\item \textbf{A Influência}
		
		\item \textbf{O impacto}
	\end{enumerate}
	
	\newpage
	
	\textbf{Faça um texto}
	
	% Espaçamento entre o "Tema" e a tabela
	\vspace{0.5cm}
	
	% --------------------------------------------------------------------------
	% Extra: Comprimento da coluna 1/2 cm menor para caber na folha A4
	% --------------------------------------------------------------------------
	%Tabela para as linhas da redação com a estrutura normal
	\begin{tabular}{c|p{15.5cm}|}
		\hline
		1 &  \\ \hline
		2 &  \\ \hline
		3 &  \\ \hline
		4 &  \\ \hline
		5 &  \\ \hline
		6 &  \\ \hline
		7 &  \\ \hline
		8 &  \\ \hline
		9 &  \\ \hline
		10 &  \\ \hline
		11 &  \\ \hline
		12 &  \\ \hline
		13 &  \\ \hline
		14 &  \\ \hline
		15 &  \\ \hline
		16 &  \\ \hline
		17 &  \\ \hline
		18 &  \\ \hline
		19 &  \\ \hline
		20 &  \\ \hline
		21 &  \\ \hline
		22 &  \\ \hline
		23 &  \\ \hline
		24 &  \\ \hline
		25 &  \\ \hline
		26 &  \\ \hline
		27 &  \\ \hline
		28 &  \\ \hline
		29 &  \\ \hline
		30 &  \\ \hline
	\end{tabular}
	
\end{document}

Você pretende incluir no template o número de cada página, tipo, numeração corrida (1, 2, 3, ..., n) ou composta (1-n, 2-n, 3-n, ..., n-n)?

Valeu por compartilhar as dicas no vídeo! Se desejar que eu remova algo, deixe um comentário! Sucesso para você com sua ideia!

0
1
0
0