![如何列印以 mm(毫米)為單位的 hsize(水平尺寸)長度?](https://rvso.com/image/309847/%E5%A6%82%E4%BD%95%E5%88%97%E5%8D%B0%E4%BB%A5%20mm%EF%BC%88%E6%AF%AB%E7%B1%B3%EF%BC%89%E7%82%BA%E5%96%AE%E4%BD%8D%E7%9A%84%20hsize%EF%BC%88%E6%B0%B4%E5%B9%B3%E5%B0%BA%E5%AF%B8%EF%BC%89%E9%95%B7%E5%BA%A6%EF%BC%9F%20.png)
我是 VTEX 新手。我該如何解決這個問題?
\documentclass{article}
\begin{document}
\the\hsize
\end{document}
輸出:345.0 pt
但我必須寫一個巨集來計算以 mm 為單位的 hsize 範例:\printdimen[mm]\hsize
如果我採用 hsize 6.5in 那麼將以 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}