SVG 개체 변환과 같은 특정 응용 프로그램의 경우 현재 위치의 반대(-1배)가 필요합니다.엑스그리고와이좌표(예:
\special{dvisvgm:raw <g id='myGroup' transform='translate(-{?x},-{?y})'>}
...
\special{dvisvgm:raw </g>}
대체물 과dvisvgm
{?x}
{?y}
엑스그리고와이문서 페이지의 현재 위치에 해당하는 SVG 좌표계의 값입니다.
{?x}
그러나 및/또는 {?y}
(클래스 문서에서 발생할 수 있음 ) 을 음수 값으로 대체하는 경우 이는 다음 beamer
과 같이 유효하지 않은 SVG로 이어집니다 translate(--12.345,-6.789)
.-
엑스좌표)가 SVG 파일에 기록됩니다.
translate
또 다른 접근 방식은 다음과 같이 인수 에 인라인 계산을 배치하는 것입니다 .
translate({?x}/-1, {?y}/-1)
그러나 이는 웹 브라우저에서 구문 분석 오류로 이어지기 때문에 SVG 요소 속성에서는 허용되지 않는 것 같습니다.
따라서 질문은 다음과 같습니다. dvisvgm
대체 매개변수 {?x}
및 특별 {?y}
항목 에 대한 계산을 수행하기 위한 수단을 제공합니까 dvisvgm:raw
?
답변1
값을 부정할 필요가 없도록 좌표 공간을 변환할 수 있어야 합니다.
이 두 변환은 동일한 작업을 수행합니다.
\documentclass{article}
\begin{document}
===
\vspace{2cm}
aaa
\special{dvisvgm:raw <g id='myGroup' transform='translate(-10,-20)'>}%
xyz
\special{dvisvgm:raw </g>}%
bbb
\vspace{2cm}
aaa
\special{dvisvgm:raw <g id='myGroup2' transform='scale(-1)'>}%
\special{dvisvgm:raw <g transform='translate(10,20)'>}%
\special{dvisvgm:raw <g transform='scale(-1)'>}%
xyz
\special{dvisvgm:raw </g>}%
\special{dvisvgm:raw </g>}%
\special{dvisvgm:raw </g>}%
bbb
\end{document}
답변2
David Carlisle의 답변에서 영감을 받아 기존 SVG 파일을 좀 더 깊이 파고들어 동일한 transform
속성 내에서 변환을 연결할 수 있다는 사실을 발견했습니다. 이를 통해 추가 그룹 수준 없이 더욱 간결한 공식화가 가능해졌습니다.
\special{dvisvgm:raw <g id='myGroup' transform='scale(-1)translate({?x},{?y})scale(-1)'>}%
xyz
\special{dvisvgm:raw </g>}%