%20%EB%8B%A4%EC%96%91%EC%84%B1(%EB%B3%B5%EC%9E%A1%EC%84%B1)%20%EB%B2%95.png)
최근에 나는 LaTeX가 (아마도) 앞지르는 것에 대해 점점 더 불안해졌습니다.타이프스트단순성 때문입니다.이 답변LaTeX에 비해 Typst의 여러 가장자리를 보여줍니다.
나는 왜 여전히 Typst 대신 LaTeX를 선택하는지에 대해 반 친구 중 한 명과 논쟁을 벌였습니다.
- LaTeX의 조판 품질이 우수합니다.(Typst가 빠르게 따라잡고 있지만)
- 나는 티를 사랑한다케이Z, Typst에는 해당 항목이 없습니다.(사실 지금은 있어요.CeTZ)
- Typst의 CJK 지원은 좋지 않지만 XeLaTeX 및 LuaLaTeX는 CJK 글꼴을 잘 처리합니다.(이 문제는 곧 해결될 것 같아요)
- Typst의 수학은 끔찍합니다. LaTeX는 이미 표준을 설정했습니다.
- 사실 저는 LaTeX에 익숙하기 때문에 Typst로 전환하고 싶지 않습니다.
:-(
그러나 나는 몇 가지 사실에 놀랐습니다.
- LaTeX의 매크로는 실제 프로그래밍만큼 편리하지 않습니다., 문제를 완화하기 위한 LaTeX3가 있더라도 마찬가지입니다.
- LaTeX 문서 컴파일 속도가 느려질 수 있음, Rust를 사용하는 Typst와 비교됩니다.
- Typst의 더 쉬운 구문으로 인해 사람들은 LaTeX 대신 Typst를 배우고 싶어하게 될 것입니다.. LaTeX에는 학습자에게 매우 혼란스러울 수 있는 패키지가 많으며 일부 패키지는 충돌하기도 합니다.
나는 LaTeX 커뮤니티 내에서 다음과 같은 몇 가지 변경 사항을 확인했습니다.지각의Rust를 사용하여 LaTeX를 다시 작성합니다.
그렇다면 TeX/LaTeX가 이 아름다운 언어를 계속 번창하도록 유지하기 위한 TeX 커뮤니티의 계획은 무엇입니까? 나는 더 많은 것을 배우고 싶고 기여하고 싶습니다.
답변1
글쎄요, 처음에는 "쉬움"과 "빠름" 주장에 대해 오히려 조심스러워할 것입니다. 10년 전 나는 Word가 LaTeX와 어떻게 다른지에 대한 질문에 대답했습니다.
예, Word를 사용하면 대부분의 일반적인 작업을 문제 없이(때로는 더 빠르고 쉽게) 수행할 수 있습니다. 하지만 약간 "비정상적인 것"은 어떻습니까?
typst는 젊음을 뜻하는 "현대"입니다. 시작했을 때 각주, 플로트, 북마크, 이중 페이지 레이아웃, 양식 필드 또는 PDF 주석과 같은 일반적인 작업도 수행할 수 없었습니다. 그리고 그 중 일부는 현재 구현되어 있지만 LaTeX나 지원 패키지에 존재하는 많은 구성 옵션이 여전히 부족합니다. 현재 예는 \pageref
typst 와 같은 기본적인 것을 얻는 방법에 대한 토론입니다 .https://github.com/typst/typst/issues/2873.
배우기 쉬운 구문으로 쉬운 작업을 수행하는 것은 쉽고 이것이 # my chapter
제목을 만드는 훌륭하고 짧은 방법이라는 점에 동의합니다(그러나 LaTeX 구문 \chapter{my chapter}
도 길지 않습니다). 그러나 문제는 더 많은 것을 원할 경우 어떻게 되는지입니다. 복잡한 것들. 번호가 없는 섹션에 대한 직관적인 구문이 있습니까? 목차나 헤더의 항목을 어떻게 조정할 수 있나요? 내장되어 있습니까? 아니면 위에 인용된 문제의 페이지 참조와 같은 10줄 이상의 코드를 찾아서 복사해야 합니까? typst가 더욱 성숙해지고 보다 정교한 문서 기능에 대한 기능 요청을 받으면 사용하기 쉽게 유지됩니까?
두 번째로 나는 typst와 같은 "현대적인" 시스템이 처음부터 PDF 접근성 기능을 지원하지 않는다는 사실에 상당히 괴로워했습니다. 개인 문서의 경우 접근성이 중요하지 않을 수 있지만 일부 조직을 위해 글을 쓰는 사람은 곧 이 주제를 고려해야 합니다. typst 작성자는 이를 알고 태그된 PDF에 대한 구조 데이터가 필요하다는 것을 알고 있었지만 그럼에도 불구하고 컴파일러를 작성하여 해당 데이터를 잃어버렸습니다.프레임에는 현재 문서 구조에 대한 전체 역방향 매핑이 아닌 로케이터만 포함되어 있으므로 내보내기에서는 이 구조 정보를 쓸 수 없습니다." 그들주장하다그들은이용 가능한 의미론적 정보가 상당히 많기 때문에 좋은 위치에 있습니다., 그러나 LaTeX는 30년 동안 의미론적 정보를 제공해왔기 때문에 접근 가능한 태그가 있는 PDF를 쉽게 생성할 수 없습니다.
조판 엔진을 처음부터 작성하려고 고려했다면(대형 시스템은 해체하고 재구축하는 것이 아니라 진화를 통해 변경되어야 한다고 믿기 때문에 그렇게 하지 않을 것입니다. 도시의 모든 주민을 다른 곳으로 이동할 수는 없습니다.) 처음부터 다시 디자인했다면 핵심 디자인이 처음부터 접근성을 고려했는지 확인하고 나중에 고려하지 않았을 것입니다. 그들이 이 기회를 놓쳤다는 사실이 내 눈에는 타이프스트를 매우 현대적이지 않게 만듭니다.
답변2
LaTeX 대체품을 작성하는 사람으로서 저는 LaTeX가 미래에 다른 것으로 대체되는 것이 좋은 일이라고 생각합니다. TeX 매크로 언어로 프로그래밍하는 것은 엉망이고 이전 버전과의 호환성에 대한 약속은 진행이 불가능하지는 않더라도 느리다는 것을 의미합니다. (나는 여전히 주요 버전 번호를 활용하여 중단하기보다는 LaTeX3을 진화하는 LaTeX2e로 접은 것이 심각한 실수라고 생각합니다. 이전 버전과의 호환성.
내 예측은 LaTeX의 후속 제품이 등장한다면 LaTeX의 마크업은 유지하지만 매크로 기반 프로그래밍 모델은 피할 것이라는 것입니다. 작성자는 마찰이 거의 없이 전환할 수 있어야 합니다. 취약한 LaTeX 매크로 시스템의 죽음을 슬퍼하는 사람은 아무도 없을 것입니다. TeX가 Turing 완전하다고 해서 이것이 작업을 수행하는 가장 좋은 방법이나 심지어 좋은 방법이라는 의미는 아닙니다.
내가 기대하는 것은 패키지와 문서 클래스(또는 이에 상응하는 것)의 버전을 관리하여 CTAN이 세 가지 종속성 패키지를 업데이트하고 해당 문서가 더 이상 컴파일되지 않을 때 아무도 놀라지 않도록 하는 것입니다. 또한 최신 컴퓨팅 시스템에서는 참조 및 인용과 같은 항목을 관리하기 위해 여러 번 실행해야 할 이유가 없습니다. 단일 애플리케이션으로 LaTeX, BibTeX, makeindex 등의 기능을 처리할 수 있습니다.
나도 글을 쓴다기보다는 그런 느낌이 든다.
\documentclass{amsart}
더 나은 접근 방식은 다음과 같은 작업을 수행하는 것이었을 것입니다.
\DocumentStructure{article}
\DocumentFormat{ams}
또는 더 나은 방법은 다음과 같습니다.
\DocumentStructure{article:1.0}
\DocumentFormat{ams:ams:1.0}
여기에는 버전 번호뿐만 아니라 네임스페이스도 있으므로 서로의 파일 이름이 충돌하는 것에 대한 지속적인 걱정이 없습니다.
마지막으로, 로컬 복사본이 존재하지 않으면 문서에 대한 외부 종속성을 자동으로 다운로드하여 핵심 배포판의 크기가 더 이상 크지 않도록 제안하겠습니다.
답변3
typst의 가장 큰 단점은 심각한 디자인 실수라고 생각하는데, 이는 typst와 호환되지 않는다는 것입니다 LaTeX
. 대량의 기존 문서, 아카이브 등을 처리하려면 어떻게 해야 합니까? 모든 것을 버리고 처음부터 다시 시작하시겠습니까? 저는 처음부터 LaTeX를 사용해 왔습니다. 이제 거의 40년이 되었습니다! 개선의 이정표 는 레이저젯(빠른 적응), pdfTeX
, babel
, 이제 l3
레이어, LuaTeX
, , 의 사용이었습니다 .PGF/Tikz
BiblaTeX
microtype
TeX/LaTeX의 마크업 언어는 우리가 아직 사용하고 있는 많은 이전 세대보다 더 오래 지속되고 지속될 것입니다. Dragon 책을 읽는 사람이라면 누구나 알겠지만, 주변의 수많은 문자에서 명령과 매개변수를 선택하는 컴파일러를 생각해내는 것은 쉽지 않습니다.
개선될 수 있나요? 예! 내 생각에 개선될 수 있는 영역은 다음과 같습니다.
- 웹 브라우저 및 IDE에서 수행하는 것과 유사하게 글꼴에 누락된 글리프를 자동으로 대체합니다. 이는 현재 대체 글꼴이 포함된 LuaTeX/LuaLaTeX를 사용하여 달성할 수 있지만 너무 느려집니다.
- 프로그래밍 가능한 출력 루틴. 기본값은 TeX 엔진 자체에 내장되어야 합니다.
- 패키지 충돌과 관련된 많은 문제는
hyperef
. 작성자가 패키지에 의존하지 않고 링크를 더 쉽게 사용할 수 있도록 새로운 메커니즘을 설계해야 합니다. 이를 통합하기 위해 기본 클래스를 수정할 수 있으므로 모든 섹션화 및 참조 명령을 재정의하기 위해 하이퍼레프가 필요하지 않습니다. 이것을 형식에 포함시키세요. - 인도어 및 동아시아 문서 처리는 haffbuz 및 LuaTeX에 기여하여 향상될 수 있습니다. 언어를 변경하기 위해 패키지를 로드할 필요가 없습니다.
- 가상 글꼴 생성이 향상될 수 있습니다.
다양한 시스템을 시도하고 개발하는 모든 분들께 감사드립니다. 경쟁은 좋은 것이며 행운을 빕니다. 나는 일전에 일부 통계를 보고 l3과 LuaTeX 사이에 실행 시 로드된 항목에 약 130,000개의 loc가 추가되었음을 언급했습니다. 원래 TeX에는 약 20,000개의 loc이 있었습니다. 문제가 있는 일부 영역을 처리하기 위해 엔진 자체를 개선하려는 노력이 모든 것을 처음부터 다시 작성하는 것보다 더 쉽고 유용할 수도 있습니다.
답변4
Latex 커뮤니티의 구체적인 계획을 알지 못해도 우리는 두 anticipate future development
가지 과학적 발견을 어느 정도 재사용 Latex
할 수 있습니다.Typst
이로 인해 우리는 구체적인 계획이나 추측을 바라보는 것에서 좀 더 건전하고 글로벌한 관점으로 이동하게 됩니다.
필수(최소) 다양성(복잡성) 법
이는 다음과 같이 돌아갑니다.W.로스 애쉬비, 사이버네틱스의 창립 정신 중 하나입니다. 그는 부분적으로 내 말로 다음과 같이 말했습니다.
- 복잡성을 다루기 위해
- 조정기/제어기는 최소한 그만큼 복잡해야 합니다.
- 복잡하지 않은 레귤레이터로 인해 규제가 실패함
- 특히 소음(교란)이 관련되어 있습니다.
Ashby의 예
그의"사이버네틱스 입문", 1956그는 기본 방정식과 고려 사항을 설명하기 위해 온도 조절기를 사용합니다.
기본적으로 다음과 같이 명시되어 있습니다.
- 정상적인 환경 온도 변화 범위 내에서 컨트롤러가 제대로 작동합니다.
- 그러나 날씨가 매우 불안정하면 더 이상 변화를 보상할 수 없기 때문에 실패합니다.
예를 참조하십시오여기(단순화된 장), 또는여기 (Variety의 Wikipedia)또는여기(위에 인용된 그의 책에서).
내 그림
간단한 철도를 생각해 봅시다. 하나의 선로, 하나의 기차, 문제 없습니다. 기차는 하루 종일 왕복합니다.
점점 증가하는 교란(D+)에 대응하여 단계적으로 복잡성(C+)을 증가시켜 봅시다.
D+: 같은 선로에 두 번째 열차를 운행합니다. 이제 서로를 방해하면서 문제가 시작됩니다. 해결책으로 우리는 시스템의 복잡성을 증가시켜야 합니다.
C+: 어떤 기차가 어디로, 언제, 얼마나 자주 가는지 등을 규제하는 시간표를 소개하겠습니다. 이는 많은 상황에 적합할 수 있습니다.
D+: 두 열차를 모두 타는 것이 점점 더 대중화되었고, 한쪽 끝에서 다른 쪽 끝으로 이동하기 위해 항상 열차를 갈아타야 하는 것에 사람들이 짜증을 내기 시작했습니다.
C+: 두 열차가 서로 지나갈 수 있도록 레일 스위치를 추가해 보겠습니다. 시간표를 조정하자.
등등. 우리 모두는 오늘날 달성된 철도 시스템의 복잡성 상태를 다음과 같이 알고 있습니다.
- 방향당 최소 두 개의 트랙이 있는 경우가 많습니다.
- 특정 역이나 그 근처에 많은 선로가 있는 경우
- 다양한 열차 제공
- 모든 종류의 신호를 사용하여
- 다양한 종류의 철도 건널목 제공
- "밖에서 무슨 일이 일어나고 있는지"에 대한 디지털 트윈 보유
- 등.
단순화하다, 경제 통제자가하는 경향이 있고 누군가가 대가를 지불하는 것처럼.(막 다른 골목)
꾸미다, 그리고 둘 다 얻습니다: 더 간단하고 더 복잡합니다.(혁신)
후자는 발명가의 작업 요약입니다.(의도) "과학으로서의 혁신", 겐리히 알트슐러. (TRIZ, 러시아어 약어, 내 번역: 창의적 상황을 해결하는 실용적인 이론)
Latex와 Typst의 경우 이는 무엇을 의미합니까?
우리 모두는 Latex
IS가 복잡하다는 것을 알고 있습니다. 또는 Ashby의 관점에서는 많은 다양성/방해에 대처합니다. 높은 수준의 조판으로 성숙해졌고...아직이야, 여기를 봐.
그것의 발전으로 인해 Typst
여전히 소위 infancy state
. 이는 특정 개념을 염두에 두고 시작하여 여전히 제한된 수의 조판 결과를 제공하며, 모든 기술 시스템과 마찬가지로 더욱 발전할 것입니다.
- 모순으로부터
(roadblock, trade-off: this EXOR that)
- 솔루션을 통해
(system change, exact solution: this AND that)
- 모순에
(next roadblock)
.
많은 사람들이 말했듯 Typst
이 IS는 더 간단하며 그렇게 될 예정입니다. 이는 다음과 같이 번역됩니다.
Typst
보다 덜 복잡하다Latex
Latex
지금 보다 더 많은 장애/다양성/요구사항을 처리할 수Typst
있으며 아마도 앞으로도 그럴 것입니다.- 에서 제공하는 다양성을 따라잡으려면
Latex
생태계Typst
(구문, 컴파일러, 패키지, 라이브러리 등)가 더욱 복잡해지고 더 많은 요구 사항/다양성을 흡수할 수 있어야 합니다.
결과적으로 아마도 다음과 같을 것입니다:
- 번역가를 찾기가 더 쉽습니다
Latex2Typst
(다양성 제거). - 번역가를 찾기가 어렵거나 거의 불가능합니다
Typst2Latex
(다양성/복잡성 추가).(단순히 라텍스 파일 형식으로 저장하는 것과는 대조적)
나의 결론 및 추정(향후 달성됨)
가까운 미래에 나는 Typst
계속 존재할 것으로 기대합니다.와이등ㅏ아니중아크업엘언어는 Latex
조판을 계속 지원합니다 ...
둘 사이의 일부 링크(위에서 번역자라고 함)가 왔다 갔다 합니다.
Typst
에 의해 흡수(제공)될 수 있는 의 유용한(아주 큰) 하위 집합이 있을 수 있습니다 Latex
.
그 반대, 적어도 조판의 복잡성을 보존하는 것은 아마도 결코 사용 가능한 상태에 도달하지 못할 것입니다.