![hsize (水平サイズ) の長さを mm (ミリメートル) で印刷するにはどうすればよいですか?](https://rvso.com/image/309847/hsize%20(%E6%B0%B4%E5%B9%B3%E3%82%B5%E3%82%A4%E3%82%BA)%20%E3%81%AE%E9%95%B7%E3%81%95%E3%82%92%20mm%20(%E3%83%9F%E3%83%AA%E3%83%A1%E3%83%BC%E3%83%88%E3%83%AB)%20%E3%81%A7%E5%8D%B0%E5%88%B7%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%81%A9%E3%81%86%E3%81%99%E3%82%8C%E3%81%B0%E3%82%88%E3%81%84%E3%81%A7%E3%81%99%E3%81%8B%3F%20.png)
私はVTEXを初めて使います。どうすれば解決できますか?
\documentclass{article}
\begin{document}
\the\hsize
\end{document}
出力: 345.0 pt
しかし、hsize を mm 単位で計算するマクロを記述する必要があります。例: \printdimen[mm]\hsize
hsize を 6.5 インチにすると、mm 単位で何が出力されますか?
答え1
% arara: pdflatex
\documentclass[a4paper]{article}
\usepackage{xparse}
\usepackage{siunitx}
\usepackage{pgf}
\usepackage{mathtools}
\makeatletter
\def\convertto#1#2{\strip@pt\dimexpr #2*65536/\number\dimexpr 1#1}
\makeatother
\newcommand*{\getlength}[3]{%
\pgfmathsetmacro#1{#3*#2}
}
\DeclareDocumentCommand\printdimen { o m }{%
\getlength{\tmp}{\convertto{#1}{1pt}}{#2}\SI{\tmp}{#1}
}
\begin{document}
\begin{align*}
\text{\the\hsize} &\equiv \printdimen[mm]\hsize \\
&\equiv \printdimen[cm]\hsize \\
&\equiv \printdimen[ex]\hsize \\
&\equiv \printdimen[em]\hsize \\
&\equiv \printdimen[bp]\hsize \\
&\equiv \printdimen[dd]\hsize \\
&\equiv \printdimen[pc]\hsize \\
&\equiv \printdimen[in]\hsize
\end{align*}
\end{document}
答え2
このような?
\documentclass{article}
\usepackage{printlen}
\begin{document}
\uselengthunit{mm}\printlength{\hsize}
\end{document}