更改换行规则

更改换行规则

我使用 pgfplotstable 从文件中读取数据。

列的宽度是固定的。第三列包含普通文本,行分隔得很好。第二列包含数学表达式,这些表达式没有空格,而且可能很长,超出了列的宽度。在这种情况下,我希望表达式分隔并在下一行继续。

目前,换行符只能出现在某些特殊字符旁边(例如减号,参见第三行),但我希望它能够出现在其他字符旁边(例如星号)。因此,例如,第一行可以在“-V_lm/(epsilon0_const*2*pir)“下一行可能有“1[F]*1[V/m]”。

有人知道如何做到这一点吗?

还有代码(实际上与问题无关,但以防万一):

\begin{table}[H]
\centering
\newcolumntype{C}{>{}p{60mm}}% a centered fixed-width-column
\pgfplotstabletypeset[
    col sep=ampersand,
    columns/Name/.style={verb string type},
    columns/Expression/.style={column type=|C, verb string type},
    columns/Description/.style={column type=|C, verb string type},
    empty cells with={--}, % replace empty cells with ’--’
    every head row/.style={before row=\toprule,after row=\midrule},
    every last row/.style={after row=\bottomrule},
]{./equations.txt}
\caption{Implementation.}
\end{table}

我正在从中读取数据的文件:

Name&Expression&Description
normE&-V_lm/(epsilon0_const*2*pi*r)*1[F]*1[V/m]&Normal electric field (V/m)
T&T[1/K]&Temperature (K)
F&max(g_normE*1[m/V]*1e-9,1e-12)&product of local electric field strength and elementary charge (eV/nm)

答案1

在此处输入图片描述

Mico 刚刚发布了一个url版本,但如果您想手动控制单个角色:

\documentclass{article}
\usepackage{array}
\usepackage[T1]{fontenc}
\begin{document}

\newcolumntype{C}{>{\centering\arraybackslash}p{60mm}}% a centered fixed-width-column
{\catcode`_=12
\begin{tabular}{lCC}
Name&Expression&Description\\
normE&-V_lm/(epsilon0_const*2*pi*r)*1[F]*1[V/m]&Normal electric field (V/m)\\
T&T[1/K]&Temperature (K)\\
F&max(g_normE*1[m/V]*1e-9,1e-12)&product of local electric field strength and elementary charge (eV/nm)
\end{tabular}
}

\bigskip

{\catcode`_=12
\catcode`*\active
\def*{\string*\linebreak[0]}
\begin{tabular}{lCC}
Name&Expression&Description\\
normE&-V_lm/(epsilon0_const*2*pi*r)*1[F]*1[V/m]&Normal electric field (V/m)\\
T&T[1/K]&Temperature (K)\\
F&max(g_normE*1[m/V]*1e-9,1e-12)&product of local electric field strength and elementary charge (eV/nm)
\end{tabular}
}

\end{document}

答案2

如果我正确理解了您的目的,那么长数学字符串就不能由 TeX 处理并呈现为公式,而必须以纯文本模式呈现。您可以尝试将长数学字符串包含在\url{...}指令中,如下例所示。LaTeX 通常会为此类字符串找到合适的换行符。

(为了便于举例,我擅自将您的pgfplotstable设置转置为更容易识别的设置。)tabular

在此处输入图片描述

\documentclass{article}
\usepackage{array,booktabs}
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{6cm}"
\usepackage[hyphens]{url} % allow line breaks at hyphens
\begin{document}
\begin{table}
\centering
\begin{tabular}{@{} l *{2}{L{6cm}} @{}}
\toprule
Name &Expression&Description\\
\midrule
normE&\url{-V_lm/(epsilon0_const*2*pi*r)*1[F]*1[V/m]}
&Normal electric field (V/m)\\
T&\url{T[1/K]}&Temperature (K)\\
F&\url{max(g_normE*1[m/V]*1e-9,1e-12)}
&product of local electric field strength and elementary charge (eV/nm)\\
\bottomrule
\end{tabular}
\end{table}
\end{document} 

相关内容