我正在为这个项目使用 ShareLaTeX 的物理研究所模板。我创建了一些数据表,由于我制作的报告相对较长,并且顺序可能会发生变化,所以我希望每个数据表都有一个标签。我从 CSV 文件导入数据,并使用 csvsimple 包在图形环境中使用其 csvreader 命令创建表格。我的问题是,出于某种原因,在第一个表格之后,每个后续标签都会打印在 PDF 中。
\usepackage[nolabels]{showlabels}
我曾尝试使用 showlabels 包来防止使用和显示标签\usepackage[final]{showlabels}
,但这两个命令都没有任何效果。
以下是我正在使用的代码以及几个 CSV 文件和输出:
\documentclass[12pt,a4paper,final]{iopart}
\newcommand{\gguide}{{\it Preparing graphics for IOP journals}}
%Uncomment next line if AMS fonts required
\usepackage{iopams}
\usepackage{graphicx}
\usepackage[breaklinks=true,colorlinks=true,linkcolor=blue,urlcolor=blue,citecolor=blue]{hyperref}
\usepackage{gensymb}
\usepackage{csvsimple}
\usepackage{caption}
\usepackage{array}
\usepackage{longtable}
\usepackage{amsmath}
\usepackage{float}
\usepackage[final]{showlabels}
\makeatletter
\newcommand\footnoteref[1]{\protected@xdef\@thefnmark{\ref{#1}}\@footnotemark}
\makeatother
\newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\newcolumntype{R}[1]{>{\raggedleft\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\begin{document}
\section{\label{sec:level1} Procedure}
\subsection{\label{sec:level2} Organization}
\subsection{\label{sec:level2} Trivialities and Setup-Determining Experiments}
\begin{table}[H]
\label{tab: MassofMasses}
\centering
\caption{Actual Mass of Masses by Label}
\csvreader[tabular=|C{1.5cm}|C{3cm}|,
table head=\hline Label & Mass (g)\\\hline,
table foot=\hline]
{ActualMassofMasses.csv}{Mass number=\label, Actual mass=\mass}
{\label & \mass}
\end{table}
\begin{table}[H] \label{tab:CenterofMass}
\centering
\caption{Distance from Tip of Hook to Center of Mass of Masses}
\csvreader[tabular=|c|c|,
table head=\hline Mass (g) & Distance (cm)\\\hline,
table foot=\hline]
{CenterofMass.csv}{mass=\mass, tip to CM=\distance}
{\mass & \distance}
\end{table}
所需文件(链接到公共 Google Drive 文件夹): https://drive.google.com/drive/u/1/folders/0B8iLMKPpwWqKeHZDNmhJSXIzazA
提前感谢大家的帮助!另外,如果我遗漏了任何需要包含的内容,请向我索取。
答案1
使用您的样式和类文件还存在一些其他问题,但我可以为您描述的问题提供解决方案。
你的代码行
{ActualMassofMasses.csv}{Mass number=\label, Actual mass=\mass}
重新定义标准\label
宏。请注意,此重新定义是全局的。
为了避免这种情况,我们可以保存并恢复原始文件\label
,但首选方法是重命名您的私有宏,例如
{ActualMassofMasses.csv}{Mass number=\mylabel, Actual mass=\mass}
完整代码如下:
\documentclass[12pt,a4paper,final]{iopart}
\newcommand{\gguide}{{\it Preparing graphics for IOP journals}}
%Uncomment next line if AMS fonts required
\usepackage{iopams}
\usepackage{graphicx}
\usepackage[breaklinks=true,colorlinks=true,linkcolor=blue,urlcolor=blue,citecolor=blue]{hyperref}
\usepackage{gensymb}
\usepackage{csvsimple}
\usepackage{caption}
\usepackage{array}
\usepackage{longtable}
\usepackage{amsmath}
\usepackage{float}
\usepackage[final]{showlabels}
\makeatletter
\newcommand\footnoteref[1]{\protected@xdef\@thefnmark{\ref{#1}}\@footnotemark}
\makeatother
\newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\newcolumntype{R}[1]{>{\raggedleft\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\begin{document}
\section{\label{sec:level1} Procedure}
\subsection{\label{sec:level2} Organization}
\subsection{\label{sec:level2} Trivialities and Setup-Determining Experiments}
\begin{table}[H]
\label{tab: MassofMasses}
\centering
\caption{Actual Mass of Masses by Label}
\csvreader[tabular=|C{1.5cm}|C{3cm}|,
table head=\hline Label & Mass (g)\\\hline,
table foot=\hline]
{ActualMassofMasses.csv}{Mass number=\mylabel, Actual mass=\mass}
{\mylabel & \mass}
\end{table}
\begin{table}[H] \label{tab:CenterofMass}
\centering
\caption{Distance from Tip of Hook to Center of Mass of Masses}
\csvreader[tabular=|c|c|,
table head=\hline Mass (g) & Distance (cm)\\\hline,
table foot=\hline]
{CenterofMass.csv}{mass=\mass, tip to CM=\distance}
{\mass & \distance}
\end{table}
\end{document}
(由于提供的样式和类文件,上述代码仍然有编译错误)