Julia - 在文件中打印或写入字符串中的反斜杠

Julia - Printing or Writing in a file a Backslash in a String

我需要在 Julia 中写入一个 LaTeX 命令,这是一个最小的例子:

open("./file.tex", "w") do f
   foo::Int = 5
   # write(f, "$foo\hline \n")        - This is what I would like to do
   # write(f, "$foo \ \n")           - This is another thing I want to do, and it works
   # write(f, "$foo \\hline \n")     - My final goal is this -> 
                                        leads to ERROR: syntax: invalid escape sequence
end

你已经明白我想要什么了,我想要一个带有反斜杠的字符串,但不是转义字符。 这不起作用:

julia> "\"  # Error

这都不是

julia> "\\hline"

你可以写"\hline"来得到你想要的。一般来说,规则是两个 \ 在结果字符串中转换为一个 \,所以 "\\h" 是一个错误,因为它被解析为 "\" 然后 "\h"\h 是无效序列,但是例如"\\r" 将被接受,因为 \r 是一个有效的空格序列(所以实际上你很幸运 \h 是无效的,因为它允许你发现错误)。

这也意味着如果你想在输出中有 something\+newline 你必须写 ""something \\\n"" (五个 \ - 四个获得 "\",第五个获得 \n).

的新行

您可以使用原始字符串文字来避免像这样转义 \raw"\hline"(但是您失去了插值的能力)。 .请参阅 https://docs.julialang.org/en/latest/manual/strings/#man-raw-string-literals-1 以了解字符串末尾带有 \ 的极端情况。

如果您经常使用 LaTeX,您可能也对这个软件包感兴趣 https://github.com/stevengj/LaTeXStrings.jl