저는 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 파일에 사용된 것과 동일한 아트가 적절하게 조판된 경우 다음과 같습니다.
캐릭터는 다 있는거 같은데 비율이 틀리네요. 일부 문자는 넓어지고 다른 문자는 오른쪽으로 밀려납니다.
결과 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
}
- -type 텍스트
\setmonofont
에 사용되는 글꼴을 전체적으로 변경하므로 이 명령을 사용하지 않습니다 .\verb
대신에 a를 정의\newfontfamily
하고 귀하의 환경에 맞게 로컬로 사용합니다. - 이는 패키지로 간주되므로 항상 패키지별 매크로 앞에 패키지 이름을 붙이는 것이 좋습니다(예:
\jartnum
그냥\num
. 우리는 항상 최종 사용자를 위해 패키지 매크로를 점점 더 구체적으로 만듭니다. 기본적으로, 이제 누구나\def\num{some-interesting-definition}
자신의 문서에서 사용할 수 있고jart
특별히\jartnum
. - 기호 정보
@
: '내부' 매크로, 즉 패키지에만 필요한 매크로에서는 일반적으로 패키지 이름 접두사 뒤 매크로의 어딘가에 '@' 기호를 추가합니다. 그래서 대신\jartnum
에\jart@num
. 이제 일부 사용자가\jart@num
코드를 재정의하려고 시도하더라도 LaTeX는 이를 허용하지 않습니다.\makeatletter
이를 재정의하려면 특수 명령을 사용해야 합니다 . 이는 기본적으로 패키지와 최종 사용자 모두에게 코드를 더 안전하게 만들고 코딩이 더 자유로워집니다. - 일부 프로그래밍 언어와 달리 LaTeX에서는 즉시 수학을 수행할 수 없습니다. LaTeX에 있는 계산을 시작해야 합니다
\numexpr
. 내부 매크로를 사용하여 값을 정의한 다음\numexpr
코드에서 볼 수 있는 것과 같은 계산을 적용합니다. \NeedsTeXFormat{LaTeX2e}
요즘에는 더 이상 라인이 필요하지 않습니다 .
추신: 귀하의 코드와 관련은 없지만 패키지를 출시할 계획이므로 TeX Live와 함께 배포되는 글꼴을 사용해 보십시오. 당신 msgothic.ttc
은 그렇지 않습니다. 또한 (자유와 마찬가지로) 무료도 아닙니다. 무료 대안을 찾아서 사용하십시오.