Overleaf中LaTeX导入CSV时下划线显示为小点的问题求助
解决csvsimple导入CSV时下划线显示为小点的问题
出现这个问题的核心原因是:LaTeX默认将_视为数学模式的下标命令,文本模式下直接使用未转义的_会被解析异常,最终显示为小点。以下是几种可行的解决办法:
1. 直接修改CSV文件转义下划线
把CSV里的CAHH_I替换为CAHH\_I,让LaTeX能正确识别下划线为文本字符。
2. 在csvsimple读取时处理文本
可以通过\detokenize命令处理列内容,或者自定义CSV方言来自动转义:
示例代码1:用\detokenize处理目标列
\documentclass{article} \usepackage{csvsimple} % 模拟你的CSV内容 \begin{filecontents*}[overwrite]{your_data.csv} Problem Instance,Best Model TestInstance,CAHH_I AnotherInstance,CAHH_I \end{filecontents*} \begin{document} \csvreader[ tabular=|l|l|, table head=\hline Problem Instance & Best Model \\ \hline, late after line=\\ \hline ]{your_data.csv}{Problem Instance=\inst,Best Model=\model}{ \inst & \detokenize{\model} } \end{document}
示例代码2:自定义CSV方言
通过修改字符类别码,让下划线在读取时被当作普通字符:
\documentclass{article} \usepackage{csvsimple} \begin{filecontents*}[overwrite]{your_data.csv} Problem Instance,Best Model TestInstance,CAHH_I AnotherInstance,CAHH_I \end{filecontents*} % 定义处理下划线的方言 \csvloaddialect{underscore-as-text}{ before reading={\catcode`\_=12} % 将下划线设为普通文本字符 } \begin{document} \csvreader[ dialect=underscore-as-text, tabular=|l|l|, table head=\hline Problem Instance & Best Model \\ \hline, late after line=\\ \hline ]{your_data.csv}{Problem Instance=\inst,Best Model=\model}{ \inst & \model } \end{document}
3. 全局设置下划线为普通字符
如果整个文档都不需要用_作为数学下标,可以在导言区添加以下代码,全局将下划线设为普通文本字符:
\catcode`\_=12
内容的提问来源于stack exchange,提问作者Eduardo Zárate
相关产品推荐
相关产品推荐

