我有一个自定义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}