前言
由于在MarkDown中的公式可以直接显示中文,例如:
行内公式
行内公式
行内公式
行间公式
行间公式
行间公式
但
LaTeX
\rm\LaTeX
LATEX中在公式中添加中文要用\text{}
等命令,不然中文不显示,所以考虑是否有方法能直接在
LaTeX
\rm\LaTeX
LATEX的公式中直接添加中文。
过程
经过一下午和晚上不断询问文心一言、查找资料、查看文档,用了大概6小时左右,终于基本解决了。
感谢文心一言:https://yiyan.baidu.com/
完整代码
可以在Tex Live(其他的Tex环境没试过)的安装目录中找到...\texlive\2023\texmf-dist\tex\latex\mylatex
这样的路径,在其中添加mylatex.sty
(可能需要管理员权限)。
mylatex.sty文件内容:
\ProvidesPackage{mylatex}[2023-9-20 mylatex]
\RequirePackage{minted}
\RequirePackage{expl3}
\RequirePackage{environ}
\ExplSyntaxOn
\NewEnviron{zhongwen}{
\str_set:NV \temp {\BODY}
\regex_replace_all:nnN{[^\x00-\xff]+}{\\textit\{\0\}}{\temp}
% 应该可以使用\ifwindows和\iflinux来判断临时文件目录从而把临时文件放到临时文件目录里的
\immediate\openout0=\jobname.zhongwen
\immediate\write0{\temp}
\immediate\closeout0
\input{\jobname.zhongwen}
\DeleteFile{\jobname.zhongwen}
}
\ExplSyntaxOff
之后需要执行(可能需要管理员权限)
texhash
来刷新 LaTeX \rm\LaTeX LATEX的文件索引。
如果使用了VSCode的HyperSnips for Math插件,可以在latex.hsnips
中添加如下代码:
snippet zwzm "Chinese proof" A
\begin{proof}
\ExplSyntaxOn
\begin{zhongwen}
$$
$1
$$
\end{zhongwen}
\ExplSyntaxOff
\end{proof}
endsnippet
snippet zwdh "Chinese single line" A
\ExplSyntaxOn
\begin{zhongwen}
$$1$
\end{zhongwen}
\ExplSyntaxOff
endsnippet
在编写 LaTeX \rm\LaTeX LATEX文件时,可以通过
\usepackage{mylatex}
导入自定义的宏包,通过zwzm
和zwdh
来使用自定义的代码片段。
此时在公式中使用中文不用\text{}
就可以正常显示了。
参考网址
https://zhuanlan.zhihu.com/p/144087254
https://www.jianshu.com/p/6dfd27b7bd90
https://blog.csdn.net/weixin_41413177/article/details/90515587
https://mirrors.tuna.tsinghua.edu.cn/CTAN/macros/latex/contrib/l3kernel/expl3.pdf
https://mirrors.tuna.tsinghua.edu.cn/CTAN/macros/latex/contrib/l3kernel/interface3.pdf
https://mirrors.tuna.tsinghua.edu.cn/CTAN/macros/latex/contrib/minted/minted.pdf