"use strict";
var __assign = (this && this.__assign) || function () {
    __assign = Object.assign || function(t) {
        for (var s, i = 1, n = arguments.length; i < n; i++) {
            s = arguments[i];
            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
                t[p] = s[p];
        }
        return t;
    };
    return __assign.apply(this, arguments);
};
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
    return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
};
var __generator = (this && this.__generator) || function (thisArg, body) {
    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
    return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
    function verb(n) { return function (v) { return step([n, v]); }; }
    function step(op) {
        if (f) throw new TypeError("Generator is already executing.");
        while (_) try {
            if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
            if (y = 0, t) op = [op[0] & 2, t.value];
            switch (op[0]) {
                case 0: case 1: t = op; break;
                case 4: _.label++; return { value: op[1], done: false };
                case 5: _.label++; y = op[1]; op = [0]; continue;
                case 7: op = _.ops.pop(); _.trys.pop(); continue;
                default:
                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
                    if (t[2]) _.ops.pop();
                    _.trys.pop(); continue;
            }
            op = body.call(thisArg, _);
        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
    }
};
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getServerSideProps = void 0;
var jsx_runtime_1 = require("react/jsx-runtime");
var antd_1 = require("antd");
var footer_1 = __importDefault(require("components/landing/footer"));
var A_1 = __importDefault(require("components/misc/A"));
var header_1 = __importDefault(require("components/landing/header"));
var content_1 = __importDefault(require("components/landing/content"));
var with_customize_1 = __importDefault(require("lib/with-customize"));
var customize_1 = require("lib/customize");
var sign_in_1 = __importDefault(require("components/landing/sign-in"));
var info_1 = __importDefault(require("components/landing/info"));
var pitch_1 = __importDefault(require("components/landing/pitch"));
var publishing_1 = __importDefault(require("components/landing/publishing"));
var head_1 = __importDefault(require("components/landing/head"));
var latex_1 = __importDefault(require("components/landing/latex"));
var backups_1 = __importDefault(require("components/landing/backups"));
var collaboration_1 = __importDefault(require("components/landing/collaboration"));
var code_1 = __importDefault(require("components/landing/code"));
var compare_1 = __importDefault(require("components/landing/compare"));
var icon_1 = require("@cocalc/frontend/components/icon");
var latex_logo_svg_1 = __importDefault(require("public/features/latex-logo.svg"));
var cocalc_latex_editor_2019_png_1 = __importDefault(require("public/features/cocalc-latex-editor-2019.png"));
var latex_custom_command_02_png_1 = __importDefault(require("public/features/latex-custom-command-02.png"));
var cocalc_sagetex_png_1 = __importDefault(require("public/features/cocalc-sagetex.png"));
var cocalc_pythontex_png_1 = __importDefault(require("public/features/cocalc-pythontex.png"));
var latex_editor_rnw_01_png_1 = __importDefault(require("public/features/latex-editor-rnw-01.png"));
var latex_editor_timetravel_01_png_1 = __importDefault(require("public/features/latex-editor-timetravel-01.png"));
var cocalc_latex_side_chat_v2_png_1 = __importDefault(require("public/features/cocalc-latex-side-chat-v2.png"));
var cocalc_latex_concurrent_editing_png_1 = __importDefault(require("public/features/cocalc-latex-concurrent-editing.png"));
function LatexEditor(_a) {
    var customize = _a.customize;
    return ((0, jsx_runtime_1.jsxs)(customize_1.Customize, __assign({ value: customize }, { children: [(0, jsx_runtime_1.jsx)(head_1.default, { title: "Online LaTeX Editor" }), (0, jsx_runtime_1.jsxs)(antd_1.Layout, { children: [(0, jsx_runtime_1.jsx)(header_1.default, { page: "features", subPage: "latex-editor" }), (0, jsx_runtime_1.jsxs)(antd_1.Layout.Content, { children: [(0, jsx_runtime_1.jsx)("div", __assign({ style: { backgroundColor: "#c7d9f5" } }, { children: (0, jsx_runtime_1.jsx)(content_1.default, { startup: (0, jsx_runtime_1.jsx)(latex_1.default, {}), logo: latex_logo_svg_1.default, title: "Online LaTeX Editor", subtitle: "Focus on writing LaTeX.  CoCalc takes care of everything else.", image: cocalc_latex_editor_2019_png_1.default }) })), (0, jsx_runtime_1.jsx)(pitch_1.default, { col1: (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsxs)("h2", { children: ["No software install required: ", (0, jsx_runtime_1.jsx)("small", { children: "100% online" })] }), (0, jsx_runtime_1.jsxs)("p", { children: ["CoCalc", "'", "s", " ", (0, jsx_runtime_1.jsxs)(A_1.default, __assign({ href: "https://doc.cocalc.com/latex.html" }, { children: [(0, jsx_runtime_1.jsx)(latex_1.default, {}), " editor"] })), " ", "supports"] }), (0, jsx_runtime_1.jsxs)("ul", { children: [(0, jsx_runtime_1.jsxs)("li", { children: [(0, jsx_runtime_1.jsx)("strong", { children: "side-by-side preview" }), " with", " ", (0, jsx_runtime_1.jsx)("strong", { children: "forward and inverse search" }), ","] }), (0, jsx_runtime_1.jsx)("li", { children: "compiles upon saving and marks errors in the source file," }), (0, jsx_runtime_1.jsxs)("li", { children: ["periodically ", (0, jsx_runtime_1.jsx)("a", __assign({ href: "#a-backups" }, { children: "backups" })), " all your files,"] }), (0, jsx_runtime_1.jsxs)("li", { children: [(0, jsx_runtime_1.jsx)("strong", { children: (0, jsx_runtime_1.jsx)("a", __assign({ href: "#a-calculations" }, { children: "runs embedded calculations" })) }), " ", "right inside your document,"] }), (0, jsx_runtime_1.jsxs)("li", { children: [(0, jsx_runtime_1.jsx)("strong", { children: (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "https://doc.cocalc.com/latex-features.html#latex-multi-file-support" }, { children: "multi-file support" })) }), " ", "that discovers included files automatically, and"] }), (0, jsx_runtime_1.jsxs)("li", { children: ["every", " ", (0, jsx_runtime_1.jsx)("strong", { children: (0, jsx_runtime_1.jsx)("a", __assign({ href: "#a-timetravel" }, { children: "change is recorded" })) }), " ", "while you type."] })] })] }), col2: (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsxs)("h2", { children: ["Working with ", (0, jsx_runtime_1.jsx)(latex_1.default, {}), " made easy"] }), (0, jsx_runtime_1.jsxs)("dl", { children: [(0, jsx_runtime_1.jsx)("dt", { children: "Tired of sending changes back and forth with your colleagues?" }), (0, jsx_runtime_1.jsxs)("dd", { children: [(0, jsx_runtime_1.jsx)("strong", { children: (0, jsx_runtime_1.jsx)("a", __assign({ href: "#a-realtimesync" }, { children: "Collaborate online" })) }), " ", "without any limits!"] }), (0, jsx_runtime_1.jsx)("dt", { children: "Scared of breaking a document?" }), (0, jsx_runtime_1.jsxs)("dd", { children: ["Revert recent changes using", " ", (0, jsx_runtime_1.jsx)("a", __assign({ href: "#a-timetravel" }, { children: "TimeTravel" })), "."] }), (0, jsx_runtime_1.jsxs)("dt", { children: ["Worried about maintaining your ", (0, jsx_runtime_1.jsx)(latex_1.default, {}), " environment?"] }), (0, jsx_runtime_1.jsx)("dd", { children: "CoCalc takes care of everything." }), (0, jsx_runtime_1.jsx)("dt", { children: "Want to work from anywhere?" }), (0, jsx_runtime_1.jsxs)("dd", { children: ["You only need a web browser and Internet access, or you can", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "/pricing/onprem" }, { children: "run your own server." }))] })] })] }), ext: "tex" }), (0, jsx_runtime_1.jsx)(sign_in_1.default, { startup: (0, jsx_runtime_1.jsx)(latex_1.default, {}) }), (0, jsx_runtime_1.jsxs)(info_1.default, __assign({ anchor: "a-environments", icon: "tex-file", title: (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["Managed ", (0, jsx_runtime_1.jsx)(latex_1.default, {}), " environments"] }), image: latex_custom_command_02_png_1.default, alt: "Menu showing the different LaTeX engines in CoCalc" }, { children: [(0, jsx_runtime_1.jsxs)("p", { children: ["CoCalc makes sure that your desired ", (0, jsx_runtime_1.jsx)(latex_1.default, {}), " engine is available and ready to use. You can choose between", " ", (0, jsx_runtime_1.jsx)("strong", { children: (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "http://www.tug.org/applications/pdftex/" }, { children: "PDF Latex" })) }), ",", " ", (0, jsx_runtime_1.jsx)("strong", { children: (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "http://xetex.sourceforge.net/" }, { children: "XeLaTeX" })) }), " ", "or", " ", (0, jsx_runtime_1.jsx)("strong", { children: (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "http://www.luatex.org/" }, { children: "LuaTeX" })) }), "."] }), (0, jsx_runtime_1.jsxs)("p", { children: ["Many packages and utilities like", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "https://sourceforge.net/projects/pgf/" }, { children: "PGF and TikZ" })), " ", "are pre-installed."] }), (0, jsx_runtime_1.jsxs)("p", { children: ["Behind the scenes,", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "http://mg.readthedocs.io/latexmk.html" }, { children: "LatexMK" })), " is configured to manage the compilation process."] }), (0, jsx_runtime_1.jsxs)("p", { children: ["It is also possible to", " ", (0, jsx_runtime_1.jsx)("strong", { children: "fully customize the compilation command" }), ", so you can bring your own shell script or even use a Makefile!"] })] })), (0, jsx_runtime_1.jsx)(collaboration_1.default, { image: cocalc_latex_concurrent_editing_png_1.default }), (0, jsx_runtime_1.jsxs)(info_1.default, __assign({ anchor: "a-computational", icon: "laptop", title: "Full computational environment", image: cocalc_latex_editor_2019_png_1.default, alt: "Two browser windows editing the same LaTeX file", wide: true }, { children: [(0, jsx_runtime_1.jsxs)("p", { children: ["One thing that sets CoCalc apart from other online ", (0, jsx_runtime_1.jsx)(latex_1.default, {}), " ", "editors is ", (0, jsx_runtime_1.jsx)("strong", { children: "full access to computational software" }), ". This means you can seamlessly transition from ", (0, jsx_runtime_1.jsx)("em", { children: "computing" }), " ", "your results to ", (0, jsx_runtime_1.jsx)("em", { children: "publishing" }), " them."] }), (0, jsx_runtime_1.jsxs)("p", { children: ["CoCalc supports running ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "/features/python" }, { children: "Python" })), ",", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "http://www.sagemath.org/" }, { children: "SageMath" })), ",", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "/features/r-statistical-software" }, { children: "R Statistical Software" })), ", ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "/features/julia" }, { children: "Julia" })), ", and more in the same project as your ", (0, jsx_runtime_1.jsx)(latex_1.default, {}), " document."] }), (0, jsx_runtime_1.jsxs)("p", { children: ["Consult the ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "/software" }, { children: "Available Software page" })), " or look at our", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "/features/jupyter-notebook" }, { children: "Jupyter Notebook page" })), " for more information.", " "] })] })), (0, jsx_runtime_1.jsxs)(info_1.default, __assign({ anchor: "a-calculations", textStyleExtra: { background: "inherit" }, title: (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["Run SageMath, Python, or R in ", (0, jsx_runtime_1.jsx)(latex_1.default, {})] }), alt: "A LaTeX document with embedded SageMath code" }, { children: ["You can run calculations inside your ", (0, jsx_runtime_1.jsx)(latex_1.default, {}), " documents! It's possible to embed Sage, R, or Python code in your document to automatically generate text, plots, formulas or tables. The code is evaluated as part of the compilation process and the output will be included in the generated document."] })), (0, jsx_runtime_1.jsxs)(info_1.default, __assign({ anchor: "a-sagetex", title: "SageTex", icon: "sagemath", image: cocalc_sagetex_png_1.default, alt: "Editing LaTeX with SageTex code" }, { children: [(0, jsx_runtime_1.jsx)("p", { children: (0, jsx_runtime_1.jsxs)("strong", { children: [(0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "http://doc.sagemath.org/html/en/tutorial/sagetex.html" }, { children: "SageTeX" })), " ", "lets you embed ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "https://www.sagemath.org/" }, { children: "SageMath" })), " ", "in your document!"] }) }), (0, jsx_runtime_1.jsxs)("p", { children: ["Write Sage commands like", " ", (0, jsx_runtime_1.jsxs)(code_1.default, { children: ["\\sage", "{", "2 + 3", "}"] }), " ", "in ", (0, jsx_runtime_1.jsx)(latex_1.default, {}), " and the document will contain \"5\",", " ", (0, jsx_runtime_1.jsxs)(code_1.default, { children: ["\\sage", "{", "f.taylor(x, 0, 10)", "}"] }), " ", "for the Taylor expansion of a function ", (0, jsx_runtime_1.jsx)("em", { children: "f" }), ", and drawing graphs becomes as simple as", " ", (0, jsx_runtime_1.jsxs)(code_1.default, { children: ["\\sageplot", "{", "sin(x^2)", "}"] }), "."] }), (0, jsx_runtime_1.jsx)("p", { children: (0, jsx_runtime_1.jsx)("strong", { children: "CoCalc deals with all the underlying details for you:" }) }), (0, jsx_runtime_1.jsxs)("ul", { children: [(0, jsx_runtime_1.jsx)("li", { children: "It runs the initial compilation pass," }), (0, jsx_runtime_1.jsxs)("li", { children: ["uses ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "https://www.sagemath.org/" }, { children: "SageMath" })), " to compute the text output, graphs and images,"] }), (0, jsx_runtime_1.jsx)("li", { children: "and then runs a second compilation pass to produce the final PDF output." })] })] })), (0, jsx_runtime_1.jsxs)(info_1.default, __assign({ anchor: "a-pythontex", title: "PythonTex", icon: "python", image: cocalc_pythontex_png_1.default, alt: "Editing LaTeX with PythonTex code" }, { children: [(0, jsx_runtime_1.jsx)("p", { children: (0, jsx_runtime_1.jsxs)("strong", { children: [(0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "https://ctan.org/pkg/pythontex" }, { children: "PythonTeX" })), " allows you to run Python from within a document and typeset the results."] }) }), (0, jsx_runtime_1.jsxs)("p", { children: ["For example,", " ", (0, jsx_runtime_1.jsxs)(code_1.default, { children: ["\\py", "{", "2 + 4**2", "}"] }), " ", "produces \"18\". You can use all", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "/software/python" }, { children: "available python libraries" })), " for Python 3, drawing plots via ", (0, jsx_runtime_1.jsx)("code", { children: "pylab" }), ", and use PythonTeX's SymPy support."] }), (0, jsx_runtime_1.jsxs)("p", { children: ["Again, CoCalc automatically detects that you want to run PythonTeX and handles all the details for you.", " "] })] })), (0, jsx_runtime_1.jsxs)(info_1.default, __assign({ anchor: "a-knitr", title: "R/Knitr", icon: "r", image: latex_editor_rnw_01_png_1.default, alt: "Editing LaTeX with R/Knitr code" }, { children: [(0, jsx_runtime_1.jsxs)("p", { children: ["CoCalc's ", (0, jsx_runtime_1.jsx)(latex_1.default, {}), " editor also supports", " ", (0, jsx_runtime_1.jsx)("strong", { children: (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "https://yihui.name/knitr/" }, { children: "Knitr" })) }), " ", "documents (with filename extension ", (0, jsx_runtime_1.jsx)("code", { children: ".Rnw" }), "). This gives you the ability to embed arbitrary", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "https://www.r-project.org/" }, { children: "R Software" })), " commands and plots in your ", (0, jsx_runtime_1.jsx)(latex_1.default, {}), " file."] }), (0, jsx_runtime_1.jsx)("p", { children: "Behind the scenes, CoCalc deals with all underlying details for you:" }), (0, jsx_runtime_1.jsxs)("ul", { children: [(0, jsx_runtime_1.jsxs)("li", { children: ["installation and management of", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "/software/r" }, { children: "all R packages" })), ","] }), (0, jsx_runtime_1.jsxs)("li", { children: ["orchestrates the full compilation pipeline for ", (0, jsx_runtime_1.jsx)(latex_1.default, {}), " and running R, and"] }), (0, jsx_runtime_1.jsxs)("li", { children: ["reconciles the line numbers of the .Rnw file with the corresponding .tex document for correct", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "#a-forwardinverse" }, { children: (0, jsx_runtime_1.jsx)("strong", { children: "forward and inverse search" }) })), ".", " "] })] })] })), (0, jsx_runtime_1.jsxs)(info_1.default.Heading, __assign({ description: (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["The following are some specific features of editing ", (0, jsx_runtime_1.jsx)(latex_1.default, {}), " in CoCalc.", (0, jsx_runtime_1.jsx)("br", {}), "There is also more", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "https://doc.cocalc.com/latex.html" }, { children: "comprehensive documentation" })), "."] }) }, { children: [(0, jsx_runtime_1.jsx)(latex_1.default, {}), " Editing Features"] })), (0, jsx_runtime_1.jsxs)(info_1.default, __assign({ anchor: "a-forwardinverse", title: "Forward and Inverse search", icon: "sync", video: [
                                    "features/latex-forward-inverse-02.webm",
                                    "features/latex-forward-inverse-02.mp4",
                                ], wide: true, alt: "Video showing forward and inverse search in a LaTeX document" }, { children: [(0, jsx_runtime_1.jsx)("p", { children: "Let CoCalc help you find your way around in large documents!" }), (0, jsx_runtime_1.jsxs)("p", { children: [(0, jsx_runtime_1.jsx)("strong", { children: "Forward Search" }), " lets you jump from the ", (0, jsx_runtime_1.jsx)(latex_1.default, {}), " ", "source to the corresponding part in the rendered preview. This saves you time looking for the output."] }), (0, jsx_runtime_1.jsxs)("p", { children: [(0, jsx_runtime_1.jsx)("strong", { children: "Inverse search" }), " does the opposite: double click on the output and your cursor jumps to the line in the source file for that output."] }), (0, jsx_runtime_1.jsxs)("p", { children: ["Under the hood, CoCalc uses", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "https://github.com/jlaurens/synctex" }, { children: "SyncTeX" })), " ", "seamlessly."] })] })), (0, jsx_runtime_1.jsxs)(info_1.default, __assign({ anchor: "a-timetravel", title: "TimeTravel", icon: "history", image: latex_editor_timetravel_01_png_1.default, alt: "Using the TimeTravel slider to see what changed in a LaTeX document" }, { children: [(0, jsx_runtime_1.jsxs)("p", { children: ["The ", (0, jsx_runtime_1.jsx)("strong", { children: "TimeTravel feature" }), " is specific to the CoCalc platform. It records all changes in the document in fine detail. You can go back and forth in time using a slider across thousands of changes to recover your previous edits."] }), (0, jsx_runtime_1.jsxs)("p", { children: ["This is especially helpful for pinpointing which of the recent changes caused a ", (0, jsx_runtime_1.jsx)("strong", { children: "compilation error" }), ". You can see the recent changes and exactly where the modifications happened, and who made them."] })] })), (0, jsx_runtime_1.jsxs)(info_1.default, __assign({ anchor: "a-chat", title: "Side Chat", icon: "comment", image: cocalc_latex_side_chat_v2_png_1.default, alt: "Chatting about a LaTeX document right next to that document" }, { children: [(0, jsx_runtime_1.jsxs)("p", { children: ["A", " ", (0, jsx_runtime_1.jsx)("strong", { children: (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "https://doc.cocalc.com/chat.html" }, { children: "side-by-side chat" })) }), " ", "for each ", (0, jsx_runtime_1.jsx)(latex_1.default, {}), " file lets you discuss your content with collaborators or give feedback to your students while they are working on their assignments."] }), (0, jsx_runtime_1.jsx)("p", { children: "Collaborators who are offline will be notified about new messages the next time they sign in. If you @mention them, they receive an email notification." }), (0, jsx_runtime_1.jsxs)("p", { children: ["Chat messages also support", " ", (0, jsx_runtime_1.jsx)(A_1.default, __assign({ href: "https://en.wikipedia.org/wiki/Markdown" }, { children: "Markdown" })), " ", "formatting with ", (0, jsx_runtime_1.jsx)(latex_1.default, {}), " formulas.", " "] })] })), (0, jsx_runtime_1.jsx)(backups_1.default, {}), (0, jsx_runtime_1.jsx)(publishing_1.default, {}), (0, jsx_runtime_1.jsx)(compare_1.default, { name: "latex", disclaimer: true, title: (0, jsx_runtime_1.jsxs)("h2", __assign({ style: { textAlign: "center" } }, { children: [(0, jsx_runtime_1.jsx)(icon_1.Icon, { name: "bolt" }), " ", (0, jsx_runtime_1.jsx)(latex_1.default, {}), " in CoCalc versus the competition"] })) }), (0, jsx_runtime_1.jsx)(sign_in_1.default, { startup: (0, jsx_runtime_1.jsx)(latex_1.default, {}) })] }), (0, jsx_runtime_1.jsx)(footer_1.default, {})] })] })));
}
exports.default = LatexEditor;
function getServerSideProps(context) {
    return __awaiter(this, void 0, void 0, function () {
        return __generator(this, function (_a) {
            switch (_a.label) {
                case 0: return [4 /*yield*/, (0, with_customize_1.default)({ context: context })];
                case 1: return [2 /*return*/, _a.sent()];
            }
        });
    });
}
exports.getServerSideProps = getServerSideProps;
//# sourceMappingURL=latex-editor.js.map