在 \setlength 内计算

在 \setlength 内计算

我将页面细分为多个部分,并想根据数字计算每个部分的宽度。

\newlength{\basewidth}
\setlength{\basewidth}{\linewidth/5.5}

应该\basewidth1/5.5\linewidth因为有 5 个部分宽度相等,而其中一个部分的宽度应该是其他部分的一半。(5 + 0.5 = 5.5)

我确实使用了这个calc包!

打印时\the\linewidth我得到 816.59412 pt,这似乎是正确的。计算\linewidth/5.5不被接受,等效0.181818\linewidth返回 62.72919,这是不正确的,因为结果应该是 148.471658...

如果这显然是错误的,我该如何计算长度?


平均能量损失

% %%%%%%%%%%%%%%
% Document setup
% %%%%%%%%%%%%%%

\documentclass[10pt,a4paper, landscape]{article}
\usepackage[T1]{fontenc}

% Page layout
\usepackage[headheight = 11ex, margin = .5cm, top = 3.2cm, nofoot, showframe = true]{geometry}

% Logic and Tools
\usepackage{calc}


% Setup of lengths
\newlength{\basewidth}
\setlength{\basewidth}{2\columnwidth/11}


% %%%%%%%%%%%%%%
% Begin Document
% %%%%%%%%%%%%%%

\begin{document}
    \centering
    Linewidth: \the\columnwidth\\
    Base: \the\basewidth\\
\end{document}

答案1

设置\linewidth\begin{document}

\documentclass[a4paper,landscape]{article}
\usepackage[headheight = 11ex, margin = .5cm, top = 3.2cm, nofoot]{geometry}

\typeout{\string\linewidth=\the\linewidth}
\typeout{2\string\linewidth/11=\the\dimexpr2\linewidth/11\relax}

\begin{document}

\typeout{After \string\begin{document}:}
\typeout{\string\linewidth=\the\linewidth}
\typeout{2\string\linewidth/11=\the\dimexpr2\linewidth/11\relax}

\end{document}

结果(.log文件):

\linewidth=345.0pt
2\linewidth/11=62.72728pt
[...]
After \begin{document}:
\linewidth=816.59412pt
2\linewidth/11=148.47166pt

的代码\begin{document}包含:

\columnwidth\textwidth
[...]
\hsize\columnwidth
\linewidth\hsize

因此,您可以\textwidth在序言中使用 而不是\columnwidth\linewidth

相关内容