如何在 csvsimple 和 babel(法语)中使用分号分隔符?

如何在 csvsimple 和 babel(法语)中使用分号分隔符?

1)分号;分隔符和 babel

使用该包csvsimple,我发现我可以使用分号;分隔符只有当babel包未加载时

\documentclass[varwidth,margin=0.5cm]{standalone}

\usepackage[french]{babel} % Comment to avoid error
\usepackage[utf8x]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{csvsimple}

\begin{filecontents*}{TestSemicolon.csv}
surname;name
MOUSE;Mickey
DUCK;Donald
\end{filecontents*}

\begin{document}
  \csvreader[
    head to column names,
    separator=semicolon,
    ]{TestSemicolon.csv}{}{%
    \surname~\name\\
    }%
\end{document}

我收到以下错误,因为\surname\name似乎未定义:

Undefined control sequence

2)逗号,分隔符和 babel

然而,如果我使用逗号,分隔符(中的默认选项csvsimple),一切似乎都运行正常:

\documentclass[varwidth,margin=0.5cm]{standalone}

\usepackage[french]{babel}
\usepackage[utf8x]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{csvsimple}

\begin{filecontents*}{TestComma.csv}
surname,name
MOUSE,Mickey
DUCK,Donald
\end{filecontents*}

\begin{document}
  \csvreader[
    head to column names,
    ]{TestComma.csv}{}{%
    \surname~\name\\
    }%
\end{document}

输出带有逗号分隔符且已加载 Babel

可以将分号;分隔符与csvsimple一起使用吗babel

答案1

您必须禁用;具有以下特殊含义的功能babel-french

\begin{filecontents*}{\jobname-semicolon.csv}
surname;name
MOUSE;Mickey
DUCK;Donald
\end{filecontents*}

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage{csvsimple}

\begin{document}

\noindent
\csvreader[
  before reading=\shorthandoff{;},
  head to column names,
  separator=semicolon,
]{\jobname-semicolon.csv}{}{%
    \surname~\name\\
}
and some other text.

\end{document}

避免utf8x,它已经好几年没有维护了。

在此处输入图片描述

相关内容