TEX
TeX![]() | |
개발자 | 도널드 크누스 |
---|---|
초기 릴리즈 | 1978; | 전 (
안정적 해제 | 3.141592653 / 2021년 2월; 전 |
리포지토리 | |
기록 위치 | WEB/Pascal |
운영 체제 | 크로스 플랫폼 |
유형 | 유형설정 |
면허증 | 허용 가능한 무료 소프트웨어 |
웹사이트 | tug |
파일 이름 확장명 | .tex |
---|---|
인터넷 미디어 유형 | 애플리케이션/x텍스 |
초기 릴리즈 | 1978; | 전 (
형식 유형 | 문서 파일 형식 |
시스템 내에서 TeX로 스타일화한 TeX(/t withinx/, 이하 참조)는 도날드 크누스가[1] 설계·작성해 1978년 처음 출시한 형식설정 시스템이다.TeX는 복잡한 수학 공식을 유형화하는 인기 있는 수단이다. TeX는 가장 정교한 디지털 인쇄 시스템 중 하나로 알려져 있다.[2]
TeX는 학계, 특히 수학, 컴퓨터 과학, 경제학, 정치학, 공학, 언어학, 물리학, 통계학, 양적 심리학 등에서 널리 사용되고 있다.대부분의 유닉스 설비에서 이전에 선호하던 포맷 시스템인 [b]유닉스 트로프를 교체한 지 오래다.특히 LaTeX, ConTeXt 및 기타 매크로 패키지의 형태로 많은 다른 유형 설정 태스크에도 사용된다.
TeX는 2가지 주요 목표를 염두에 두고 설계되었는데, 그것은 누구나 최소한의 노력으로 고품질 책을 제작할 수 있도록 하는 것과, 어느 시점이라도 모든 컴퓨터에서 정확하게 동일한 결과를 제공하는 시스템을 제공하는 것이다([3]글꼴 설명을 위한 메타폰 언어와 컴퓨터 모던 계열의 타이프레이즈).TeX는 무료 소프트웨어로 다양한 사용자가 접근할 수 있게 했다.
역사
1968년 크누스의 「컴퓨터 프로그래밍의 기술」 제1종이 발간되었을 때,[4] 모노타이프 기계가 설정한 핫 메탈 타입세팅을 이용한 활자집이었다.19세기로 거슬러 올라가는 이 방법은 크누스가 인정하는 '클래식 스타일'을 만들어냈다.[5]1976년 제2판이 출판되었을 때, 모노타이프 기술이 주로 포토타입으로 대체되어 원본 글꼴을 더 이상 사용할 수 없게 되었기 때문에, 책 전체를 다시 타이핑해야 했다.크누스는 1977년 3월 30일 새 책의 갤리 교정쇄를 받았을 때 그들이 열등하다는 것을 알았다.
제2권 제2판의 갤리 교정쇄에 실망한 그는 자신만의 타이핑 시스템을 설계하려는 동기가 생겼다.크누스는 처음으로 고품질 디지털 타이핑 시스템의 출력을 보고 디지털 타이포그래피에 관심을 갖게 되었다.1977년 5월 13일, 그는 TeX의 기본 특징을 설명하는 메모를 스스로 작성했다.[6]
1978년 안식년 휴가로 끝낼 계획이었지만 마침 그 언어는 10여 년이 지난 1989년까지 '냉동'(사용 준비)되지 않았다.가이 스틸은 크누스가 TeX의 첫 버전을 개발하던 1978년 여름 우연히 스탠포드에 있었다.스틸은 그해 가을 매사추세츠 공과대학으로 돌아왔을 때 TeX의 입출력(I/O)을 다시 작성해 비호환 타임즈해링 시스템(ITS) 운영체제 아래 운영되도록 했다.TeX78이라고 불리는 TeX의 첫 번째 버전은 SALE 프로그래밍 언어로 쓰여 스탠포드 WAITS 운영 체제 아래 PDP-10에서 실행되었다.
웹 및 리터럴 프로그래밍
Knuth는 TeX의 이후 버전에서 동일한 원본 파일에서 컴파일 가능한 소스 코드와 교차 링크된 문서 유형을 생성하는 방법인 Leterate Programming 개념을 발명했다.사용되는 언어는 WEB라고 불리며 DEC PDP-10 파스칼에서 프로그램을 생산한다.
TEX82
TeX82는 처음부터 다시 쓰여진 새로운 버전의 TeX82가 1982년에 출판되었다.그 중에서도 원래의 하이픈화 알고리즘은 프랭크 량(Frank Liang)이 쓴 새로운 알고리즘으로 대체되었다.TeX82는 또한 부동소수점 대신 고정점 산수를 사용하여 서로 다른 컴퓨터 하드웨어에 걸친 결과의 재현성을 보장하며 가이 스틸의 강도 높은 로비에 이어 진짜 튜링완전 프로그래밍 언어를 포함한다.[7][8]1989년 도널드 크누스는 새로운 버전의 TeX와 Metafont를 출시했다.[9]프로그램을 안정적으로 유지하려는 욕구에도 불구하고 크누스는 텍스트 입력용 128개의 다른 문자가 외국어를 수용하기에 충분하지 않다는 것을 깨달았다; TeX 3.0 버전(TeX90이라고도 함)의 주요 변화는 따라서 텍스트 입력에서 256개의 다른 문자를 허용하는 8비트 입력으로 작업할 수 있는 능력이다.
TeX는 버전 3부터 10진수 끝에 숫자를 하나 더 추가해 업데이트를 표시하는 특색있는 버전 번호 부여 시스템을 사용해 버전 번호가 점증적으로 π에 근접하도록 했다.이는 TeX가 현재 매우 안정적이고, 사소한 업데이트만 예상된다는 사실을 반영한 것이다.현재 TeX 버전은 3.141592653으로, 2021년에 마지막으로 업데이트되었다.[10]디자인은 버전 3.0 이후 동결되었으며, 새로운 기능이나 근본적인 변화는 추가되지 않을 것이기 때문에 모든 새로운 버전은 버그 수정만을 포함할 것이다.[11]도널드 크누스 자신이 TeX가 개선될 수 있었던 몇 가지 분야를 제시했음에도 불구하고, 그는 새로운 기능을 도입하는 것보다 현재와 미래에 동일한 출력을 생산할 변하지 않는 시스템을 갖는 것이 더 중요하다고 확고히 믿는다는 뜻을 내비쳤다.이 때문에 그는 '절대적으로 최종 변경(내 사후 변경)'이 버전 번호를 π으로 바꾸는 것으로, 이때 남은 버그가 모두 특징이 될 것이라고 밝힌 바 있다.[12]마찬가지로 2.0 이후의 메타폰트 버전도 점증적으로 e(현재 2.7182818)에 접근하고 크누스 사후에도 비슷한 변화가 적용된다.[11]
공용 도메인
TeX의 소스 코드는 본질적으로 퍼블릭 도메인(아래 참조)에 있기 때문에 다른 프로그래머들은 시스템 개선을 허용(그리고 명시적으로 권장)하지만, 수정된 TeX를 배포하기 위해서는 다른 이름을 사용해야 하는데, 이는 소스 코드가 여전히 진화할 수 있다는 것을 의미한다.예를 들어, 오메가 프로젝트는 주로 TeX의 다국어 유형 설정 능력을 향상시키기 위해 1991년 이후에 개발되었다.[13]크누스는 TeX-XeT와 같은 '비공식' 수정 버전을 만들어 사용자가 같은 문서에 왼쪽에서 오른쪽에서 왼쪽으로 쓰는 문자와 왼쪽에서 쓰는 문구를 혼합할 수 있도록 했다.[14]
TeX 사용
컴퓨터 과학, 수학, 공학, 물리학과 같은 몇몇 기술 분야에서 TeX는 사실상의 표준이 되었다.애디슨 웨슬리, 케임브리지 대학 출판부, 엘스비에, 옥스포드 대학 출판부, 스프링거가 출판한 책들을 포함하여 수많은 책들이 TeX를 이용하여 출판되었다.이들 분야의 수많은 학술지는 TeX나 LaTeX를 이용해 제작돼 작가들이 TeX로 작성한 원고를 제출할 수 있다.[15]사전과 법률 출판물 등 다른 분야의 출판물들이 TeX를 이용해 많이 제작되었지만, TeX는 주로 수학의 활자를 맞추도록 설계되었기 때문에 더 기술적인 분야만큼 성공적이지 못했다.
그가 TeX를 디자인할 때, 도널드 크누스는 단일 타이핑 시스템이 모든 사람들의 요구에 부합할 것이라고 믿지 않았다. 대신, 그는 프로그램 안에 많은 후크를 디자인하여 확장자 쓰기가 가능하도록 했고, 출판사들이 그들 자신의 필요에 맞게 버전을 디자인하기를 바라면서 소스 코드를 발표했다.그러한 확장이 만들어졌지만(크누스 자신이 몇몇을 포함)[14] 대부분의 사람들은 매크로만을 사용하여 TeX를 확장했고 그것은 기술적 형식 설정과 관련된 시스템으로 남아있다.[16][17]
유형설정 시스템
TeX 명령은 일반적으로 백슬래시로 시작하고 곱슬브레이스로 그룹화된다.거의 모든 TeX의 통사적 속성이 순식간에 바뀔 수 있기 때문에 TeX 입력이 TeX 자체 외에는 어떤 것으로도 구문 분석하기 어렵다.TeX는 매크로 및 토큰 기반 언어로서 대부분의 사용자 정의 명령어를 포함한 많은 명령어가 실행되지 않는 토큰만 남아 있을 때까지 즉석에서 확장된다.팽창 자체는 실질적으로 부작용이 없다.매크로의 꼬리 재귀는 메모리를 필요로 하지 않으며, 만약 그렇다면 엘스 구조를 이용할 수 있다.이는 팽창 수준에서도 TeX를 튜링 완성 언어로 만든다.[18]시스템은 4단계로 나눌 수 있다: 첫째로, 입력 파일에서 문자를 읽고 범주 코드(약칭 "catcode"라고도 함)를 할당한다.백슬래시(실제, 카테고리 0의 모든 문자)와 문자( 카테고리 11의 문자) 또는 단일 다른 문자의 조합은 컨트롤 시퀀스 토큰으로 대체된다.이런 의미에서 이 단계는 비록 숫자로부터 숫자를 형성하지는 않지만 어휘적 분석과 같다.다음 단계에서는 확장 가능한 제어 시퀀스(예: 조건 또는 정의된 매크로)가 교체 텍스트로 대체된다.세 번째 단계의 입력은 문자 흐름(특수 의미를 가진 입력 포함)과 확장 불가능한 제어 시퀀스(일반적으로 할당 및 시각적 명령)이다.여기서 문자는 한 단락으로 조립되며, TeX의 문단 브레이크링 알고리즘은 전체 단락에 걸쳐 중단점을 최적화하여 작동한다.네 번째 단계는 선과 다른 자료의 수직 목록을 페이지로 세분화한다.
TeX 시스템은 모든 문자와 기호의 크기에 대한 정확한 지식을 가지고 있으며, 이 정보를 이용하여 한 페이지당 한 줄, 한 줄당 한 줄의 최적 배열을 계산한다.그런 다음 모든 문자의 최종 위치를 포함하는 DVI 파일("DeBicle Independent")을 생성한다.이 DVI 파일은 적절한 프린터 드라이버로 직접 인쇄하거나 다른 형식으로 변환할 수 있다.오늘날에는 DVI 생성을 완전히 우회하는 pdfTeX가 자주 사용된다.[19]기본 TeX 시스템은 원시형이라고 불리는 약 300개의 명령을 이해한다.[20]이러한 낮은 수준의 명령은 사용자가 직접 사용하는 경우가 거의 없으며 대부분의 기능은 포맷 파일(대규모 매크로 컬렉션을 로드한 후 TeX의 predumped memory image)에 의해 제공된다.약 600개의 명령을 추가하는 크누스의 원래 기본 형식은 플레인 TeX이다.[21]가장 널리 사용되는 형식은 LaTeX로, 원래 Leslie Lamport가 개발한 것으로, 책, 편지, 슬라이드 등의 문서 스타일을 통합하고, 섹션과 방정식의 참조와 자동 번호 매기기 등의 지원을 추가한다.또 다른 널리 사용되는 형식인 AMS-TeX는 미국수학협회에 의해 제작되어 더 많은 사용자 친화적인 명령을 제공하며, 이는 저널에 의해 그들의 집 스타일에 맞게 변경될 수 있다.AMS-TeX의 대부분의 기능은 "AMS 패키지"(예: AMS 패키지)를 사용하여 LaTeX에서 사용할 수 있다.amsmath
,amssymb
) 및 "AMS 문서 클래스"(예:amsart
,amsbook
이를 AMS-LaTeX라고 한다.[22]다른 형식으로는 주로 데스크톱 퍼블리싱에 사용되며 주로 Pragma에서 Hans Hagen에 의해 쓰여진 ConTeXt가 있다.
실행 방법

일반 TeX의 Hello 월드 프로그램의 예:
Hello, World \bye %는 파일의 끝을 표시하며 최종 출력에 표시되지 않음
.tex는 일반 TeX 파일의 일반적인 확장명이기 때문에 myfile.tex 파일에 있을 수 있다.기본적으로, 줄에 있는 백분율 기호를 따르는 모든 것은 TeX에 의해 무시된 논평이다.이 파일에서 TeX를 실행하면(예: 명령줄 통역기를 입력하거나 그래픽 사용자 인터페이스에서 호출하여) myfile.dvi라는 출력 파일이 생성되며, DVI(장치 독립 형식)로 페이지 내용을 나타낸다.그러면 DVI 파일은 화면에서 보거나 장치 드라이버가 있는 다양한 프린터에 적합한 형식으로 변환할 수 있다(프린터 지원은 일반적으로 TeX가 생성되었을 당시 운영 체제 기능이 아니었다).크누스는 출력 포맷으로 DVI를 필요로 하는 TeX와 이후 버전의 TeX, 특히 pdfTeX, XeTeX, LuaTeX 모두 PDF로 직접 출력을 지원한다고 말했다.
수학적 예
TeX는 특히 수학 공식을 위한 다른 텍스트 구문을 제공한다.예를 들어, 2차 공식(이차 방정식의 해법)은 다음과 같이 나타난다.
마크업 | 렌더링: |
---|---|
|
|
이 공식은 손으로 쓰거나 방정식을 타이핑하는 방식으로 인쇄된다.문서에서 수학 모드 입력은 $ 기호로 시작한 다음 TeX 구문에 공식을 입력한 다음 동일한 기호의 다른 기호로 다시 닫는 방식으로 이루어진다.크누스는 수학의 유형화는 전통적으로 비용이 많이 들도록 되어 있었기 때문에 플레인 TeX에서 수학 모드의 시작과 끝을 나타내기 위해 달러 기호를 선택했다고 농담으로 설명했다.[23]디스플레이 수학(새로운 행을 중심으로 제시된 수학)은 유사하지만 단일 달러 기호 대신 $를 사용한다.예를 들어, 위의 2차 공식이 표시 수학에 포함된 경우:
마크업 | 렌더링: |
---|---|
| |
(여기에서의 예는 실제로 TeX와 함께 렌더링되지 않는다. 간격, 문자 크기 및 기타 모든 것이 다를 수 있다.)
양상
TeX 소프트웨어는 TeX가 출시되었을 당시 다른 형식 설정 프로그램에서 사용할 수 없었거나 품질이 낮았던 여러 측면을 통합했다.일부 혁신은 흥미로운 알고리즘에 기초하고 있으며 크누스의 학생들을 위한 여러 논문들로 이어졌다.이러한 발견들 중 일부는 현재 다른 유형화 프로그램에 통합되었지만, 수학적 간격에 대한 규칙과 같은 다른 것들은 여전히 독특하다.
수학적 간격

TeX언어의 1차 목표는 서적 출판사를 위한 고품질 서적 설정이기 때문에 크누스는 수학 공식을 위한 간격 규칙에 많은 관심을 기울였다.[24][25]그는 자신이 수학적 타이포그래피에 대한 우수 기준이라고 생각되는 세 가지 작품 즉, 한스 울프(Hans Wolf)의 감독 아래 애디슨 웨슬리 출판사(The Artison-Wesley Publishment of Computer Programming)의 출판사, 1910년경부터 시작된 수학 학술지 액타 매티매티매티카(Acta Matmatmatica)의 판)의 판, 인다)의 사본 등을 가져갔다.네덜란드의 수학 학술지 '아티온즈 매티매틱스'크누스는 이 인쇄된 종이들을 자세히 살펴보며 간격을 두고 일련의 규칙들을 찾아보았다.[26]TeX는 몇 가지 기본 규칙과 적절한 간격을 지정하는 데 필요한 도구를 제공하지만, 정확한 매개변수는 공식을 타이핑하는 데 사용되는 글꼴에 따라 달라진다.예를 들어 Knuth의 Computer Modern 글꼴의 간격은 몇 년 동안 정밀하게 조정되어 현재 설정되었지만, AMS 오일러와 같은 다른 글꼴이 Knuth에 의해 처음으로 사용되었을 때는 새로운 간격 매개변수를 정의해야 했다.[27]
TeX에서 수학의 형식 설정은 특히 스토리지 요구사항에 상당한 주의를 기울였던 시대에 고안된 폰트 메트릭스의 기술적 세부 사항에 대한 비판이 없는 것은 아니다.이로 인해 일부 "핵"은 일부 필드에 과부하를 초래했고, 그 결과 다른 "핵"이 필요하게 되었다.미적 차원에서도 급진주의 렌더링에 대한 비판이 나왔다.[28]OpenType 산술 글꼴 사양은 주로 TeX에서 빌렸으나, 몇 가지 새로운 특징/향상점이 있다.[29][30][31]
하이픈 연결 및 정당성
수동형식 설정과 비교해 볼 때 정당성 문제는 TeX와 같은 디지털 시스템으로 풀기 쉬운데, 이는 줄 바꿈을 위한 좋은 포인트가 정해졌더라면 줄 바꿈을 위해 단어 사이에 공간을 자동으로 분산시킬 수 있기 때문이다.따라서 가장 시각적으로 만족스러운 결과를 얻을 수 있는 중단점을 찾는 것이 문제다.많은 줄 바꿈 알고리즘은 각 줄의 중단점이 차례로 결정되고, 선택한 후에는 중단점이 변경되지 않는 퍼스트핏 접근법을 사용한다.[32]그러한 시스템은 다음과 같은 선에 미칠 영향에 따라 중단점을 정의할 수 없다.이에 비해 TeX가 사용하고 도날드 크누스와 마이클 플라스가 개발한 토탈핏 라인브레이킹 알고리즘은 한 단락에서 가능한 모든 중단점을 고려하고, 가장 세계적으로 만족스러운 배열을 만들어낼 라인브레이크의 조합을 찾아낸다.
형식적으로 알고리즘은 가능한 각 줄 바꿈과 관련된 불량도라는 값을 정의한다; 줄의 공간이 선을 정확한 너비로 만들기 위해 너무 늘어나거나 줄어들어야 하는 경우 불량도가 증가한다.중단점이 특히 바람직하지 않은 경우, 예를 들어, 단어를 하이픈으로 연결해야 하는 경우, 연속해서 두 줄을 하이픈으로 연결해야 하는 경우, 또는 매우 느슨한 줄에 즉시 매우 팽팽한 줄이 뒤따르는 경우 벌칙이 추가된다.그런 다음 알고리즘은 결과 선의 불량(벌칙 포함)의 제곱합을 최소화하는 중단점을 찾을 것이다.단락에 한 중단점이 n 인 경우 순진하게 평가해야 하는 상황 수는 이지만 동적 프로그래밍 방법을 사용하면 알고리즘의 복잡성을 (2) Big O 표기법 참조)로 낮출 수 있다.. 추가적인 단순화(예를 들어 단락의 첫 단어에 하이픈화 또는 매우 큰 줄의 오버플렉스 등 극히 가능성이 희박한 중단점을 테스트하지 않음)는 실행 이 Ow ) 인 효율적인 알고리즘으로 이어진다 서 w 은 선의 너비다.과부나 고아(문단의 나머지 부분이 다음 페이지나 앞 페이지에 있는 동안 한 페이지에 홀로 나타나는 선)를 피하기 위해 두 페이지에 걸쳐 단락을 구분하는 최선의 방법을 결정하기 위해 유사한 알고리즘을 사용한다.그러나 일반적으로 마이클 플래스의 논문은 수치 배치의 복잡성이 더해져 페이지 구분 문제가 어떻게 NP 완성될 수 있는지를 보여준다.[33]TeX의 줄 바꿈 알고리즘은 Adobe InDesign(데스크탑 퍼블리싱 애플리케이션)[34]과 GNU fmt Unix 명령줄 유틸리티와 같은 몇몇 다른 프로그램에 의해 채택되었다.[35]
라인에 적합한 줄 바꿈을 찾을 수 없는 경우, 시스템은 단어를 하이픈으로 연결하려고 시도할 것이다.TeX의 원판은 단어의 접두사 및 접미사 제거에 관한 규칙 집합에 근거한 하이픈화 알고리즘을 사용하였으며, 두 자음 사이에 모음-상음-상음-보울 형식(대부분 가능한)의 패턴으로 간격을 삽입해야 하는지를 결정하기 위해 사용하였다.[36]TeX82는 1983년 프랭크 량(Frank Riang)이 고안한 새로운 하이픈화 알고리즘을 도입해 문자 그룹의 중단점에 우선순위를 부여했다.하이픈으로 연결된 단어들의 말뭉치로부터 하이픈으로 된 패턴들의 목록이 먼저 자동으로 생성된다.예를 들어 TeX가 백과사전이라는 단어에서 허용 가능한 하이픈화 위치를 찾아야 한다면, 확장 단어 .encyclopedia의 모든 하위 단어들을 고려할 것이다. 여기서 .는 단어의 시작이나 끝을 나타내는 특별한 표식이다.하위 단어 목록에는 표지를 포함한 단어 자체인 14길이의 하위 단어까지 길이 1의 하위 단어(, e, n, c, y 등), 길이 2의 하위 단어(.e, en, nc 등)가 모두 포함된다.TeX는 이후 하이픈화 패턴 목록을 살펴보고, 각 위치에서 하이픈화의 만족도를 계산한 하위 단어를 찾을 것이다.우리 말의 경우, 11개의 그러한 패턴, 즉 cl44, cy, dia43, edi, edia3, ia1, oped5, pedi2, pedi, pedia4, yc를1 일치시킬 수 있다.단어의 각 위치에 대해 TeX는 백과사전을1144345434 산출하여 일치하는 모든 패턴 중에서 얻은 최대값을 계산할 것이다.마지막으로 허용 가능한 위치는 홀수 숫자로 표시된 위치로서, 허용 가능한 하이픈 변환 en-cy-clo-pe-di-a를 산출한다.하위 단어에 기초한 이 시스템은 낮은 지시 숫자(홀수 또는 짝수)를 가진 매우 일반적인 패턴(ia와1 같은)의 정의를 허용하며, 필요한 경우 보다 구체적인 패턴(예: dia43)으로 대체될 수 있다.이 패턴들은 원래 사전에서 하이픈의 약 90%를 발견한다; 더 중요한 것은 그들은 어떠한 가짜 하이픈도 삽입하지 않는다.또한, 예외 목록(패턴이 정확한 하이픈을 예측하지 못하는 단어)은 플레인 TeX 형식에 포함되며, 추가 예외 목록은 사용자가 지정할 수 있다.[37][page needed][38]
메타폰트
TeX의 일부분이 아닌 메타폰트는 설계자가 알고리즘으로 문자를 기술할 수 있는 폰트 기술 시스템이다.베지어 곡선을 상당히 표준화된 방식으로 사용해 실제 표시 문자를 생성하지만 크누스는 비트맵 표시장치의 래스터화 문제에 상당한 주의를 기울인다.John Hobbi가 쓴 또 다른 논문은 "브러시 궤적"을 디지털화하는 문제를 더 자세히 탐구한다.이 용어는 메타퐁이 등장인물을 추상적인 붓(및 지우개)에 의해 그려졌다고 기술한 데서 유래한다.일반적으로 TeX는 비트맵 글꼴을 기반으로 한다고 믿지만, 사실 이러한 프로그램들은 치수 외에 그들이 사용하고 있는 글꼴에 대해서는 아무것도 알지 못한다.PostScript Type 1과 TrueType을 포함한 다른 유형의 글꼴을 적절하게 처리하는 것은 장치 드라이버의 책임이다.Computer Modern(일반적으로 "TeX 글꼴"이라고 함)은 AMS 수학 글꼴과 마찬가지로 Type 1 형식으로 자유롭게 사용할 수 있다.PDFTeX, XeTeX 또는 LuaTeX와 같이 PDF로 직접 출력하는 TeX 시스템의 사용자는 일반적으로 Metafont 출력을 전혀 사용하지 않는다.
매크로 언어
TeX 문서는 특이한 매크로 언어를 사용하여 작성되고 프로그램된다.대체로 말해서, 이 매크로 언어의 실행은 직접적으로 상호작용하지 않는 확장 및 실행 단계를 포함한다.확장에는 조건부 분기뿐만 아니라 매크로 정의의 문자적 확장이 모두 포함되며, 실행에는 변수/등록기 설정과 박스에 글리프를 추가하는 실제 유형 설정과 같은 작업이 포함된다.
매크로의 정의는 명령어 목록뿐만 아니라 호출의 구문도 포함한다.그것은 매크로의 본체가 정의 시에 토큰화 된다는 점에서 M4와 같이 가장 널리 사용되는 어휘 전처리장치와 다르다.
TeX 매크로 언어는 LaTeX와 ConTeXt를 포함한 더 큰 문서 생산 시스템을 쓰기 위해 사용되어 왔다.
개발
현재 TeX 소프트웨어의 원본 소스 코드는 가독성과 휴대성을 보장하기 위해 TeX로 작성된 문서와 Pascal 하위 집합이 혼합된 WEB로 작성된다.예를 들어 TeX는 고정 크기 배열에서 동적 할당 자체를 모두 수행하고 내부 계산에는 고정 점 산술만 사용한다.그 결과 TeX는 거의 모든 운영체제에 포팅되었는데, 대개 웹2c 프로그램을 이용하여 소스 코드를 직접 컴파일하는 대신 C로 변환하는 방식을 사용하였다.크누스는 1982년부터 자신이 고친 모든 버그와 프로그램에서 변경한 내용을 매우 상세하게 기록해 왔으며, 2021년[update] 현재 리스트에는 TeX의 최종 변경사항으로 사망 후 해야 할 버전 수정은 포함하지 않고 440개의 항목이 수록되어 있다.[39][40]크누스는 TeX에서 버그를 발견하고 신고한 사람들에게 금전적인 상을 제공한다.버그당 상금은 2.56달러(약 1달러)[41]에서 시작해 현재 가치인 327.68달러로 동결될 때까지 매년 두 배씩 올랐다.크누스는 주장된 벌레가 거의 없었기 때문에 상대적으로 적은 돈을 잃었다.게다가 수령자들은 수표를 현금화하기보다는 TeX에서 버그를 발견했다는 증거로 액자를 짜는 것으로 알려져 있다.[42][43]
사기꾼들이 인터넷에서 그의 수표의 스캔본을 찾아내어 그의 은행 계좌를 빼내기 위해 그것들을 사용했기 때문에, 크누스는 더 이상 실제 수표를 보내지 않지만, 버그 보고서를 제출하는 사람들은 대신 산 세리페 은행에서 신용을 얻을 수 있다.[44]
분포 및 확장
TeX는 보통 Metafont와 함께 TeX 자체의 설치하기 쉬운 번들 형태로 제공되며, 형식 설정 시스템을 사용하는 데 필요한 모든 글꼴, 문서 형식, 유틸리티 등이 제공된다.Linux와 Apple MacOS를 포함한 UNIX 호환 시스템에서는 TeX가 더 큰 TeX Live 배포의 일부로 배포된다(TeX Live 이전부터 TeX 배포는 UNIX 호환 시스템에 대한 사실상의 표준이었다).Microsoft Windows에서는 MiKTeX 배포(proTeXt에 의해 향상됨)와 Microsoft Windows 버전의 TeX Live가 있다.
몇몇 문서 처리 시스템은 TeX를 기반으로 하고 있으며, 특히 James Clark의 DSSL 엔진, Arbortext 출판 시스템, GNU 문서 처리 시스템인 Texinfo에서 TeX를 인쇄하기 위한 백엔드로 사용하는 제이드TeX가 있다.TeX는 1984년부터 GNU 운영체제의 공식 타입설정 패키지였다.
Numerous extensions and companion programs for TeX exist, among them BibTeX for bibliographies (distributed with LaTeX), pdfTeX, a TeX-compatible engine which can directly produce PDF output (as well as continuing to support the original DVI output), XeTeX, a TeX-compatible engine that supports Unicode and OpenType, and LuaTeX, a Unicode-aware exte기본 TeX 루틴 및 알고리즘에 대한 광범위한 후크가 있는 루아 런타임을 포함하는 nsion to TeX.대부분의 TeX 확장은 CTAN, 포괄적인 TeX Archive Network에서 무료로 이용할 수 있다.
편집자
TeX와 함께 작업하도록 설계된 다양한 편집기가 있다.
- TeXmacs 텍스트 편집기는 WYSIWYG-WYSIWIM 과학 텍스트 편집기로 TeX와 Emacs 모두에서 영감을 얻었다.크누스의 폰트를 사용하며 TeX 출력을 생성할 수 있다.
- 오버리프는 실시간 협업 편집에서 추가 기능과 함께 TeX에 클라우드 기반 솔루션을 제공하는 온라인 편집기, 부분 WYSIWYG이다.
- LyX는 WYSIWIM 문서 프로세서로, 다음을 포함한 다양한 플랫폼에서 실행된다.
- 리눅스,
- Microsoft Windows(최소 버전에는 Windows 2000 이상이 필요함)
- Apple Mac OS X(Non-native Qt 프런트 엔드 사용)
- TeX홉(Mac OS X의 경우), TeXworks(Linux, Mac OS X 및 Windows의 경우) 및 WinShell(Windows의 경우)은 유사한 툴이며 LaTeX 또는 TeX와의 협력을 위한 통합 개발 환경(IDE)을 제공한다.KDE/Qt에 대해 Kile은 그러한 IDE를 제공한다.
- 텍스메이커는 킬에 상당하는 퓨어 qt로, 킬의 것과 거의 동일한 사용자 인터페이스를 가지고 있다.
- TeXstudio는 Texmaker의 오픈 소스 포크(2009)로 구성성과 특징에 대한 다른 접근 방식을 제공한다.Windows, Linux, Mac OS X, OS/2 및 FreeB를 위해 무료 다운로드 가능한 이진 파일이 제공SD
- GNU Emacs는 TeX에 대한 지원을 포함한 다양한 내장 및 타사 패키지를 보유하고 있으며, 주요 패키지는 ARICeX이다.
- Visual Studio 코드.주목할 만한 확장은 LaTeX 워크샵이다.
- Vim의 경우 Vim-LaTeX Suite,[45] Automatic TeX[46] 및 TeX-9를 사용할 수 있다.[47]
- Apache OpenOffice 및 LibreOffice의 경우 iMath 및 TexMaths 확장은 수학적 TeX 유형 설정을 제공할 수 있다.[48][49]
- MediaWiki의 경우 Math 확장자는 수학 TeX 형식 설정을 제공하지만 코드는 다음으로 둘러싸야 한다.
<math>
꼬리표를 달다
면허증
도널드 크누스는 TeX의 소스 코드가 "공용 도메인"에 배치되었음을 여러 차례[50][51][52] 시사했으며, 이 소스 코드로 수정이나 실험을 강력히 권장하고 있다.특히 크누스는 TeX의 모든 버전 출력의 재현성을 높게 평가하므로, 어떤 변경된 버전을 TeX라고 부르거나 혼란스러울 정도로 유사한 것으로 부르면 안 된다.이 규칙을 시행하려면 TeX라고 불리기[53] 전에 TRIP 테스트라는 테스트 세트를 통과해야 한다.면허 문제는 TeX 소스 코드의 시작 부분에 포함된 문장으로 다소 혼동되는데,[54] 이는 "모든 권리는 유보되어 있다"는 것을 나타낸다.이 파일의 복사는 다음 경우에만 승인됨...당신은 절대 당신의 사본을 변경하지 않는다.이 제한은 파일을 tex.web이라고 하는 한 소스 코드를 변경하는 것을 금지하는 것으로 해석해야 한다.tex.web(및 mf.web)의 초기의 저작권 노트는 2021년에 이를 명시적으로 명시하기 위해 변경되었다.이러한 해석은 TRIP 시험이 언급될 때 소스코드 뒷부분에서 확인된다("이 프로그램을 변경할 경우, 결과 시스템을 'TeX'[55]라고 부르면 안 된다").미국수학회는 1980년대 초에 TeX의 상표를 주장하려고 시도했다.이는 Honeywell이 "텍스트 EXecutional" 텍스트 처리 시스템에 "TEX" (all caps)를 등록했기 때문에 거부되었다.[citation needed]
XML 출판물
XML 데이터를 위한 정교한 레이아웃의 자동 생성에 TeX를 사용할 수 있다.두 설명 언어의 구문 차이는 TeXML의 도움으로 극복할 수 있다. 따라서 XML 출판의 맥락에서 TeX는 XSL-FO의 대안으로 간주될 수 있다.TeX는 수학 분야의 과학 논문을 클라이언트 측에서 렌더링할 수 있는 비교적 작은 파일로 축소할 수 있도록 허용해 큰 파일을 보내기 어려운 상황에서도 초기 인터넷과 신흥 월드 와이드 웹을 통해 완전한 유형 과학 논문이 교환될 수 있도록 했다.이를 통해 중간 출판사 없이도 논문이 '출판'될 수 있는 arXiv와 같은 과학 논문의 저장소를 만들 수 있는 발판이 마련되었다.[56]
발음 및 철자
TeX라는 이름은 개발자가 로치나 바흐의 마지막 자음을 가진 /txx/로 의도한 것이다.[57]이름의 글자는 대문자 그리스 문자 타우, 엡실론, 기를 나타내기 위한 것으로, TeX는 τέννηη( (εχχη techn techn techn techn techn techn techn techn techn techn techn techn techn techn technology)의 약어로, 그리스어는 "art"와 "craft"의 둘 다에 해당하므로, 이 명칭은 기술적 어원이기도 한다.영어권 사용자들은 종종 기술적 첫 음절처럼 /tkk/를 발음한다.크누스는 기준선 아래 "E"로 타이프 세팅하고 문자 사이의 간격을 줄이라고 지시한다.이는 Knuth가 TeXbook에서 언급한 바와 같이 TEX를 TEX, Text EXecutional Processor (Honeywell Information Systems에서 개발)와 같은 다른 시스템 이름과 구별하기 위해 이루어진다.[58]팬들은 "TeX"라는 단어의 이름을 확산하기를 좋아한다. 예를 들어 TeXnician, TeXhacker, TeX 프로그래머, TeXmaster, TeXhax, TeXnique 등이 그것이다.[59]
커뮤니티
TeX 커뮤니티에서 주목할 만한 단체로는 TEGING보트를 발행하는 TEX Users Group(TUG)과 TeX와 관련된 디지털 타이포그래피에서 광범위한 주제를 다루는 The PracTeX Journal이 있다.독일 슈프루시게 안웬더베레니궁 테엑스(DANTE)는 독일의 대규모 사용자 그룹이다.TeX 사용자 그룹은 교육 및 과학적인 목적으로 1980년에 설립되었으며, 타이포그래피와 글꼴 디자인에 관심이 있는 사람들을 위한 조직을 제공하며, Knuth가 발명한 TeX 타이핑 시스템의 사용자들이다.TeX 사용자 그룹은 전세계 TeX 사용자의 이익을 대변한다.TeX Users Group은 DEY TEGING보트를 매년 3회 발행하고 있으며,[60] DATE는 Die TEXnische Komödie 를 매년 4회 발행하고 있다.다른 사용자 그룹으로는 덴마크의 DK-TUG, 프랑스의 GUTenberg [ 이탈리아의 GuIT, 네덜란드의 NTG, 영국의 UK-TUG 등이 있다. 사용자 그룹은 공동으로 전체 목록을 관리한다.[61]
확장
참고 항목
- 문서 마크업 언어 비교
- 수식 편집기
- 문서 마크업 언어 목록
- 매트릭타임
- 새로운 유형 설정 시스템 – TeX 재구현(계속)
- PGF/TikZ
- PSTricks
- xdvi – .dvi 파일 보기 프로그램
메모들
- ^ 등록되지 않은 미디어 유형
- ^ 트로프가 UNIX 문서의 기본 포맷터로 남아 있기는 하지만.
참조
- ^ "Per Bothner (attendee at TeX Project meetings) discusses authorship".
Knuth definitely wrote most of the code himself, at least for the Metafont re-write, for which I have pe[r]sonal knowledge. However, some of his students (such as Michael Plass and John Hobby) did work on the algorithms used in TeX and Metafont.
- ^ 야니스 할람부스글꼴 & 인코딩(P에 의해 번역됨) 스콧 혼(Scott Horne).베이징; 세바스토폴, 캘리포니아: 오릴리 미디어, 2007, 235페이지.
- ^ Gaudeul, Alexia (27 March 2006). "Do Open Source Developers Respond to Competition?: The (La)TeX Case Study". SSRN 908946.
{{cite journal}}
:Cite 저널은 필요로 한다.journal=
(도움말) - ^ Knuth, Donald E. "Less brief biography". Don Knuth's Home Page. Retrieved 9 January 2017.
- ^ Knuth, Donald E. "Commemorative lecture of the Kyoto Prize, 1996" (PDF). Kyoto Prize. Archived from the original (PDF) on 27 January 2018. Retrieved 18 August 2018.
- ^ Knuth, Donald Ervin, TEXDR.AFT, archived from the original on 12 January 2015
- ^ 크누스 & 플라스 1981, 페이지 144.
- ^ 크누스, 도널드 E. 크누스는 NTG 멤버인 NTG: MAPS. 16(1996), 38–49를 만난다.질의응답, III, 디지털 타이포그래피 33장, 페이지 648로 재인쇄.
- ^ 크누스, 도널드 E.TeX와 METAFONT의 새로운 버전, DEGING보트 10(1989), 325–328; 11(1990), 12. 디지털 타이포그래피 29장으로 재인쇄되었다.
- ^ "TeX 21 release". Retrieved 5 January 2022.
- ^ a b "What is the future of TeX?". The TeX FAQ. 27 May 2018. Archived from the original on 28 April 2019. Retrieved 21 July 2019.
- ^ 크누스, 도널드 E.TeX와 METAFONT의 미래, NTG 저널 MAPS (1990), 489.571페이지의 디지털 타이포그래피 30장으로 재인쇄되었다.
- ^ "TeX Engine development". The TeX FAQ. 24 May 2018. Archived from the original on 28 April 2019. Retrieved 21 July 2019.
- ^ a b 로 다시 인쇄됨Knuth, Donald E; MacKay, Pierre (1987), "Mixing Right-to-Left Texts with Left-to-Right Texts" (PDF), TUGboat, 8: 14–25.
- ^ 비베 2004, 페이지 10.
- ^ 로 다시 인쇄됨Knuth, Donald E (1996), "Questions and Answers I", TUGboat, 17: 7–22.
- ^ 로 다시 인쇄됨Knuth, Donald E (1996), "Questions and Answers II", TUGboat, 17: 355–367.
- ^ Jeffrey, Alan (1990), "Lists in TeX's Mouth" (PDF), TUGboat, 11 (2): 237–45
- ^ "CTAN: Package pdftex". ctan.org. Retrieved 21 July 2019.
- ^ 크누스 1984, 페이지 9.
- ^ Plain TeX (source code), CTAN
- ^ "What are the AMS packages (amsmath, etc.)?". The TeX FAQ. 27 May 2018. Archived from the original on 28 April 2019. Retrieved 21 July 2019.
- ^ 크누스 1984, 페이지 127, 16장: 수학 공식 타이핑
- ^ Slater, Robert (1989), Portraits in Silicon, MIT Press, p. 349, ISBN 9780262691314
- ^ Syropoulos, Apostolos; Tsolomitis, Antonis; Sofroniou, Nick (2003), Digital Typography Using LaTeX, Springer, p. 93, ISBN 9780387952178
- ^ 로 다시 인쇄됨Knuth, Donald E (1996), "Questions and Answers II", TUGboat, 17: 355–367.
- ^ 크누스, 도널드 E.유형설정 콘크리트 수학, DEGING보트 10(1989), 페이지 31–36, 342.디지털 타이포그래피 18장, 페이지 367–378로 다시 인쇄.
- ^ Ulrik Vieth(2001) TEX의 수학 유형 설정: 좋은 것, 나쁜 것, 못생긴 것
- ^ "High-Quality Editing and Display of Mathematical Text in Office 2007".
- ^ "LineServices".
- ^ "Map" (PDF). ntg.nl.
- ^ Barnett, Michael P (1965), Computer Typesetting: Experiments and Prospects, Cambridge, MA: MIT Press
- ^ 크누스 & 플라스 1981.
- ^ "Donald E. Knuth", TUGboat (interview), Advogato, 21: 103–10, 2000, archived from the original on 22 January 2009, retrieved 26 December 2005
- ^ "4.1 fmt: Reformat paragraph text", Core GNU utilities (GNU coreutils) manual, GNU Project, 2016
- ^ 량 1983, 페이지 3
- ^ 량 1983.
- ^ "Appendix H: Hyphenation", The TeXbook, pp. 449–55
- ^ 크누스, 도널드 E.1982년 9월에 발표된 TeX82 목록 업데이트 목록(CTAN에서 제공).
- ^ 크누스, 도널드 E.CTAN에서 이용할 수 있는 TeX 오류의 부록, 2003년 1월에 마지막으로 수정되었다.
- ^ Knuth, Donald E. "Knuth: Frequently Asked Questions". www-cs-faculty.stanford.edu/~knuth/. Archived from the original on 6 March 2008. Retrieved 28 November 2019.
- ^ Kara Platoni (May–June 2006). "Love at First Byte". Stanford Magazine. Archived from the original on 4 June 2006.
- ^ TeX Users Group. "History of TeX". tug.org. Retrieved 28 November 2019.
- ^ Knuth, Donald E (2008). "Knuth: Recent News – Financial Fiasco". www-cs-faculty.stanford.edu/~knuth/.
- ^ Vim‐LaTex, SourceForge
- ^ Automatic TeX plugin, Launch pad[영구적 데드링크]
- ^ TeX-9, Vim.org
- ^ TexMaths Homepage, free.fr
- ^ iMath, SourceForge
- ^ Bigelow, Charles; Day, Donald (1983). "The future of TeX and METAFONT". Digital Typography. Scientific American. Vol. 249. p. 572. Bibcode:1983SciAm.249b.106B. doi:10.1038/scientificamerican0883-106.
- ^ Knuth, Donald E (1986), "Computers and Typesettings" (PDF), TUGboat, 7: 95–98
- ^ Bigelow, Charles; Day, Donald (1983). "Chapter 28" (PDF). Digital Typography. Scientific American. Vol. 249. p. 560. Bibcode:1983SciAm.249b.106B. doi:10.1038/scientificamerican0883-106.
- ^ "Trip", CTAN (TeX) (source code)
- ^ Knuth, Donald E (1986), TeX: The Program, Computers and Typesetting, vol. B, Reading, MA: Addison-Wesley, ISBN 0-201-13437-3
- ^ 오픈 소스: Fadi P의 기술 및 정책Deek, James A. M. McHugh "공용 도메인", 227페이지(2008)
- ^ O'Connell, Heath (2002). "Physicists Thriving with Paperless Publishing". Hep Lib.web. 6: 3. arXiv:physics/0007040.
- ^ 크누스, 도널드 E.The Texbook, Ch장 1: The Name of the Game, 페이지 1.
- ^ 크누스, 도널드 E.다양한 글꼴의 TeX 로고, DEGING보트 7(1986), 101. 디지털 타이포그래피 6장으로 재인쇄되었다.
- ^ "The Jargon File—TeX". Retrieved 23 July 2016.
- ^ "The Communications of the TeX Users Group". tug.org. TeX Users Group. Retrieved 15 March 2019.
- ^ "All TeX User Groups". tug.org. TeX Users Group. Retrieved 17 November 2019.
원천
- Beebe, Nelson HF (2004), "25 Years of TeX and METAFONT: Looking Back and Looking Forward" (PDF), TUGboat, 25: 7–30.
- Knuth, Donald Ervin (1984), The TeXbook, Computers and Typesetting, vol. A, Reading, MA: Addison-Wesley, ISBN 0-201-13448-9. TeX(및 필요한 매크로 세트[1])의 책의 소스 코드는 CTAN에서 온라인으로 이용할 수 있다.그것은 예시로만 제공되며, TeXbook과 같은 책을 준비하는 데 사용되는 것은 허용되지 않는다.
- ——— (1986), TeX: The Program, Computers and Typesetting, vol. B, Reading, MA: Addison-Wesley, ISBN 0-201-13437-3. TeX의 전체 소스 코드, CTAN에서도 사용 가능.문맹 프로그래밍을 사용하여 작성되었으며, 사람이 읽을 수 있는 많은 문서가 수록되어 있다.
- ——— (1999), Digital Typography, Lecture notes, Center for the Study of Language and Information, ISBN 1-57586-010-4.
- ———, Plass, 마이클 F(1981년),"브레이킹 제Lines에", 소프트웨어:연습하고 경험 11(11):1119–84, doi:10.1002/spe.4380111102, S2CID 206508107.비글 로우, Charles:날, 도날드(1983년)로 Reprinted." 제3장".디지털 인쇄체제.사이언티픽 아메리칸.Vol249.를 대신하여 서명함. 67–155.Bibcode:1983SciAm.249b.106B. doi:10.1038/scientificamerican0883-106..
- ———, TeX (source code), archived from the original (WEB) on 27 September 2011 TeX에서 사용되는 알고리즘에 대한 광범위한 문서를 포함하고 있다.
- Lamport, Leslie (1994), LaTeX: A Document Preparation System (2nd ed.), Reading, MA: Addison-Wesley, ISBN 0-201-52983-1.
- Liang, Franklin Mark (August 1983), Word Hy-phen-a-tion by Com-put-er (PhD thesis), Department of Computer Science, Stanford University.
- Salomon, David (1995), The Advanced TeXbook, Springer, Bibcode:1995adte.book.....S, ISBN 0-387-94556-3.
- Spivak, MD (1990), The Joy of TeX (reference) (2nd ed.), American Mathematical Society, ISBN 0-8218-2997-1 AMS-TeX로.
- Vulis, Michael (1992), Modern TeX and Its Applications, CRC Press, ISBN 0-8493-4431-X.
외부 링크
- TeX 사용자 그룹
- TeX (questions and answers), StackExchange.
- 에이크아웃, 빅터TeX by Topic, Wayback Machine 2021년 2월 25일 보관
- 성급함을 위한 TEX
- Donald Knuth는 제록스 PARC 2/21/118 https://archive.org/details/xerox-parc-tapes-v49에서 TEX용 소프트웨어 개발에 대해 논의한다.