latex 删除 latex 表中的列

latex 删除 latex 表中的列

我有一张乳胶表,其中输入了一些我想与另一方共享的数据。我输入了数据,其中包含我认为参数应该采用的值。我想保留这些值作为参考。但是我想发送不显示值的表格(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&#2&#3\\{ #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&#2&#3\\{ #1& #2&#3\\}

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。下面我定义了两种列类型:gG{<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这允许通过简单地将(或lr) 列规范更改为 (隐藏) 来隐藏一列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|}

这是我能实现的最接近开关的东西。

相关内容