수학과 AI 우회 방법

제가 겪고 있는 문제에 대해 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;
’

그리고 최종 사용자인 저는 그 용도로 시스템 프롬프트(OpenAI)를 사용하고 있습니다.

수학 식이 단독 줄이나 장(章)에 있을 때, \(과 \)를 각각 단독 줄에 배치하고, 앞뒤로 $$를 사용하면 꽤 안정적입니다.

하지만 같은 방식으로 인라인에서 단일 $를 사용하면 거의 항상 실패합니다.

이것이 자동으로 처리될 수 있다면… 더 좋을 것 같습니다.

모바일 기기로 수식을 볼 때, 수식이 너무 길어 전체를 제대로 볼 수 없습니다. 이 문제를 해결하는 방법을 아는 사람이 있나요?
image
아래는 PC에서 올바르게 표시된 모습입니다.
image

전화를 가로로 돌리는 건가요? 그런데 왜 따옴표가 붙어 있는 거죠, 그리고 그게 문제일 수도 있을까요?

그 외에는. 제 포럼의 AI에게 물어봤고, 이렇게 답했습니다 (도움이 되는지 아니면 쓸모없는 건지 전혀 모르겠어요).

MathJax를 사용하여 긴 수식을 정렬하는 방법 AI

Jagster:

포럼은 수학 및 수식을 위해 MathJax를 사용합니다. 가끔 수식이 너무 길어 모바일 화면에 맞지 않는 경우가 있습니다. 수식을 여러 줄로 나누는 방법이 있을까요?

Asiavastaaja:

MathJax는 수식에 대한 자동 줄바꿈을 직접 지원하지 않지만, 긴 수식이 모바일 화면에 더 잘 맞게 만들 수 있는 몇 가지 기법을 사용할 수 있습니다. 다음은 몇 가지 팁입니다:

  1. 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}
    $$
    
  2. 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}
    $$
    
  3. 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;
}

구글 스프레드시트의 수식 공식을 메타 디스커스로 복사할 때 문제가 생기고 있습니다. 수식이 제대로 렌더링되지 않는 것 같은데, 맞나요?

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


렌더링은 정상적으로 되지만, 전체 수식을 볼 수 있는 스크롤바가 없습니다. 다만 미리보기에서는 있습니다.
게시물에서는 확대해야만 다른 부분을 볼 수 있습니다:

게시글을 작성하면서 미리보기 창에서 SVG가 렌더링될 때 미리보기 창이 위로 스크롤됩니다. 스크롤이 맨 아래 위치로 돌아오도록 설정을 변경할 수 있는 방법이 있을까요?

수식을 편집할 때마다 아래로 스크롤해야 하는 점이 교수님들을 짜증나게 하지만, 저는 그럭저럭 적응하고 있습니다.

활동에서 몇 가지 “deprecate”(비추천) 표시를 발견했습니다.

수학식 데이터베이스가 방대하지만 렌더링은 정상적으로 작동하는 인스턴스에 대해 이것이 무엇을 의미하는지 설명해 주실 수 있으신가요?

전체 업데이트/재빌드 이후, 수학 표현이 정상적으로 렌더링되는 것으로 보입니다.

아직 이 사실을 모르고 계신 분들을 위해, 이 플러그인은 이제 코어에 번들링되어 제공됩니다. 이 내용이 포함된 이 게시글의 재빌드/수정판 3중 2번을 참고해 주세요.

말씀하신 대로입니다! :+1: 걱정 끼쳐드려서 죄송합니다. 이제 정상적으로 진행될 수 있을 것입니다.

:partying_face: 이 플러그인은 Bundling more popular plugins with Discourse core 에 명시된 대로 이제 Discourse 코어에 번들링되었습니다. 자체 호스팅(self-hosting)을 하고 있으며 이 플러그인을 사용 중이시라면, 다음 업그레이드 전에 app.yml에서 이를 제거해야 합니다.

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 커뮤니티에서 공유된 해결책들을 전달한 바 있습니다.

안녕하세요 @ozkn

저도 같은 문제를 겪고 있습니다. 제 추천은 다음과 같습니다.

  • AI 제공업체에서 계정을 가입하세요.
  • AI 계정에 아래 내용을 전달하세요.

향후 답변에서 Discourse가 MathJax/Katex $…$ $$…$$ 인라인 또는 여러 줄 중심 포맷과 호환됨을 기억해 주세요.

  • AI 계정에 로그인한 상태에서 출력을 확인하면 복사-붙여넣기가 훨씬 수월해질 것입니다.
최선의 기억을 유지하기 위해 계속 강조할 필요가 있을 수 있습니다

마지막 점을 조금 더 덧붙이자면 — 수학과 통화를 함께 사용할 때, 다음을 기억하세요:

  • $...$ = 수학
  • \$ = 리터럴 달러 기호

즉:
$x+1$ costs \$5. → $x+1$은 수학식으로 렌더링되고, 가격은 $5로 표시됩니다.

필요한 건 이 정도면 충분합니다: 수학은 $로, 돈은 \$로.

ChatGPT가 기억하도록 장려할 또 다른 좋은 방법은, details 패널 제목에 수식을 렌더링할 수 없다는 것입니다

image

이제 이런 해킹이 더 이상 필요하지 않습니다. 이 기능을 기본적으로 지원합니다.