Lout(소프트웨어)

Lout (software)
Lout
개발자제프리 킹스턴
안정적 해제
3.40 / 2013년 6월 27일
기록 위치C
운영 체제Linux, MS-Windows, POSIX 호환 시스템
유형텍스트 형식 지정
면허증GPL
웹사이트savannah.nongnu.org/projects/lout

Lout은 Jeffrey H. Kingston에 의해 발명된 일괄 문서 포맷터다.LaTeX와 유사한 문건에 대한 높은 수준의 설명을 읽고 대부분의 프린터에서 인쇄할 수 있는 PostScript 파일을 제작한다.일반 텍스트PDF 출력도 이용할 수 있다.Lout이라는 용어는 주로 문서 형식의 프로그래밍 언어를 지정하는 반면, 언어의 (제프리 H. 킹스턴에 의한) 구현은 Basser Lout으로 언급되기도 한다.Baser Lout은 GNU General Public License의 조건에 따라 배포되는 무료 소프트웨어다.

Lout은 포맷 알고리즘의 일부를 TeX에서 복사하지만, 매크로 언어 대신 고급 기능 프로그래밍 언어를 사용하므로 프로그래밍이 훨씬 용이하도록 의도되었다.

LaTeX의 일반적인 설치는 TeX 바이너리와 함께 50 ~ 300 MB가 소요되지만 Lout은 약 1 MB이다.이는 주로 패키지와 도구가 적기 때문이기도 하지만, 매크로 언어 소스 코드 대신 C 구현에 기인할 수도 있다.[1]

lout에는 읽기 쉬운 사용자 가이드가 함께 제공되며 기본은 몇 시간 안에 배울 수 있다.그것은 테이블, 차트, 방정식 및 도표를 만드는 패키지를 포함하며, 모든 것을 하나의 패키지로 "즉각"한다.Lout은 보고서와 책을 만드는 데 유용하며 유형 설정을 매우 정밀하게 제어할 수 있다.

Lout으로 문서 형식 지정

Lout 프로그래밍 언어의 핵심은 TeX와 유사한 낮은 수준의 연산만을 제공하는 반면, Basser Lout과 함께 제공되는 패키지는 사용자가 직접 문서를 작성할 수 있는 완전한 높은 수준의 마크업 언어를 LaTeX와 유사한 방식으로 제공한다.

매우 간단한 Lout 문서는 다음과 같이 보일 수 있다.

# 댓글이다.# 'doc' 문서 클래스 및 기본 스타일 사용@SysInclude { doc } @Document @InitialFont { Times Base 10p } // # 문서 내용 시작@Text @Begin @PP 이것은 단락이다.@B { 굵게 } 또는 @I { 기울임꼴 } 텍스트를 쉽게 포함할 수 있다.또한 {헬베티카 베이스 } @Font { 사용 중인 글꼴 변경 }. @BeginSections @Section @Title {The First 섹션 } @Begin @PP 이것이 한 섹션의 내용이다.@End @EndSections @End @Text # 문서의 끝. 

문서, 보고서, 등의 다양한 문서 유형을 사용할 수 있지만 슬라이드(헤드스크립트용)와 그림(독립형 그림용)도 사용할 수 있다.문서 스타일을 사용자 정의하는 것은 비프로그래머에게도 비교적 쉽다.

언어 기능 프로그래밍

Lout 프로그래밍 언어는 다른 기능 언어와 유사하다.핵심 프로그래밍 언어는 30개 미만의 원시 연산자로 구성된다.[2]어떤 특징들은 하스켈과 특히 가깝게 만들며, 특히 Lout 표현들이 느릿느릿 평가된다는 점이 눈에 띈다.Lout은 또한 갤리선과 같은 다른 프로그래밍 언어에서 흔히 찾아볼 수 없는 문서 포맷의 구현에 필요한 구조를 제공한다.[3]대부분의 다른 기능 프로그래밍 언어와 달리 Lout은 예를 들어 1등급 기능을 제공하지 않는다.

보안 문제

2019년 일반 취약성 노출에서 Lout에 두 가지 버퍼 오버플로 문제를 나열했는데, 신뢰할 수 없는 문서를 처리할 경우 이를 이용할 수 있다.[4][5]데비안은 이러한 문제들로 인해 2020년 10월에 Lout을 제거했다;[6][7] 그 패키지는 2013년 이후로 유지 관리자가 없었다.[8]

버퍼 오버플로 문제는 수정되었고 시스템은 현재 https://github.com/william8000/lout에서 유지되고 있다.

참조

  1. ^ Lout 다운로드
  2. ^ Kingston, Jeffrey H (September 1993). "The Design and Implementation of the Lout Document Formatting Language". Software: Practice and Experience. 23 (9): 1001–41. CiteSeerX 10.1.1.45.9433. doi:10.1002/spe.4380230906. S2CID 22952199.
  3. ^ Kahl, Wolfram (January 1999). "Beyond Pretty-Printing: Galley Concepts in Document Formatting Combinators". Practical Aspects of Declarative Languages: First International Workshop.
  4. ^ "NVD - Cve-2019-19917".
  5. ^ "NVD - Cve-2019-19918".
  6. ^ Debian Lout 버그: 보안 문제
  7. ^ Debian Lout: 패키지 제거
  8. ^ Debian Lout 버그: 유지관리자 사라짐

외부 링크