라텍스에서 일본어 ASCII 아트를 조판하는 방법은 무엇입니까?

라텍스에서 일본어 ASCII 아트를 조판하는 방법은 무엇입니까?

저는 MS PGothic을 사용하여 멋진 일본어 ASCII 아트를 조판하는 환경을 제공하는 패키지를 만들려고 생각 중입니다. MS PGothic은 일본어 ASCII 아트의 기본 글꼴입니다.

내 생각은 새로운 축 어적 환경을 만드는 것입니다. 그러나 축어적으로는 글꼴이 고정 폭이어야 하는 것으로 보입니다. 한편 MS PGothic은 비례적이며 일본어 ASCII 아트를 조판하려면 글꼴이 비례적이어야 합니다.

여기저기서 수집한 정보를 모아서 패키지를 만들어 보았습니다. 그 중 하나는 다음과 같습니다.

\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{jart}[2023/03/05 Japanese ASCII Art]

\RequirePackage{fancyvrb}

% Set the font to MS PGothic
\usepackage{fontspec}
\setmonofont{msgothic.ttc}

% Set character width and line height
\fvset{fontsize=\small,xleftmargin=2em,}
\def\num{18}
\def\px{16}

% Define the "jart" environment
\DefineVerbatimEnvironment{jart}{Verbatim}
{fontfamily=tt,numbers=none,framesep=0.5em,rulecolor=white,baselinestretch=\num/\px}

하지만 작동하지 않습니다. 내 패키지에는 내가 보지 못한 몇 가지 기본적인 실수가 있는 것 같습니다.

누군가가 이 주제에 대해 밝혀주면 정말 감사하겠습니다. 나는 "Latex Companion 2ed"의 사본을 가지고 있는데, 어느 장을 읽어야 하는지에 대한 지침을 환영합니다.

적절한 조판 ASCII 아트의 예는 여기에서 볼 수 있습니다.https://aahub.org/ 미리 감사드립니다.

-

편집 1:Niranjan의 답변 덕분에 질문이 거의 해결되었습니다. 나는 일본어 ASCII 아트에 사용되는 글꼴이 비례적이어야 한다고 언급했습니다. "비례"란 각 문자의 너비가 다르다는 것을 의미합니다. 기존의 훌륭한 답변의 문제점을 설명하기 위해 일부 외부 이미지 링크를 포함해야 합니다.

이것은 샘플 ASCII 아트를 조판하는 데 사용되는 기본 Tex 파일입니다.

\documentclass{article}
\usepackage{jart}
\begin{document}
First document. This is a simple example, with no 
extra parameters or packages included.


\begin{jart}
                              ______
                         ,、.- '''"´          ` ' ‐ 、,
                      ,、 ''"                    `' .、
                    ,、 '"          .......................         \
                  /       ..........::::::::::::::::::::::::::::::::::::::::::::::....... ...   ヽ
                /      ....:::::::::::::::;;::::::::::::::::;:::;、r'" \:::::::::::::::::.....::..   ヽ
    .          /      ..::::::::::::::::::::/ `ヽ,:/ノ     \ィ'ヽ:::::::::::::::..   ヽ
    .         /      ..:::::::::::::::::::;、:ィ'    `  ヽ        ヽ  \:::::::::::::..   ',
            , '      ..:::::::::::::::;、r':/,'    .....          ヽ   ヽ::::::::::..  ',
    .      , '      ..::::::::::;、 '" / ,'  / ,、-ヽ          ',    ヽ::::::::.. /
          /      ..::::::::/  /  ,'  //   ヽ.   ヽ    ヽ ',     ヽ::::::::/
         /     ...::::::::/  /    ;   /       ヽ  ヽ  ヽ 丶 ',    ヽ/
        /     ..::::::::::::i゙  /     ,'  i           ヽ ヾ、  ヽ \',    ',
    .   /   ....:::::::::::::::::i../    ,、 ,'   | ,.、----- 、,  ',  ',.\  ヾ' 、ヽ    ',
      /   ..:::::::::::::::::::::/   ,、 '" ,'   |´          ',  !. ‐ヽ ヽ ヾ 、   ',
     / ....::::::::::::::::::::::/  ,、 '".--、i //!. |            ', l   ヽ. ',、. ', ` 、 ',
      \::::::::::::::::::::/ ,、 '" / ,r''''''|〃  | |,.|ィ===ミ、     ', |, -ノ-、  /‐!   | \ ',
       `' 、:.:/ ,、 '" |.  │ ! /~|   l ',            lノ===ミ、 /l |    |   \
        ,、r'ィ"‐-:、;;;_|   ヽ ヽ、|    i ',\\\               { l i lヽ !
       ´       ,'     \ l    .',、'、       ,  \\\!| l  ! ' ,ヽ !
              /       ` l    ',ヽヽ               |!| ヽ .| ',.ヽ!
    .         /         l     ! `ヽ  、_..-、_,   /.ハ. V  ',
             /        ,、 -',    ',‐‐―┐           / /  |   ',
           , '     ,、- '''´   ',    ',    |.        ィ ´  /    |ー-、 ',
          /      l       ',    ',  ト> ‐ <´_!   /   / / ',
        /        ',        ',    ', ├---゙ニi゙、.,,,,,{  /    / / |\ ',
      /   /      ヽ       ',    ',│ ||  ||  ||ヽ     / ト, |  ヽ ヽ
    '"    /        >         ',    ',ヽ. ||  ||  ||:}      /   | l. l   ヽ '
    
\end{jart}

\end{document}

내 tex 파일에 사용된 것과 동일한 아트가 적절하게 조판된 경우 다음과 같습니다. 적절한 조판 ASCII ART

그러나 기존 답변을 사용하면 다음이 생성됩니다. 여기에 이미지 설명을 입력하세요

캐릭터는 다 있는거 같은데 비율이 틀리네요. 일부 문자는 넓어지고 다른 문자는 오른쪽으로 밀려납니다.

결과 PDF를 살펴보면 각 문자의 너비가 전체 너비와 절반 너비로 고정되어 있는 것 같습니다. 문제를 명확하게 설명했으면 좋겠습니다.

-

편집 2: aahub여기에 제공된 글꼴과 같이 다른 글꼴을 사용하면 작동합니다.https://fonts.aahub.org/

답변1

나는 이것이 당신이 원하는 것을 수행하는 더 안전한 방법이라고 생각합니다.

\ProvidesPackage{jart}[2023/03/06 Japanese ASCII Art]
\RequirePackage{fancyvrb}
\usepackage{fontspec}
\newfontfamily\verbatimfont[%
  NFSSFamily       = {myverbatimfont}%
]{msgothic.ttc}
\fvset{fontsize=\small,xleftmargin=2em}
\def\jart@num{18}
\def\jart@px{16}
\DefineVerbatimEnvironment{jart}{Verbatim}{%
  fontfamily=myverbatimfont,%
  numbers=none,%
  framesep=0.5em,%
  rulecolor=white,%
  baselinestretch=\numexpr\jart@num/\jart@px\relax
}
  1. -type 텍스트 \setmonofont에 사용되는 글꼴을 전체적으로 변경하므로 이 명령을 사용하지 않습니다 . \verb대신에 a를 정의 \newfontfamily하고 귀하의 환경에 맞게 로컬로 사용합니다.
  2. 이는 패키지로 간주되므로 항상 패키지별 매크로 앞에 패키지 이름을 붙이는 것이 좋습니다(예: \jartnum그냥 \num. 우리는 항상 최종 사용자를 위해 패키지 매크로를 점점 더 구체적으로 만듭니다. 기본적으로, 이제 누구나 \def\num{some-interesting-definition}자신의 문서에서 사용할 수 있고 jart특별히 \jartnum.
  3. 기호 정보 @: '내부' 매크로, 즉 패키지에만 필요한 매크로에서는 일반적으로 패키지 이름 접두사 뒤 매크로의 어딘가에 '@' 기호를 추가합니다. 그래서 대신 \jartnum\jart@num. 이제 일부 사용자가 \jart@num코드를 재정의하려고 시도하더라도 LaTeX는 이를 허용하지 않습니다. \makeatletter이를 재정의하려면 특수 명령을 사용해야 합니다 . 이는 기본적으로 패키지와 최종 사용자 모두에게 코드를 더 안전하게 만들고 코딩이 더 자유로워집니다.
  4. 일부 프로그래밍 언어와 달리 LaTeX에서는 즉시 수학을 수행할 수 없습니다. LaTeX에 있는 계산을 시작해야 합니다 \numexpr. 내부 매크로를 사용하여 값을 정의한 다음 \numexpr코드에서 볼 수 있는 것과 같은 계산을 적용합니다.
  5. \NeedsTeXFormat{LaTeX2e}요즘에는 더 이상 라인이 필요하지 않습니다 .

추신: 귀하의 코드와 관련은 없지만 패키지를 출시할 계획이므로 TeX Live와 함께 배포되는 글꼴을 사용해 보십시오. 당신 msgothic.ttc은 그렇지 않습니다. 또한 (자유와 마찬가지로) 무료도 아닙니다. 무료 대안을 찾아서 사용하십시오.

관련 정보