我需要在 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对于字符串末尾带有 \
的极端情况。
您可能也对此包感兴趣 https://github.com/stevengj/LaTeXStrings.jl如果您经常使用 LaTeX。
关于string - Julia - 在文件中打印或写入字符串中的反斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53794182/