MEP29: 텍스트 라이트 마크업 #

상태 번호

논의

브랜치 및 풀 리퀘스트 #

현재는 없으며 개념 증명만 가능합니다.

초록 #

이 MEP는 텍스트 아티스트에 경량 마크업을 추가할 것을 제안합니다.

자세한 설명 #

text방법이 크기/색상/가족/무게/등에 대한 인수를 허용 하기 때문에 텍스트 주석에서 다른 크기/색상/가족을 사용하는 것은 어렵습니다 . 전체 텍스트에 사용됩니다. 그러나 예를 들어 다른 색상을 원할 경우 다음과 같은 예가 제공되는 갤러리를 살펴봐야 합니다. 레인보우 텍스트

이 예제는 문자열 목록과 사용하기 번거로운 색상 목록을 사용합니다. 대안은 제한된 pango 유사 마크업 세트를 사용하고 이 마크업을 해석하는 것입니다.

몇 가지 마크업 예제:

Hello <b>world!</b>`
Hello <span color="blue">world!</span>

구현 #

개념 증명은 markup_example.py 에서 제공 되지만 현재는 가로 방향만 처리합니다.

개선 #

  • 이 개념 증명은 정규식을 사용하여 텍스트를 구문 분석하지만 표준 라이브러리의 html.parser를 사용하는 것이 더 나을 수 있습니다.

  • 텍스트 조각 위치 계산은 OffsetFrom 클래스의 이점을 얻을 수 있습니다. 예를 들어 주석과 함께 복잡한 좌표 사용 의 항목 5를 참조하십시오.

문제 #

  • 한 가지 심각한 문제는 LaTeX와 HTML과 같은 태그가 모두 있는 텍스트를 처리하는 방법입니다. 예를 들어 다음을 고려하십시오.

    $<b>Bold$</b>
    

    권장 사항은 상호 배제하는 것입니다.

이전 버전과의 호환성 #

개념 증명일 뿐이므로 현재로서는 없음

대안 #

@anntzer가 제안한 대로 이것은 mathtext의 개선으로 구현될 수도 있습니다. 예를 들어:

r"$\text{Hello \textbf{world}}$"
r"$\text{Hello \textcolor{blue}{world}}$"
r"$\text{Hello \textsf{\small world}}$"