From 8874cf2462b64161bcbec5acba09b8cfdd83b213 Mon Sep 17 00:00:00 2001 From: JackLee <809262979@qq.com> Date: Sun, 9 Mar 2025 18:53:39 +0800 Subject: [PATCH] =?UTF-8?q?fix=20MicroTeX=E5=92=8Ccmark-gfm=E5=85=B1?= =?UTF-8?q?=E5=AD=98=E7=BC=96=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 3rdparty/MicroTeX/src/fonts/fonts.cpp | 3 +-- 3rdparty/cmark-gfm/src/buffer.h | 9 +++++++++ CMakeLists.txt | 11 ++++++----- src/ctaiHistoryTextEdit.cpp | 3 ++- src/ctaiMathConvert.cpp | 7 ++++--- src/ctaiMathConvert.h | 17 +++++++++++++---- 6 files changed, 35 insertions(+), 15 deletions(-) diff --git a/3rdparty/MicroTeX/src/fonts/fonts.cpp b/3rdparty/MicroTeX/src/fonts/fonts.cpp index f262c1a..7b38fa4 100644 --- a/3rdparty/MicroTeX/src/fonts/fonts.cpp +++ b/3rdparty/MicroTeX/src/fonts/fonts.cpp @@ -1,11 +1,10 @@ #include "fonts/fonts.h" - +#include "../render.h" #include #include "common.h" #include "fonts/symbol_reg.h" #include "graphic/graphic.h" -#include "render.h" #include "res/parser/font_parser.h" using namespace std; diff --git a/3rdparty/cmark-gfm/src/buffer.h b/3rdparty/cmark-gfm/src/buffer.h index b85bb44..c34812b 100644 --- a/3rdparty/cmark-gfm/src/buffer.h +++ b/3rdparty/cmark-gfm/src/buffer.h @@ -9,6 +9,15 @@ #include "config.h" #include "cmark-gfm.h" +// 添加 CMARK_INLINE 的定义(如果需要) +#ifndef CMARK_INLINE +#if defined(_MSC_VER) && !defined(__cplusplus) +#define CMARK_INLINE __inline +#else +#define CMARK_INLINE inline +#endif +#endif + #ifdef __cplusplus extern "C" { #endif diff --git a/CMakeLists.txt b/CMakeLists.txt index 21e7d73..a32f52b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -62,9 +62,9 @@ include_directories(${JSON}/include) find_package(CURL REQUIRED) #cmark-gfm -#add_subdirectory(${PROJECT_SOURCE_DIR}/3rdparty/cmark-gfm) -#include_directories(${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/cmark-gfm/src) -#include_directories(${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/cmark-gfm/extensions) +add_subdirectory(${PROJECT_SOURCE_DIR}/3rdparty/cmark-gfm) +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/cmark-gfm/src) +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/cmark-gfm/extensions) #MicroTeX add_subdirectory(${PROJECT_SOURCE_DIR}/3rdparty/MicroTeX) @@ -148,9 +148,10 @@ target_link_libraries( Qt6::Gui Qt6::Widgets CURL::libcurl - #libcmark-gfm_static - #libcmark-gfm-extensions_static LaTeX + libcmark-gfm_static + libcmark-gfm-extensions_static + ) diff --git a/src/ctaiHistoryTextEdit.cpp b/src/ctaiHistoryTextEdit.cpp index 2190be8..6af012b 100644 --- a/src/ctaiHistoryTextEdit.cpp +++ b/src/ctaiHistoryTextEdit.cpp @@ -208,8 +208,9 @@ void ctaiHistoryTextEdit::on_display_changed(QString mode) } else if (mode == "LaTeX Markdown") { - m_msg_history->setMarkdown(m_math_convert->replace_tags_svg(m_current_content)); + m_msg_history->setHtml(m_math_convert->replace_tags_svg(m_current_content)); qDebug() << "LaTeX Markdown:" << m_msg_history->toMarkdown(); + qDebug() << "Html:" << m_msg_history->toHtml(); } } // tokens按钮实现功能的槽函数 diff --git a/src/ctaiMathConvert.cpp b/src/ctaiMathConvert.cpp index 6624227..f6fce8b 100644 --- a/src/ctaiMathConvert.cpp +++ b/src/ctaiMathConvert.cpp @@ -100,11 +100,12 @@ QString ctaiMathConvert::replace_tags_svg(const QString &text) debug_latex_match(result, match); // 清理和转换公式 //QString cleanFormula = clean_latex_for_mula(matchedText); - QString svg_markdown = markdown_base + math_convert_svg(matchedText) + ")"; - //QString svg_html = html_base + math_convert_svg(matchedText) + "/>"; + //QString svg_markdown = markdown_base + math_convert_svg(matchedText) + ")"; + QString svg_html = html_base + math_convert_svg(matchedText) + "/>"; // 保存替换信息 replacements.prepend({match.capturedStart(), match.capturedLength()}); - svgResults.prepend(svg_markdown); + //svgResults.prepend(svg_markdown); + svgResults.prepend(svg_html); } // 从后向前执行替换,避免位置改变影响 diff --git a/src/ctaiMathConvert.h b/src/ctaiMathConvert.h index 79392b5..87bb067 100644 --- a/src/ctaiMathConvert.h +++ b/src/ctaiMathConvert.h @@ -1,8 +1,13 @@ #ifndef CTAIMATHCONVERT_H #define CTAIMATHCONVERT_H -#include "latex.h" -#include "platform/qt/graphic_qt.h" +// 然后包含 cmark-gfm 相关头文件 +#include "cmark-gfm.h" +#include "cmark-gfm-extension_api.h" +#include "cmark-gfm-core-extensions.h" + +// Qt 相关头文件 +#include #include #include #include @@ -11,9 +16,13 @@ #include #include #include + +// LaTeX 相关头文件 +#include "latex.h" +#include "platform/qt/graphic_qt.h" + +// 项目相关头文件 #include "ctai_base.h" -#include -#include class TexGuard { public: