
나는 SVG가 많은 문서 작성 도구에서 왜 그렇게 문제가 되는지 항상 궁금했습니다. 예를 들어 MS Office는 이를 수행할 수 없으며 Libre Office는 매우 간단한 SVG afaik만 사용할 수 있으며 Latex에서도 제대로 사용할 수 없지만 수동으로 변환한 다음 비트맵 그래픽으로 사용하거나 자동으로 사용해야 합니다. InkScape와 같은 외부 도구. 저는 InkScape를 좋아하지만 만족스럽지 않습니다.
특히 Latex나 TeX에서는 SVG 지원을 기대했을 것입니다. 학계의 많은 사람들이 이를 직간접적으로 사용하고 세부 사항에 너무 많은 관심을 기울여 SVG를 포함하는 이러한 해결 방법을 사용해야 하는 것이 이상해 보이기 때문입니다. 작품에서. SVG가 PDF에서 사용되기 전에 변환되었기 때문에 예를 들어 일부 픽셀화된 선 대신 다이어그램에 무제한 확대/축소 및 여전히 선명한 뚜렷한 선이 있는 PDF가 있으면 매우 좋을 것입니다.
그렇다면 TeX 백엔드에서 여전히 SVG를 지원하지 않는 이유는 무엇입니까? 구현하기가 그렇게 어려울까요?
저는 TeX 백엔드에 대해 잘 모릅니다. 기본적으로 TeX 백엔드가 존재하고 귀하의 내용을 PDF 파일로 변환한다는 것만 알고 있으므로 이 질문은 순진할 수 있습니다. 반면에 모든 브라우저와 거의 모든 이미지 뷰어 소프트웨어에서 SVG를 지원하므로 그것이 가능해야 한다고 생각합니다. 아마도 SVG 포함을 지원하지 않는 PDF 형식 자체에 관한 것이므로 PDF 형식이 변경될 때까지 SVG를 허용하도록 TeX 백엔드를 변경하는 것이 합리적이지 않습니까?
답변1
고전적으로 TeX은 다음을 다루지 않습니다.어느그래픽 형식의 경우 dvi 파일 파일에는 dvi 드라이버에 포함될 그래픽 파일에 대한 포인터만 포함됩니다. TeX는 BoundingBox 주석이나 \includegraphics
.
문서용으로 생성하는 형식인 경우 그래픽 형식을 포함하는 것이 (일반적으로) 훨씬 쉽습니다. dvi 드라이버가 "이해"할 필요가 없고 스트림에 복사하기만 하면 됩니다. 예를 들어 다음을 dvips
포함할 수 있습니다. 문자 그대로 출력에 복사되는 EPS 파일, jpg 파일 및 다소 사소하게 PostScript 비트맵으로 변환할 수 있는 특정 비트맵 형식도 마찬가지입니다.
pdftex의 상황은 EPS 파일을 처리할 수 없다는 점을 제외하면 비슷하지만 PDF를 작성하는 경우 PDF를 처리하는 것이 훨씬 쉽기 때문에 PDF 파일을 다시 처리할 수 있습니다.
pdftex에서 EPS를 처리하려면 외부 EPS를 PDF로 변환하는 프로그램이 필요합니다. 이 프로그램은 TeX의 쉘 이스케이프에 의해 호출될 수 있지만 개념적으로(사실상) 상당히 별개입니다.
SVG의 상황은 동일합니다. svg(예: dvisvgm dvi 드라이버)를 생성하는 경우 EPS 또는 PDF보다 SVG를 포함하는 것이 더 쉽습니다. 반면에 PostScript 또는 PDF를 생성하는 경우 루프에 일반적으로 incscape 변환 프로그램이 필요합니다. 다시 말하지만 이것은 쉘 이스케이프 뒤에 숨겨져 있고 필요한 경우 TeX에서 호출될 수 있습니다. 그러나 최종 목표가 PDF 문서에 포함하는 것이라면 SVG를 비트맵이 아닌 확장 가능한 형식(PDF 또는 EPS)으로 변환해야 합니다.
답변2
TeX 컴파일러를 작성하는 사람의 입장이 되어 보세요.이미지를 한 형식 또는 다른 형식으로 변환하는 프로그램은 많이 있습니다(inkscape, imagemagick's convert
, ...). 그렇다면 변환기를 처음부터 다시 구현하는 것과 본질적으로 동일한 작업인 둘 이상의 형식을 지원하는 데 시간을 소비해야 하는 이유는 무엇입니까?
특히 SVG 형식에는 다음이 포함됩니다.부엌 싱크대 빼고 다 있어요: 배경색 패턴을 사용하여 사용자 정의 글꼴로 렌더링된 곡선 베지어 경로의 양방향 중국어 텍스트부터 본격적인 텍스트까지자바스크립트 인터프리터. 아, 끔찍하다. 고맙지 만 사양 할게;버그를 수정하고 핵심 기능을 개선하는 데 시간을 더 투자하는 것이 좋습니다.
(대부분의 변환기는 SVG의 전체 기능 세트를 지원하지 않는다는 점에 동의하지만 개념은 유효합니다.)
따라서 실제로는 하나의 형식(또는 하나의 비트맵과 하나의 벡터 형식)만 지원하고 사용자에게 그래픽을 변환하려면 사용 가능한 많은 외부 도구 중 하나를 사용하라고 지시합니다. 운 좋게도 이들 중 대부분은 똑똑한 UNIX 사용자이므로 Makefile이나 빌드 스크립트를 다루는 방법을 알고 있습니다.
훌륭한 남자가 되고 싶다면 에서 로의 자동 전환을 지원할 수 있지만 eps
, pdf
그것마저도 당신의 책임은 아닙니다. 아니면 관리자와 대화를 나누고 latexmk
소개를 요청할 수도 있습니다.맞춤 종속성, 이를 통해 상대방 측에서 자동화할 수 있습니다.
요약:프로그래머는 바퀴를 재발명하는 것을 좋아하지 않습니다..
답변3
SVG 그래픽 생성은 다음을 통해 지원됩니다.dvisvgm
TeXLive 배포판의 패키지입니다. DVI 파일( tex
및 latex
대신 pdftex
및 에 의해 생성됨)을 변환하여 작동합니다 pdflatex
.