SVGオブジェクトの変換などの特定のアプリケーションでは、現在の位置の反対(-1倍)が必要です。バツそしてええ座標、例えば
\special{dvisvgm:raw <g id='myGroup' transform='translate(-{?x},-{?y})'>}
...
\special{dvisvgm:raw </g>}
dvisvgm
代替物{?x}
と{?y}
バツそしてええドキュメント ページ上の現在の位置に対応する SVG 座標系の値。
{?x}
しかし、 and/orに負の値が代入された場合(-クラスのドキュメント{?y}
で発生する可能性がありますbeamer
)、次のような無効なSVGが生成されますtranslate(--12.345,-6.789)
(-
バツ座標が SVG ファイルに書き込まれます。
translate
別の方法としては、引数にインライン計算を配置する方法があります。
translate({?x}/-1, {?y}/-1)
しかし、これは Web ブラウザで解析エラーを引き起こすため、SVG 要素属性では許可されていないようです。
そこで疑問が湧きます。置換パラメータと特別なdvisvgm
計算を実行する手段は提供されていますか?{?x}
{?y}
dvisvgm:raw
答え1
値を否定する必要がないように、座標空間を変換できるはずです。
これら 2 つの変換は同じことを行います。
\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>}%