2026-07-18 18:48:23 +02:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include <string>
|
|
|
|
|
#include <vector>
|
2026-07-22 18:17:43 +02:00
|
|
|
#include "font_store.h"
|
2026-07-18 18:48:23 +02:00
|
|
|
|
|
|
|
|
namespace latex {
|
|
|
|
|
|
2026-08-25 23:30:55 +02:00
|
|
|
// A fontspec declaration: "\<command>[Path=...,Scale=...]{<regular>}".
|
|
|
|
|
// The command is "setmainfont"/"setsansfont"/"setmonofont" for the
|
|
|
|
|
// document's three role typefaces, and "newfontfamily\ktface<n>" for a
|
|
|
|
|
// typeface a @typeface klammer asked for (a switch command rather than a
|
|
|
|
|
// permanent change).
|
|
|
|
|
std::string font_command(const std::string& command, const Resolved_font& font,
|
|
|
|
|
float scale);
|
|
|
|
|
|
2026-07-30 23:50:07 +02:00
|
|
|
std::string page(const std::string& structure,
|
|
|
|
|
const std::string& title,
|
|
|
|
|
const std::string& subtitle,
|
|
|
|
|
const std::string& authors,
|
|
|
|
|
const std::string& date,
|
|
|
|
|
const std::string& version,
|
|
|
|
|
const std::string& copyright,
|
|
|
|
|
const std::string& bottom,
|
|
|
|
|
const std::string& prolog,
|
|
|
|
|
const std::string& paper_size,
|
2026-07-18 18:48:23 +02:00
|
|
|
bool two_column,
|
|
|
|
|
float leading,
|
|
|
|
|
int pointsize,
|
|
|
|
|
bool ragged_right,
|
2026-07-30 23:50:07 +02:00
|
|
|
const std::string& cover,
|
2026-07-18 18:48:23 +02:00
|
|
|
bool landscape,
|
2026-07-30 23:50:07 +02:00
|
|
|
const std::string& body,
|
2026-08-25 23:30:55 +02:00
|
|
|
Resolved_font serif_typeface = {},
|
|
|
|
|
Resolved_font sans_typeface = {},
|
|
|
|
|
Resolved_font mono_typeface = {},
|
|
|
|
|
float text_scale = 1.0f);
|
2026-07-18 18:48:23 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void check_for_xelatex();
|
|
|
|
|
std::vector<std::string> find_latex_error_lines(const std::string& log_content);
|