我一直在尝试在 csv 文件中添加带有文件名的 eps 图形。查看 CSV 以了解我的意思:https://docs.google.com/spreadsheet/ccc?key=0Ao9if7HTdeaPdGowdXJXbURJQWVmVTdDUVRaYTdldXc#gid=0
到目前为止,我已经设法让 LaTeX 输出这么多的内容:
我正在尝试将图形(带有化合物 eps 和名称)放置在试剂列中。到目前为止,我已经在 Pgfplotstable 中创建了一个新列,并尝试从我的 csv 文件的名称和结构列中包含值。
我现在很困惑,所以我开始尝试为每个图像创建一个新命令,稍后我会在图中调用该命令(\cmpi->compound 1 name、\structurei->compound 1 structure、\cmpii->compound 2 name、\structureii->compound 2 structure)。我无法设置该命令,因为在再次调用 defineCompound 后命令会丢失。可能有更好的方法来创建表格内图形,但我现在迷茫了。
第一个\typeout{TESTING: \cmpi, \structurei}
可以工作并打印TESTING: (R)-(-)carvone, ../chemicals/(r)-(-)-carvone.eps
,但第二个由于“未定义的控制序列”而失败
任何帮助都将不胜感激。我刚开始使用 LaTeX,到目前为止,这是一个相当艰难的过程。
我希望最终能够将所有化合物放在一个 csv 文件中,并且能够根据我正在执行的实验选择我想要的化合物。
我的 LaTeX 是:
\documentclass[pdftex,12pt,a4paper]{article}
\usepackage{enumitem}
\usepackage[left=.75in,right=.75in,top=.75in,bottom=1in]{geometry}
\usepackage{textcomp}
\usepackage{pgfplotstable}
\usepackage{graphicx}
\usepackage{siunitx}
\usepackage{tabularx}
\usepackage{epstopdf}
\usepackage{longtable}
\usepackage{booktabs}
\usepackage{colortbl}
\usepackage{fp}
\usepackage[runs=2]{auto-pst-pdf}
\usepackage[journal=rsc]{chemstyle}
\newlist{steps}{enumerate}{1}
\setlist[steps,1]{
label={Step~\arabic*},
leftmargin=*,
align=left,
labelsep=10mm,
}
\setcounter{secnumdepth}{0}
\newcommand\defineCompound[3]{%
\typeout{#1}
\typeout{#2}
\typeout{#3}
\global\expandafter\newcommand\csname cmp#1\endcsname{#2}
\global\expandafter\newcommand\csname structure#1\endcsname{#3}
\typeout{TESTING: \cmpi, \structurei}
}
\begin{document}
\makeatletter
\section{Introduction}
\newcommand{\expnum}{14}
\newcommand{\exptitle}{Conversion of Carvone to Carvacrol: Multiweek Experiment Part 1}
\input{../common/intro.tex}
\begin{figure}[h!]
\caption{Conversion of (R)-(-)Carvone to Carvacrol by Sulfuric Acid and Heat.}
\centering
\includegraphics[width=\textwidth]{../reactions/(r)-(-)-carvone-to-carvacrol.eps}
\end{figure}
\begin{figure}[h!]
\caption{Balanced Equation.}
\centering
\includegraphics[width=\textwidth]{../reactions/2.eps}
\end{figure}
\newpage
\section{Table of Reagents}
\begin{center}
\pgfplotstableread[col sep=comma]{../common/reagents.csv}\loadedtable
\pgfplotstablecreatecol[
create col/assign/.code={%
\getthisrow{name}\name
\getthisrow{structure}\structure
\FPeval{\result}{clip(\pgfplotstablerow + 1)}
\edef\entry{\romannumeral\result}
\defineCompound{\entry}{\name}{\structure}
\pgfkeyslet{/pgfplots/table/create col/next content}\entry
}]{reagent}\loadedtable
\pgfplotstabletypeset[
string type,
begin table=\begin{tabularx}{\textwidth},
end table=\end{tabularx},
columns={reagent,mw,bp,mp,density},
%columns/name/.style={column name=Name, column type={|c}},
columns/reagent/.style={
column name=Reagent,
column type={l},
postproc cell content/.code={
\message{\pgfkeysvalueof{/pgfplots/table/@cell content}}
\message{\cmpi}
%\pgfkeyssetvalue{/pgfplots/table/@cell content}{}%
},
},
columns/mw/.style={column name={Molecular Weight (\si[per-mode=symbol]{\gram\per\mol})}, column type={X}},
columns/bp/.style={column name=Boiling Point (\si{\celsius}), column type={l}},
columns/mp/.style={column name=Melting Point (\si{\celsius}), column type={l}},
columns/density/.style={column name=Density (g/mol), column type={X}},
every nth row={1}{before row=\midrule},
every head row/.style={before row=\toprule,after row=\midrule},
every last row/.style={after row=\bottomrule},
]\loadedtable
\end{center}
\end{document}
答案1
我希望我在这里回答的是正确的问题...据我所知,您有一列“文件名”,并且您不只是排版文件名,而是想要通过 包含相关的图形文件,对\includegraphics
吗?如果这个假设是错误的,我会要求您清理您的示例并相应地重新表述问题。
如果我的理解是正确的,那么以下内容可能会有所帮助:
\documentclass{standalone}
\usepackage{pgfplotstable}
\usepackage{graphicx}
\begin{document}
\pgfplotstableread{
filename X
PP-figure0.pdf 1
PP-figure1.pdf 2
PP-figure2.pdf 3
}\loadedtable
\pgfplotstabletypeset[
columns/filename/.style={
column name=Reagent,
column type={l},
assign cell content/.code={%
\pgfkeyssetvalue{/pgfplots/table/@cell content}{\includegraphics{##1}}%
},
},
]\loadedtable
\end{document}
我自己生成了一个最小示例。assign cell content
由于此步骤不是预处理步骤,因此它使用这如此步骤。
它可能会受益于一些垂直对齐,但在我(或其他人)跳到它之前,你应该弄清楚这是否是你想要的。
记录如下:我使用pdflatex -shell-escape PP
以下文件生成了图形文件
\documentclass[a4paper]{article}
\usepackage{tikz}
\usetikzlibrary{external}
\tikzexternalize
\begin{document}
\tikz \draw[left color=red, right color=white] (0,0) circle (10pt);
\tikz \draw[left color=blue, right color=white] (0,0) circle (10pt);
\tikz \draw[left color=black, right color=white] (0,0) circle (10pt);
\end{document}