我想将 csv 文件的内容放入tabular
环境中。但是,这包括带有下划线“_”的文本。由于这会触发数学环境,因此会出现错误:Missing $ inserted
。
使用转义下划线显示实际文本不起作用,因为 csv 阅读器不起作用:
\documentclass{article}
\usepackage{csvsimple}
\usepackage{url}
\DeclareUrlCommand\UScore{\urlstyle{rm}}
% Make csv in question
\begin{filecontents*}{scientists3.csv}
name
Albert_Einstein,
Marie_Curie,
Thomas_Edison
\end{filecontents*}
\begin{document}
\csvreader[tabular=|l|,
table head=\textbf{ Reference} \\\hline,
late after line = \\\hline]%
{scientists3.csv}{name=\name}%
{\UScore{\name}}%
\end{document}
结果显然是:“ \name
”,而不是.csv文件的内容。
答案1
您必须扩展两次\name
:
\begin{filecontents*}{\jobname.csv}
name
Albert_Einstein
Marie_Curie
Thomas_Edison
\end{filecontents*}
\documentclass{article}
\usepackage{csvsimple}
\usepackage{url}
\DeclareUrlCommand\UScore{\urlstyle{rm}}
\newcommand{\expUScore}{%
\expandafter\expandafter\expandafter
\UScore
\expandafter\expandafter\expandafter
}
\begin{document}
\csvreader[
tabular=|l|,
table head=\hline\textbf{Reference} \\\hline,
late after line = \\\hline
]{\jobname.csv}{name=\name}
{\expUScore{\name}}
\end{document}
我过去常常\jobname
避免破坏我的文件。
答案2
最简单的解决方案是使用respect underscore=true
选项:
\csvreader[respect underscore=true,...]
如果设置了该键,则 CSV 内容中的每个下划线符号“_”都是普通字符。