pdf转换问题latex

pdf转换问题latex

我有一个创建 csv 文件的脚本和下面显示的输出,但是当我想通过 latex 将其转换为 pdf 时,pdf 就不会生成。当我查看进入扩展模式限制 \write18 启用的日志时,有人可以建议我吗。%&-line 解析已启用。

脚本输出:

First;DOT NET;+0176547;
Sec row;NETWORK;+12345;
+pdflatex -output-directory /tmp test.tex   -- hangs 
\documentclass{article}
\usepackage{booktabs}
\usepackage{csvsimple}
\usepackage{longtable}
\usepackage{amssymb}

\begin{longtable}{|p{8cm}|c|c|}
        \hline
        \textbf{\textsf{A}} & \textbf{\B} & \textbf{\textsf{C}}} \\\hline
    \endfirsthead
    \textbf{\textsf{A}} & \textbf{\B} & \textbf{\textsf{C}}} \\\hline
    \endhead % all the lines above this will be repeated on every page
    \endfoot
    \endlastfoot
    \csvreader[
                separator=semicolon,
                column count=3,
                check column count,
                respect all=true,
                before reading={\catcode`\_=11},
                after reading={\catcode`\_=8},
                late after line=\\\hline
    ]{tmp.csv}{}{\csvlinetotablerow}
\end{longtable}
%\catcode`\&=4% reactivate & sign
}}
\end{document}

答案1

回答原始问题:

您的代码存在几个问题,例如,错误的支撑、错误的separator、表格有 5 列(每行第一列之前有一列|,最后一|列之后有一列)等等。

\begin{filecontents*}{\jobname.csv}
| A        | B              |c        |
| -------- | -------------- |-------- |
| First    | DOT NET        |+0176547 |
| Sec row  | NETWORK        |+12345   |
\end{filecontents*}

\documentclass{article}
\usepackage{booktabs}
\usepackage[l3]{csvsimple}
\usepackage{longtable}
\usepackage{amssymb}
\begin{document}
\begin{longtable}{|p{8cm}|c|c|}
        \hline
        \textbf{\textsf{A}} & \textbf{B} & \textbf{\textsf{C}} \\\hline
    \endfirsthead
    \textbf{\textsf{A}} & \textbf{B} & \textbf{\textsf{C}} \\\hline
    \endhead % all the lines above this will be repeated on every page
    \endfoot
    \endlastfoot
    \csvreader[
                separator=pipe,
                column count = 5,
                check column count,
                range = 2-4,
                head to column names,
                late after line=\\\hline
    ]{\jobname.csv}{}{ \A & \B & \c }
\end{longtable}
%\catcode`\&=4% reactivate & sign
\end{document}

用改变的例子来回答问题:

您的代码中仍然存在错误,例如,

    \textbf{\textsf{A}} & \textbf{\B} & \textbf{\textsf{C}}} \\\hline

{这里最后一个单元格中有两个,但有三个}。这会导致错误消息:

缺少{ 插入。

您可以在代码中发现两次这个错误。

类似线路

}}

关闭两个从未打开过的组并且导致两个错误消息:

} 太多

以下操作不会出现错误(并且不需要使用csvsimple-l3):

\begin{filecontents*}[force]{\jobname.csv}
First;DOT NET;+0176547;
Sec row;NETWORK;+12345;
\end{filecontents*}

\documentclass{article}
\usepackage{booktabs}
\usepackage{csvsimple}
\usepackage{longtable}
\usepackage{amssymb}
\begin{document}
\begin{longtable}{|p{7cm}|c|c|}
        \hline
        \textbf{\textsf{A}} & \textbf{B} & \textbf{\textsf{C}} \\\hline
    \endfirsthead
    \textbf{\textsf{A}} & \textbf{B} & \textbf{\textsf{C}} \\\hline
    \endhead % all the lines above this will be repeated on every page
    \endfoot
    \endlastfoot
    \csvreader[
                head=false,
                separator=semicolon,
                column count = 3,
                late after line=\\\hline
    ]{\jobname.csv}{}{\csvlinetotablerow}
\end{longtable}
\end{document}

在此处输入图片描述

答案2

这是我的错,我只需要将 .tex 文件复制到正确的路径下。现在它可以工作了,谢谢大家

相关内容