我有一张乳胶表,其中输入了一些我想与另一方共享的数据。我输入了数据,其中包含我认为参数应该采用的值。我想保留这些值作为参考。但是我想发送不显示值的表格(pdf 格式),以便另一方可以输入/共享他们的值。如何删除某一列的值(列标题除外)?以下是表格的示例:
\begin{tabular}{|r|c|c|}\hline
Parameter & Symbol & Value\\\hline\hline
Saturation Magnetization & $M_s$ & 100 emu/cc\\
\sd & $\sigma_{Ms}$ & 5\%\\\hline
Anisotropy & $H_k$ & 8kOe\\
\sd & $\sigma_{Hk}$ & 5\%\\\hline
Coercive field & $H_c$ & \\\hline
Exchange coupling & $A_x$ & 2.5e-9 erg/cm\\
\sd & $\sigma_{Ax}$ & 5\%\\\hline
\end{tabular}
我希望保留 latex 文件中的实际值,但将 pdf 文件中的值清空以与另一方共享,同时不将列标题(在本例中为“值”)清空。如果我们可以使用一个小开关打开和关闭 pdf 文件中的值,那就太好了。有办法吗?
谢谢。
答案1
一切都是通过改变宏的含义来完成的\1
:
\documentclass{article}
\begin{document}
A version for 3 columns, \verb+\sd+ changed to sd.
\def\1#1\\{ #1& #2&\\}
Without values in 3rd column
\begin{tabular}{|r|c|c|}\hline
Parameter & Symbol & Value\\\hline\hline
\1Saturation Magnetization & $M_s$ & 100 emu/cc\\
\1 sd & $\sigma_{Ms}$ & 5\%\\\hline
\1Anisotropy & $H_k$ & 8kOe\\
\1 sd & $\sigma_{Hk}$ & 5\%\\\hline
Coercive field & $H_c$ & \\\hline
\1Exchange coupling & $A_x$ & 2.5e-9 erg/cm\\
\1 sd & $\sigma_{Ax}$ & 5\%\\\hline
\end{tabular}
\def\1#1\\{ #1& #2\\}
With values in 3rd column
\begin{tabular}{|r|c|c|}\hline
Parameter & Symbol & Value\\\hline\hline
\1Saturation Magnetization & $M_s$ & 100 emu/cc\\
\1 sd & $\sigma_{Ms}$ & 5\%\\\hline
\1Anisotropy & $H_k$ & 8kOe\\
\1 sd & $\sigma_{Hk}$ & 5\%\\\hline
Coercive field & $H_c$ & \\\hline
\1Exchange coupling & $A_x$ & 2.5e-9 erg/cm\\
\1 sd & $\sigma_{Ax}$ & 5\%\\\hline
\end{tabular}
\end{document}
答案2
您可以收集细胞内容,并借助collcell
。下面我定义了两种列类型:g
和G{<len>}
。g
-column 会吞噬其参数(将其吃掉但不执行任何操作),而 columnG{<len>}
会执行相同操作,但<len>
在单元格中插入一个长度为的空格。
\documentclass{article}
\usepackage{collcell,booktabs}
\makeatletter
\newcolumntype{g}{>{\collectcell\@gobble}c<{\endcollectcell}}
\newlength{\fixedwidth}
\newcommand{\fwidth}[1]{\hspace*{\fixedwidth}}
\newcolumntype{G}[1]{>{\setlength{\fixedwidth}{#1}\collectcell\fwidth}c<{\endcollectcell}}
\makeatother
\setlength{\parindent}{0pt}% Just for this example
\begin{document}
Using column type \verb|c|:
\begin{tabular}{r c c}
\toprule
\textbf{Parameter} & \textbf{Symbol} & \textbf{Value} \\
\midrule
Saturation Magnetization & $M_s$ & 100 emu/cc \\
sd & $\sigma_{Ms}$ & 5\% \\
Anisotropy & $H_k$ & 8kOe \\
sd & $\sigma_{Hk}$ & 5\% \\
Coercive field & $H_c$ & \\
Exchange coupling & $A_x$ & 2.5e-9 erg/cm \\
sd & $\sigma_{Ax}$ & 5\% \\
\bottomrule
\end{tabular}
\bigskip
Using column type \verb|g|:
\begin{tabular}{r c g}
\toprule
\textbf{Parameter} & \textbf{Symbol} & \multicolumn{1}{c}{\textbf{Value}} \\
\midrule
Saturation Magnetization & $M_s$ & 100 emu/cc \\
sd & $\sigma_{Ms}$ & 5\% \\
Anisotropy & $H_k$ & 8kOe \\
sd & $\sigma_{Hk}$ & 5\% \\
Coercive field & $H_c$ & \\
Exchange coupling & $A_x$ & 2.5e-9 erg/cm \\
sd & $\sigma_{Ax}$ & 5\% \\
\bottomrule
\end{tabular}
\bigskip
Using column type \verb|G|:
\begin{tabular}{r c G{75pt}}
\toprule
\textbf{Parameter} & \textbf{Symbol} & \multicolumn{1}{c}{\textbf{Value}} \\
\midrule
Saturation Magnetization & $M_s$ & 100 emu/cc \\
sd & $\sigma_{Ms}$ & 5\% \\
Anisotropy & $H_k$ & 8kOe \\
sd & $\sigma_{Hk}$ & 5\% \\
Coercive field & $H_c$ & \\
Exchange coupling & $A_x$ & 2.5e-9 erg/cm \\
sd & $\sigma_{Ax}$ & 5\% \\
\bottomrule
\end{tabular}
\end{document}
G
- 列单元格将其条目传递给\fwidth
接受参数但不执行任何操作(...类似于\@gobble
)。
请注意,列标题是使用设置的\multicolumn{1}{c}{..}
。这是为了覆盖tabular
列规范中设置的列,这样它就不会被吞噬。
如果你希望删除您可以使用类似的方法(也讨论在删除列的最简单方法?)。
答案3
我的解决方案是:用颜色来white
给想要隐藏的列上色。为此,我使用array
允许定义新类型的列的包,并\newcolumntype{h}{>{\color{white}}c}
用 为标题行上色black
。
c
这允许通过简单地将(或l
或r
) 列规范更改为 (隐藏) 来隐藏一列h
。
隐藏第 2 列的代码是
\documentclass{article}
\usepackage{array}
\usepackage{xcolor}
\newcolumntype{h}{>{\color{white}}c} % type 'h' = hidden
\begin{document}
\begin{tabular}{|r|h|c|}\hline
\color{black}Parameter & \color{black}Symbol & \color{black}Value\\\hline\hline
Saturation Magnetization & $M_s$ & 100 emu/cc\\
sd & $\sigma_{Ms}$ & 5\%\\\hline
Anisotropy & $H_k$ & 8kOe\\
sd & $\sigma_{Hk}$ & 5\%\\\hline
Coercive field & $H_c$ & \\\hline
Exchange coupling & $A_x$ & 2.5e-9 erg/cm\\
sd & $\sigma_{Ax}$ & 5\%\\\hline
\end{tabular}
\end{document}
这产生了
这还可以保留列空间。如果要隐藏第 3 列(而不是第 2 列),只需将 更改\begin{tabular}{|r|h|c|}
为即可\begin{tabular}{|r|c|h|}
。
这是我能实现的最接近开关的东西。