Crea figuras de documentos con LaTeX
Renderice texto, tablas y gráficos de LaTeX en PNG o SVG usando C++
LaTeX, reconocido como sistema tipográfico, se destaca como una herramienta muy apreciada para elaborar figuras destinadas a publicaciones. Sus características y ventajas lo posicionan como la opción óptima para este tipo de tareas, y he aquí por qué:
- Tipografía de alta calidad: LaTeX proporciona un control preciso sobre las fuentes, el espaciado entre caracteres, los saltos de línea y el diseño general, lo que garantiza que las figuras resultantes alcancen una apariencia de alta calidad.
- Composición tipográfica matemática: Diseñado originalmente para la composición tipográfica matemática, este sistema destaca en el manejo eficaz de ecuaciones y símbolos matemáticos complejos.
- LaTeX se ocupa principalmente de gráficos vectoriales, lo que garantiza que sus figuras mantengan la escalabilidad sin comprometer la calidad. Estos gráficos son independientes de la resolución, lo que resulta especialmente ventajoso para ilustraciones científicas o técnicas.
- Coherencia con el documento: dado que LaTeX es un sistema de preparación de documentos, puede mantener sin esfuerzo un estilo y formato uniformes en todas las figuras, asegurando una apariencia cohesiva en todo el documento.
En resumen, LaTeX ofrece una base confiable para la elaboración de figuras, proporcionando tipografía excepcional, composición matemática, escalabilidad, coherencia en todo el documento, reproducibilidad, control de versiones, integración con paquetes y capacidades de automatización.
Dentro de la solución API Aspose.TeX, entre otras características, se encuentra la capacidad de recortar y renderizar cualquier fragmento de LaTeX que represente una figura en PNG o SVG. A continuación, descubrirá un fragmento de código que demuestra estas operaciones y el resultado se guardará como un archivo PNG. Puede encontrar más ejemplos de código aquí.
Para ejecutar los ejemplos necesitamos:
- La API Aspose.TeX para C++: una API de conversión y procesamiento de documentos rica en funciones, potente y fácil de usar para la plataforma C++.
- Abra el administrador de paquetes NuGet, busque Aspose.TeX e instálelo. También puede utilizar el siguiente comando desde la Consola del Administrador de paquetes:
Package Manager Console Command
PM> Install-Package Aspose.TeX
Pasos para renderizar figuras LaTeX en SVG C++
El fragmento de código demuestra cómo utilizar la API de representación de figuras de Aspose.TeX para generar una imagen de un diagrama matemático. Aquí está el orden:
- Cree una instancia de la clase SvgFigureRendererOptions .
- Especifique la propiedad Preámbulo del objeto de opciones.
- Establezca el factor de escala y el color de fondo.
- Configure un objeto MemoryStream para capturar la salida del registro generada durante el proceso de renderizado. Asigne esta secuencia a la propiedad LogStream. Si la propiedad ShowTerminal está configurada en true, la salida del terminal se mostrará en la consola.
- Utilice un objeto de la clase System.Drawing.SizeF para almacenar las dimensiones de la imagen resultante. Luego cree una secuencia de archivos para guardar la imagen de salida.
- Cree una instancia de la clase SvgFigureRenderer y ejecute el proceso de renderizado invocando el método Render()".
- Recupere el informe de errores y el tamaño de la imagen de salida.
// Create rendering options.
System::SharedPtr<Features::SvgMathRendererOptions> options = System::MakeObject<Features::SvgMathRendererOptions>();
// Specify the preamble.
options->set_Preamble("\usepackage{pict2e}");
// Specify the background color.
options->set_BackgroundColor(System::Drawing::Color:get_White());
// Specify the output stream for the log file.
options.set_LogStream(new System::IO::MemoryStream());
// Specify whether to show the terminal output on the console or not.
options.set_ShowTerminal(true);
// Create the output stream for the formula image.
System::SharedPtr<System::IO::Stream> stream = System::IO::File::Open(
System::IO::Path::Combine(RunExamples::OutputDirectory, u"math-formula.png"), System::IO::FileMode::Create);
// Clearing resources under 'using' statement
System::Details::DisposeGuard<1> __dispose_guard_0({ stream });
try
{
// Run rendering.
System::MakeObject<Features::SvgFigureRenderer>()->Render(
"\setlength{\unitlength}{0.8cm}\r\n" +
"\begin{picture}(6,5)\r\n" +
"\thicklines\r\n" +
"\put(1,0.5){\line(2,1){3}} \put(4,2){\line(-2,1){2}} \put(2,3){\line(-2,-5){1}}\r\n" +
"\put(0.7,0.3){$A$} \put(4.05,1.9){$B$} \put(1.7,2.95){$C$}\r\n" +
"\put(3.1,2.5){$a$} \put(1.3,1.7){$b$} \put(2.5,1.05){$c$}\r\n" +
"\put(0.3,4){$F=\sqrt{s(s-a)(s-b)(s-c)}$} \put(3.5,0.4){$\displaystyle s:=\frac{a+b+c}{2}$}\r\n" +
"\end{picture}",
stream, options);
}
catch(...)
{
__dispose_guard_0.SetCurrentException(std::current_exception());
}
// Show other results.
System::Console::get_Out()->WriteLine(options->get_ErrorReport());
System::Console::get_Out()->WriteLine();
System::Console::get_Out()->WriteLine(System::String(u"Size: ") + size);
LaTeX Qué es LaTeX Formato de archivo
LaTeX es un formato TeX si se dice brevemente. Los archivos LaTeX son archivos de texto sin formato en codificación ASCII escritos en su propio lenguaje de marcado. Pueden requerir la inclusión de otros datos como imágenes y/u otros archivos LaTeX. LaTeX puede proporcionarle un montón de funciones avanzadas para crear tablas, incluir gráficos, escribir ecuaciones matemáticas y diferentes fórmulas, etc. Todas estas funciones están disponibles en los llamados paquetes.