Minipage 声明中的变量/命令

Minipage 声明中的变量/命令

我有一个自定义minipage环境,该环境可能具有 2 个不同的宽度值,但基本设置相同。我创建了一个\newcommand用于存储何时使用哪个宽度的变量。这些minipage变量进入tabular*环境,然后完成一系列其他工作。但是,我在以下示例中隔离了我的问题。

\newcommand{\MinipageTableSizeLookup}[1]{
    \ifnum #1 = 3 {0.279} 
    \else {0.359}
    \fi
    }

\newenvironment{MyMiniPage}[4]{   
    \begin{minipage}[t]{ 0.279\linewidth}
        \begin{center} \textbf{#2 (#3)} \newline \textit{#4} \end{center}
    }{
    \end{minipage} 
    }

打电话时

\begin{MyMiniPage}{3}{Some Header}{14}{Subheading}
    This is useful information setup in this way.
    \end{MyMiniPage}

仅当在 中输入纯文本 0.279\linewidth 时才会成功\begin{minipage}[t]{ 0.279\linewidth}。将其替换为\MinipageTableSizeLookup{#1}会失败,并出现错误“缺少数字,视为零”。我希望能够minitable在调用时动态切换这些 s 的宽度。

我已尝试将其包含\linewidth\MinipageTableSizeLookup命令中。

以下是我的序言,供参考:

% !TEX TS-program = pdflatex
% !TEX encoding = UTF-8 Unicode
\documentclass[11pt]{article} 
\usepackage[utf8]{inputenc} 
\usepackage{geometry} 
\geometry{a4paper} 
\geometry{margin=0.50in} 
\usepackage{graphicx}

\usepackage{booktabs} 
\usepackage{array} 
\usepackage{paralist} 
\usepackage{verbatim} 

\usepackage{fancyhdr} 
\usepackage[table]{xcolor}
\pagestyle{fancy} 
\renewcommand{\headrulewidth}{0pt} 
\lhead{}\chead{}\rhead{}
\lfoot{}\cfoot{\thepage}\rfoot{}

\usepackage{sectsty}
\allsectionsfont{\sffamily\mdseries\upshape}

答案1

你不需要0.3\linewidth{0.3}\linewidth所以你需要把括号从你的\ifnum

\documentclass{article}

\begin{document}

\newcommand{\MinipageTableSizeLookup}[1]{%
    \ifnum #1 = 3
     0.279
    \else
      0.359
    \fi
    }

\newenvironment{MyMiniPage}[4]{%  
    \begin{minipage}[t]{\MinipageTableSizeLookup{#1}\linewidth}
        \begin{center} \textbf{#2 (#3)} \newline \textit{#4} \end{center}%
    }{%
    \end{minipage}%
    }

\begin{MyMiniPage}{3}{Some Header}{14}{Subheading}
    This is useful information setup in this way.
    \end{MyMiniPage}
\end{document}

相关内容