ozkn
(Mathx)
12월 13, 2024, 9:12오전
1
Mathx:
인공지능이 LaTeX 형식으로 답변을 줍니다. 이 LaTeX 형식을 MathJax 형식으로 변환하기 위해 프롬프트를 작성했지만, 항상 프롬프트가 적용되지 않고 LaTeX 형식으로 답변하는 경우가 있습니다. OpenAI 커뮤니티에 제 문제를 게시했을 때 다음과 같은 제안이 왔습니다.
"시스템 프롬프트를 복잡하게 만드는 노력조차 가치가 없다고 판단하여, 대신 제가 결과물에 대해 다음을 수행하기로 결정했습니다:
제가 겪고 있는 문제에 대해 OpenAI 커뮤니티에서 새로운 제안이 나왔습니다. 이 부분에 대해 업데이트를 계획하고 계신가요? 제안 내용은 다음과 같습니다.
제안 1;
def parse_stream_to_katex(stream: Stream):
"""
OpenAI 스트림을 가져와서 ChatGPT LaTeX 구분자를
KateX 구분자로 대체합니다.
청크가 아닌 텍스트를 반환합니다
"""
last_text = ""
for chunk in stream:
text = chunk.choices[0].delta.content
if text:
# 때로는 \(와 같은 구분자가 두 청크에 걸쳐 나뉠 수 있습니다.
# 이전 청크가 \로 끝났다면, 이 청크 앞에 그것을 붙여넣습니다
if last_text.endswith("\\"):
text = last_text + text
text = (
text.replace(r"\[", "$$")
.replace(r"\]", "$$")
.replace(r"\(", "$")
.replace(r"\)", "$")
)
last_text = text
# 텍스트가 \로 끝나면 반환하지 않고, 다음 청크에 포함시킵니다
if not text.endswith("\\"):
yield text
제안 2:
// MarkdownLaTeXRenderer.js
import React from 'react';
import ReactMarkdown from 'react-markdown';
import remarkGfm from 'remark-gfm';
import remarkMath from 'remark-math';
import rehypeRaw from 'rehype-raw';
import rehypeKatex from 'rehype-katex';
const MarkdownLaTeXRenderer = ({ content }) => {
// 호환성을 보장하기 위해 \[를 $$로, \]를 $$로 대체합니다
const processedText = content
.replace(/\\\[/g, '$$$') // 모든 \[ 발생 위치를 $$로 대체
.replace(/\\\]/g, '$$$') // 모든 \] 발생 위치를 $$로 대체
.replace(/\\\(/g, '$$$') // 모든 \( 발생 위치를 $$로 대체
.replace(/\\\)/g, '$$$'); // 모든 \) 발생 위치를 $$로 대체
const remarkMathOptions = {
singleDollarTextMath: false,
};
return (
<ReactMarkdown
className="markdown-content"
children={processedText}
remarkPlugins={[[remarkMath, remarkMathOptions], remarkGfm]} // 옵션을 배열의 두 번째 요소로 전달
rehypePlugins={[rehypeRaw, rehypeKatex]} // HTML을 위해 rehypeRaw, LaTeX를 위해 rehypeKatex 포함
/>
);
};
export default MarkdownLaTeXRenderer;
’
Jagster
(Jakke Flemming)
12월 13, 2024, 9:21오전
2
그리고 최종 사용자인 저는 그 용도로 시스템 프롬프트(OpenAI)를 사용하고 있습니다.
수학 식이 단독 줄이나 장(章)에 있을 때, \(과 \)를 각각 단독 줄에 배치하고, 앞뒤로 $$를 사용하면 꽤 안정적입니다.
하지만 같은 방식으로 인라인에서 단일 $를 사용하면 거의 항상 실패합니다.
이것이 자동으로 처리될 수 있다면… 더 좋을 것 같습니다.
모바일 기기로 수식을 볼 때, 수식이 너무 길어 전체를 제대로 볼 수 없습니다. 이 문제를 해결하는 방법을 아는 사람이 있나요?
아래는 PC에서 올바르게 표시된 모습입니다.
Jagster
(Jakke Flemming)
12월 21, 2024, 3:16오후
4
전화를 가로로 돌리는 건가요? 그런데 왜 따옴표가 붙어 있는 거죠, 그리고 그게 문제일 수도 있을까요?
그 외에는. 제 포럼의 AI에게 물어봤고, 이렇게 답했습니다 (도움이 되는지 아니면 쓸모없는 건지 전혀 모르겠어요).
MathJax를 사용하여 긴 수식을 정렬하는 방법
AI
Jagster:
포럼은 수학 및 수식을 위해 MathJax를 사용합니다. 가끔 수식이 너무 길어 모바일 화면에 맞지 않는 경우가 있습니다. 수식을 여러 줄로 나누는 방법이 있을까요?
Asiavastaaja:
MathJax는 수식에 대한 자동 줄바꿈을 직접 지원하지 않지만, 긴 수식이 모바일 화면에 더 잘 맞게 만들 수 있는 몇 가지 기법을 사용할 수 있습니다. 다음은 몇 가지 팁입니다:
align 환경 사용 : align 환경을 사용하여 수식을 여러 줄로 나눌 수 있습니다. 이렇게 하면 수식의 부분을 여러 줄에 걸쳐 정렬하고 분배할 수 있습니다. 예를 들어:
$$
\begin{align}
a + b + c + d + e + f + g + h + i + j + k + l + m + n + o + p + q + r + s + t + u + v + w + x + y + z = 0
\end{align}
$$
split 환경 사용 : 수식을 여러 줄로 나누는 또 다른 방법입니다. 정렬이 필요 없이 수식의 부분을 나누고 싶을 때 특히 유용합니다. 예를 들어:
$$
\begin{split}
a + b + c + d + e + f + g + h + i + j + k + l + m + n + o + p + q + r + s + t + u + v + w + x + y + z = 0
\end{split}
$$
multline 환경 사용 : 이 환경은 한 줄에 맞지 않는 긴 수식을 위해 설계되었습니다. 정렬 없이 수식을 여러 줄로 나눕니다. 예를 들어:
$$
\begin{multline}
a + b + c + d + e + f + g + h + i + j + k + l + m + n + o + p + q + r + s + t + u + v + w + x + y + z = 0
\end{multline}
$$
이러한 환경은 수식의 표시를 제어하여 작은 화면에서도 가독성이 있도록 보장합니다. MathJax 환경은 종종 amsmath 패키지를 필요로 하는데, 이는 MathJax에서 기본적으로 활성화되어 있는 경우가 많습니다.
@Jagster 이 방법들이 좋은 해결책이 될 것 같습니다. 원래 수식에 가로 스크롤바를 설정하려고 했으나 성공하지 못했습니다.
.math-tex {
overflow-x: auto;
max-width: 100%;
padding: 5px 0;
display: block;
}
thaidb
(thaidb)
2월 1, 2025, 12:34오전
6
구글 스프레드시트의 수식 공식을 메타 디스커스로 복사할 때 문제가 생기고 있습니다. 수식이 제대로 렌더링되지 않는 것 같은데, 맞나요?
NPV=CFt * [1-1(1+r)Tr]- CFo= 84,000 * [1-1(1+13%)713%]- 385,000 = $-13,500
PI = 1 + NPVCFo = 1+ n=1784,000(1,13)n - 385,000385,000 ~ 0,965
$와 %를 \로 이스케이프 처리해야 한다고 생각합니다.
NPV=CFt * [1-1(1+r)Tr]- CFo= 84,000 * [1-1(1+13\%)713\%]- 385,000 = \$-13,500
확인해 봅시다:
NPV=CFt * [1-1(1+r)Tr]- CFo= 84,000 * [1-1(1+13\%)713\%]- 385,000 = \$-13,500
PI = 1 + NPVCFo = 1+ n=1784,000(1,13)n - 385,000385,000 ~ 0,965
렌더링은 정상적으로 되지만, 전체 수식을 볼 수 있는 스크롤바가 없습니다. 다만 미리보기에서는 있습니다.
게시물에서는 확대해야만 다른 부분을 볼 수 있습니다:
Ethsim2
(Ethan )
3월 6, 2025, 1:42오후
8
게시글을 작성하면서 미리보기 창에서 SVG가 렌더링될 때 미리보기 창이 위로 스크롤됩니다. 스크롤이 맨 아래 위치로 돌아오도록 설정을 변경할 수 있는 방법이 있을까요?
수식을 편집할 때마다 아래로 스크롤해야 하는 점이 교수님들을 짜증나게 하지만, 저는 그럭저럭 적응하고 있습니다.
Ethsim2
(Ethan )
7월 15, 2025, 8:08오후
9
활동에서 몇 가지 “deprecate”(비추천) 표시를 발견했습니다.
수학식 데이터베이스가 방대하지만 렌더링은 정상적으로 작동하는 인스턴스에 대해 이것이 무엇을 의미하는지 설명해 주실 수 있으신가요?
Ethsim2
(Ethan )
7월 16, 2025, 8:13오전
10
전체 업데이트/재빌드 이후, 수학 표현이 정상적으로 렌더링되는 것으로 보입니다.
아직 이 사실을 모르고 계신 분들을 위해, 이 플러그인은 이제 코어에 번들링되어 제공됩니다. 이 내용이 포함된 이 게시글 의 재빌드/수정판 3중 2번을 참고해 주세요.
말씀하신 대로입니다! 걱정 끼쳐드려서 죄송합니다. 이제 정상적으로 진행될 수 있을 것입니다.
이 플러그인은 Bundling more popular plugins with Discourse core 에 명시된 대로 이제 Discourse 코어에 번들링되었습니다. 자체 호스팅(self-hosting)을 하고 있으며 이 플러그인을 사용 중이시라면, 다음 업그레이드 전에 app.yml에서 이를 제거해야 합니다.
ozkn
(Mathx)
8월 29, 2025, 3:35오후
12
AI 답변에 수식 문자 문제가 있습니다. 요청된 프롬프트를 입력했음에도 불구하고 답변이 LaTeX 형식으로 표시되어 깨진 문자가 있는 것처럼 보이는 이미지가 생성됩니다. 이 문제를 해결할 수 있을까요? 예시:
\( A = \begin{pmatrix} x & -1 \\ z & 2y \end{pmatrix} \)
\[
\boxed{
x = 0, \quad y = 4, \quad z = 4
}
\]
\[
\begin{cases}
A_{11} = B^T_{11} \Rightarrow x = y - z \\
A_{12} = B^T_{12} \Rightarrow -1 = -1 \quad (\text{benar otomatis}) \\
A_{21} = B^T_{21} \Rightarrow z = y \\
A_{22} = B^T_{22} \Rightarrow 2y = 8 \\
\end{cases}
\]
이전에 OpenAI 커뮤니티에서 공유된 해결책들을 전달한 바 있습니다.
Ethsim2
(Ethan )
8월 30, 2025, 7:43오전
13
안녕하세요 @ozkn
저도 같은 문제를 겪고 있습니다. 제 추천은 다음과 같습니다.
AI 제공업체에서 계정을 가입하세요.
AI 계정에 아래 내용을 전달하세요.
향후 답변에서 Discourse가 MathJax/Katex $…$ $$…$$ 인라인 또는 여러 줄 중심 포맷과 호환됨을 기억해 주세요.
AI 계정에 로그인한 상태에서 출력을 확인하면 복사-붙여넣기가 훨씬 수월해질 것입니다.
최선의 기억을 유지하기 위해 계속 강조할 필요가 있을 수 있습니다
Ethsim2
(Ethan )
8월 30, 2025, 7:49오전
14
마지막 점을 조금 더 덧붙이자면 — 수학 과 통화 를 함께 사용할 때, 다음을 기억하세요:
$...$ = 수학
\$ = 리터럴 달러 기호
즉:
$x+1$ costs \$5. → $x+1$은 수학식으로 렌더링되고, 가격은 $5로 표시됩니다.
필요한 건 이 정도면 충분합니다: 수학은 $로, 돈은 \$로.
Ethsim2
(Ethan )
8월 30, 2025, 1:59오후
15
ChatGPT가 기억하도록 장려할 또 다른 좋은 방법은, details 패널 제목에 수식을 렌더링할 수 없다는 것입니다
sam
(Sam Saffron)
1월 16, 2026, 5:55오전
16
이제 이런 해킹이 더 이상 필요하지 않습니다. 이 기능을 기본적으로 지원합니다.