我想复制表格(3 x 6),并且它应该足够大才能进入迷你页面。
documentclass{report}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
\usepackage{tabularx}
% New Commands
\newcommand{\sdgarr}[2]{
\tikz \draw[-{Straight Barb[line width=.2cm,line join=round,line cap=round]},line width=.2cm,color=#2,line cap=round,rotate=#1-45] (0,0) - - (1,1);
}
\newcommand{\sdgcir}[1]{
\tikz \draw[fill=#1,color=#1] (0,0) circle (5pt);
}
\begin{document}
\begin{tabularx}{0.95\linewidth}{|X|X|}
\centering
\hline
1 NO \newline POVERTY \newline
\sdgarr{red}{45}
&
2 ZERO \newline Hunger \newline
\sdgcir{gray}
\\
\hline
\end{tabularx}
\end{document}
我问过类似的问题,但是我说得不够清楚。
答案1
编辑:
正如承诺的那样,我稍微改进了建议的解决方案:
- 新的命令定义
- 图像对齐
- 我仍然需要在表格中写入正确的文本,以及在单元格中选择 OP 所需的图像(这现在应该不是什么大问题)
\documentclass[table]{report}
\usepackage{geometry}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
\usepackage{makecell, multirow, tabularx}
\usepackage{graphicx}
% arrows
\newcommand{\rotarr}[2]{\centerline{
\tikz[baseline]{%
\path[draw=#1,line width=3mm, line join=round,line cap=round,
-{Straight Barb[scale=1.2, line join=round,line cap=round]},
rotate around={#2:(0,0)}] (-0.4\linewidth,0) -- (0.4\linewidth,0);}
}}
% circle fill, meaning zero?
\newcommand{\zero}{\centerline{
\tikz[baseline]{\node[circle, fill=gray, minimum size=0.8\linewidth] {};}
}}
% columns headers
\newcommand{\cellhead}[2]{\smallskip\centerline{
\begin{tabular}[t]{@{} >{\sffamily\bfseries}l @{\,}
>{\sffamily\bfseries}l
@{} }
\multirow[b]{2}{*}{\scalebox{2.8}{#1}} & {\makecell[lt]{#2}}
\end{tabular} } }
\begin{document}
\begin{center}
\setlength\arrayrulewidth{1pt}
\arrayrulecolor{cyan}
\begin{tabularx}{\linewidth}{|*{6}{X|}}
% first two-line row
\hline
\cellhead{1}{NO\\POVERTY}
& \cellhead{2}{ZERO\\HUNGER}
& \cellhead{3}{WHAT\\EVER}
& \cellhead{4}{NO\\POVERTY}
& \cellhead{5}{ZERO\\HUNGER}\
& \cellhead{6}{WHAT\\EVER\\NEWER} \\
\rotarr{red}{45}
& \zero
& \rotarr{purple}{-90}
& \rotarr{orange}{0}
& \rotarr{teal}{90}
& \rotarr{orange}{0} \\
% second two-line row
\hline
\cellhead{7}{NO\\POVERTY}
& \cellhead{8}{ZERO\\HUNGER}
& \cellhead{9}{WHAT\\EVER}
& \cellhead{10}{NO\\POVERTY}
& \cellhead{11}{ZERO\\HUNGER}\
& \cellhead{12}{WHAT\\EVER\\NEWER} \\
\rotarr{red}{45}
& \zero
& \rotarr{purple}{-90}
& \rotarr{orange}{0}
& \rotarr{teal}{90}
& \rotarr{orange}{0} \\
\hline
\end{tabularx}
\end{center}
\end{document}
- 不清楚你所说的“相当大的”是什么意思:
- 必须手动设置表格中使用的字体大小,以使文本不会超出单元格
- 图像的大小现在由单元格宽度决定,因此它们的大小将始终适应单元格的宽度
- 图像按需要对齐后,现在它们被设置在单独的行中。到目前为止,这是我能够实现此目的的唯一方法。