我想列出下面的营养成分表。
我对 LaTeX 还很陌生。
我可以修改在网上找到的模板,定义新命令,重新定义命令,但我不知道宏是什么,我的所有 LaTeX 脚本总是在一页上。即使有注释,我的 LaTeX 脚本看起来也非常糟糕,尤其是有大量数学符号的时候。
我想知道创建此营养成分标签的推荐方法是什么,能够更改大小(显然更小),并且能够在我的文档中放置多个营养成分标签。所以也许它就像某种\newcommand
?这就是我的想法。似乎可以用不同宽度的来制作灰线\hrule
。我不确定。
你们有什么推荐?谢谢。
答案1
这是我的看法。
我不得不等待晚点的火车。;-)
\documentclass[border=2]{standalone}
\usepackage{xparse}
\usepackage{booktabs}
\newlength{\NFwidth}
\setlength{\NFwidth}{2.5in}
\NewDocumentCommand{\NFelement}{mmm}{\large\textbf{#1} #2\hfill #3}
\NewDocumentCommand{\NFline}{O{l}m}{\makebox[\NFwidth][#1]{#2}}
\NewDocumentCommand{\NFentry}{sm}{%
\makebox[.5\NFwidth][l]{\large
\IfBooleanT{#1}{\makebox[0pt][r]{\textbullet\ }}%
#2}\ignorespaces}
\NewDocumentCommand{\NFtext}{+m}
{\parbox{\NFwidth}{\raggedright#1}}
\newcommand{\NFtitle}{\multicolumn{1}{c}{\Huge\bfseries Nutrition Facts}}
\newcommand{\NFRULE}{\midrule[6pt]}
\newcommand{\NFRule}{\midrule[3pt]}
\newcommand{\NFrule}{\midrule}
\begin{document}
\sffamily
\fbox{%
\begin{tabular}{@{}p{\NFwidth}@{}}
\NFtitle\\
\NFtext{Serving Size 2 tbsp.\ (33\,g)}\\
\NFtext{Servings Per Container 7}\\
\NFRULE
\NFline{Amount Per Serving}\\
\NFrule
\NFelement{Calories}{20}{Calories from Fat 10}\\
\NFRule
\NFline[r]{\% Daily Value*}\\
\NFrule
\NFelement{Total Fat}{1\,g}{2\%}\\
\NFrule
\NFelement{Sodium}{190\,mg}{8\%}\\
\NFrule
\NFelement{Total Carbohydrate}{2\,g}{1\%}\\
\NFrule
\NFelement{Protein}{1\,g}{}\\
\NFRule
\NFentry{Vitamin A 2\%}
\NFentry*{Vitamin C 15\%}\\
\NFentry{Iron 10\%}
\NFentry*{Vitamin B6 20\%}\\
\NFentry{Vitamin B12 4\%}\\
\NFrule
\NFtext{Not a significant source of saturated fat,
trans fat, cholesterol, dietary fiber, sugars,
and calcium.}\\
\NFrule
\NFtext{* Percent Daily Values are based on a
2,000 calorie diet.}
\end{tabular}}
\end{document}
答案2
定义一些辅助命令的一种可能性:
\documentclass{article}
\usepackage{graphicx}
\newcommand\myrule[1][1pt]{%
\par\rule[1ex]{\linewidth}{#1}\par}
\newcommand\titlefont{\normalfont\Huge\bfseries}
\newcommand\Nline[3]{\textbf{#1}~#2\hfill#3\par}
\newcommand\Bullet[1]{\parbox{.5\linewidth}{\makebox[1em][l]{$\bullet$}#1}}
\newcommand\NutFact[3][8cm]{%
\par\noindent\resizebox{!}{#2}{\fbox{\begin{minipage}{#1}
\raggedright\sffamily
\vskip10pt
{\titlefont Nutrition Facts\par\medskip}
\large
#3
\end{minipage}}}%
}
\begin{document}
\NutFact{5cm}{%
Serving Size 2 tbsp. (33g) \par
Servings per Container 7\par
\myrule[9pt]
{\normalfont Amount per Serving\par}
\myrule
\Nline{Calories}{20}{Calories from Fat 10}
\myrule[6pt]
\hfill{\normalfont \% Daily Value\textsuperscript{*}\par}
\myrule
\Nline{Total Fat}{1g}{2\,\%}
\myrule
\Nline{Sodium}{190mg}{8\,\%}
\myrule
\Nline{Total Carbohydrate}{2g}{1\,\%}
\myrule
\Nline{Protein}{1g}{}
\myrule[11pt]
\Bullet{Vitamin A 10\,\%}%
\Bullet{Vitamin C 15\,\%}\par
\myrule
\Bullet{Iron 10\,\%}%
\Bullet{Vitamin B6 20\,\%}\par
\myrule
\Bullet{Vitamin B12 4\,\%}\par
\myrule
Not a significant source of satured fat, trans fat, cholesterol, dietary fiber, sugars, and calcium.
\myrule
\textsuperscript{*} Percent Daily Values are based on a 2,000 calorie diet.
}
\NutFact{4cm}{%
Serving Size 2 tbsp. (33g) \par
Servings per Container 7\par
\myrule[9pt]
{\normalfont Amount per Serving\par}
\myrule
\Nline{Calories}{20}{Calories from Fat 10}
\myrule[6pt]
\hfill{\normalfont \% Daily Value\textsuperscript{*}\par}
\myrule
\Nline{Total Fat}{1g}{2\,\%}
\myrule
\Nline{Sodium}{190mg}{8\,\%}
\myrule
\Nline{Total Carbohydrate}{2g}{1\,\%}
\myrule
\Nline{Protein}{1g}{}
\myrule[11pt]
\Bullet{Vitamin A 10\,\%}%
\Bullet{Vitamin C 15\,\%}\par
\myrule
\Bullet{Iron 10\,\%}%
\Bullet{Vitamin B6 20\,\%}\par
\myrule
\Bullet{Vitamin B12 4\,\%}\par
\myrule
Not a significant source of satured fat, trans fat, cholesterol, dietary fiber, sugars, and calcium.
\myrule
\textsuperscript{*} Percent Daily Values are based on a 2,000 calorie diet.
}
\end{document}
\NutFact
有两个强制性参数:第二个参数是营养成分信息,第一个参数允许进行一些缩放;还有一个可选参数,用于指定内部minipage
使用的宽度。
答案3
使用 minipage 您可以做一些事情。
许多其他解决方案也可以完成这项工作,例如使用表格
\documentclass{article}
\usepackage{siunitx}
\begin{document}
\begin{minipage}[h]{0.5\linewidth}
{\Large \bfseries Nutrition facts}
Serving Size tbsp. (\SI{33}{\gram})
Servings per container 7
\noindent\makebox[\linewidth]{\rule{\linewidth}{3pt}}
Amount per serving
\noindent\makebox[\linewidth]{\rule{\linewidth}{0.5pt}}
\textbf{Calories} \hfill Calories from Fat 10
\noindent\makebox[\linewidth]{\rule{\linewidth}{2pt}}
\flushright \% Daily Value \textsuperscript{*}
\noindent\makebox[\linewidth]{\rule{\linewidth}{0.5pt}}
\flushleft
\textbf{Total Fat} \SI{1}{\gram} \hfill 2\%
\noindent\makebox[\linewidth]{\rule{\linewidth}{0.5pt}}
\textbf{Sodium} \SI{190}{\milli\gram}
\noindent\makebox[\linewidth]{\rule{\linewidth}{3pt}}
\begin{tabbing}
Vitamin A 2\% \quad \quad \= \textbullet\quad Vitamin C 15\%\\
Iron 10\% \> \textbullet \quad Vitamin B6 20\%
\end{tabbing}
\noindent\makebox[\linewidth]{\rule{\linewidth}{0.5pt}}
\footnotesize Not a significant source of saturated fat, trans
fat \ldots
\end{minipage}
\end{document}