我对 LateX 还很陌生,过去几天我一直在尝试在我的 pdflatex+Makeindex+bibtex 排版机中使用 Miktex 2.9/TeXworks 进行 Shell 转义,以便能够使用CSV排序器在CSV简单包裹。
当我尝试编译我的 tex
\csvreader[sort by=table/namesort.xml,
head to column names,
tabular=>{\color{red}}lllll,
table head=\toprule year of birth\\\midrule,
table foot=\bottomrule]
{./table/csvsimple-example.csv}{}{\csvlinetotablerow}
我收到此错误:
按“./table/namesort.xml”> 对“./table/csvsimple-example.csv”进行排序
(“C:\我的 tex.csvtoken”
!软件包 csvsimple 错误:调用 CSV-Sorter 失败!使用 '-shell-escape' 选项或检查日志文件 'csvsorter.log'。
请参阅 csvsimple 包文档以了解解释。输入 H 可立即获得帮助。...
l.1 ...选项或检查日志文件“csvsorter.log”。}{}
但是我一开始没有日志文件。所以我不知道这是编程错误还是配置 -shell-escape 的问题
谢谢
答案1
由于命令行版本适用于 OP,因此它看起来像是 TeXWorks 设置问题。
TeXWorks 编译选项的以下添加对我有用。很抱歉我的电脑截图中有德语文本。
第一个是设置 pdfLaTeX 编译选项--shell-escape
:
第二个是 pdfLaTeX+MakeIndex+BibTeX 编译选项--shell-escape
:
对于这两种设置,示例来自http://tfs.github.io/csvsorter/編輯。
前提条件是CSVsorter
程序在系统路径上。将其放入 LaTeX 示例的源目录中也可以。
示例的文件如下:
歌曲比赛.tex:
\documentclass{article}
\usepackage{array,booktabs,csvsimple}
\usepackage{geometry}
\begin{document}
\csvreader[sort by=sumsort.xml,
head to column names,
tabular=lllcc,
table head=\toprule\textbf{Artist} & \textbf{Title} & \textbf{Country} &
\textbf{Points} & \textbf{TV+JV}\\\midrule,
table foot=\bottomrule]
{songcontest.csv}{}
{\Artist & \itshape''\Title'' & \Country &
\bfseries\the\numexpr\Televote+\Juryvote\relax & $(\Televote+\Juryvote)$}
\end{document}
歌曲比赛.csv:
Title,Artist,Country,Televote,Juryvote
La la la la la,The Singers,United Kingdom,25,62
One and two and three,Hansi Unterober,Germany,47,35
Rarara,Channel Rats,Grand Fenwick,12,14
The green hills of the shire,Frodo and Friends,New Zealand,76,45
Paris e Calais,Chantal and Pascal,France,47,41
The bell rings,Baab,Sweden,87,24
和排序.xml:
<?xml version="1.0" encoding="UTF-8"?>
<csv>
<sortlines>
<sum order="descending" type="integer">
<column name="Televote"/>
<column name="Juryvote"/>
</sum>
<column name="Country" order="ascending" type="string"/>
</sortlines>
</csv>
我的示例目录包含以下文件: