{?x}와 {?y}의 반대를 얻는 방법은 무엇입니까?

{?x}와 {?y}의 반대를 얻는 방법은 무엇입니까?

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>}%

관련 정보