在修改文章时很容易把格式搞乱, 这就需要重新格式化我们的文档。在这里谈一下Windows下的方法, 即使用latexindent.exe来格式化你的文档。
- 首先, 我们需要更新下ctex自带的
latexindent.exe
, 否则老是提醒我们:The Perl interpreter could not be found. 为此, 只需要到ctan下载latexindent.exe, 并搜索你ctex安装目录下的旧latexindent.exe, 然后覆盖掉. - 然后, 定位到你要格式化的tex文件, 我们这里假设是
D:\test.tex
, 运行
latexindent -w test.tex
这样你重新打开test.tex时就发现他已经重新格式化了。 - 为了得到较好的效果, 一般来说环境都要放到单独的一行。
- 最后, 还可以用自己的配置文件来设置格式。为此, 在上面的ctan下载
defaultSettings.yaml
到你test.tex同目录, 然后复制一份到localSettings.yaml
, 我把\t
都替换为两个空格, 并保存。然后只需在你前面的格式化命令中添加-l
开关即可。 即
latexindent -w -l test.tex
- 最后, 我们还可以为WinEdt添加一个LaTeX-Indent菜单。为此, 只需要打开options->options interface->Menus and Toolbar->Main Menu, 然后在最后一个END之前添加如下代码, 保存并按F9加载即可看到菜单:
MENU="&LaTeX-Indent" ITEM="LaTeX-Indent" CAPTION="latexindent" IMAGE="TeXIconTeX" SAVE_INPUT=1 MACRO=`WinExe('','latexindent -w -l "%F"','%P','LaTeX-Indent...',100,0,'','','',11);` SHORTCUT="24649::Shift+Ctrl+I" REQ_FILTER=:"%!M=TeX"|"%!M=TeX:STY"|"%!M=TeX:AUX"
附上我修改后的yaml文件:
# # defaultSettings.yaml # # You're welcome to change anything you like in here, but # it would probably be better to have your own user settings # files somewhere else- remember that this file may be overwritten # anytime that you update your distribution. Please see the manual # for details of how to setup your own settings files. # # Please read the manual first to understand what each switch does :) # Default value of indentation defaultIndent: " " # default file extension of backup file (if original is overwritten with -w switch) # for example, if your .tex file is called # myfile.tex # and you specify the backupExtension as BACKUP.bak then your # backup file will be # myfileBACKUP.bak backupExtension: .bak # only one backup per file; if onlyOneBackUp is 0 then the # number on the extension increments by 1 each time # (this is in place as a safety measure) myfile.bak0, myfile.bak1, myfile.bak2 # # if you set onlyOnebackUp to 1, then the backup file will # be overwritten each time (not recommended until you trust the script) onlyOneBackUp: 0 # some users may only want a set number of backup files, # say at most 3; in which case, they can change this switch. # If maxNumberOfBackUps is set to 0 (or less) then infinitely # many backups are possible, unless onlyOneBackUp is switched on maxNumberOfBackUps: 0 # some users may wish to cycle through back up files, for example, # with maxNumberOfBackUps: 4, they may wish to delete the oldest # back up file, and keep only the most recent. # # copy myfile.bak1 to myfile.bak0 # copy myfile.bak2 to myfile.bak1 # copy myfile.bak3 to myfile.bak2 # copy myfile.bak4 to myfile.bak3 # # the back up will be written to myfile.bak4 cycleThroughBackUps: 0 # indent preamble indentPreamble: 0 # always look for split { }, which means that the user doesn't # have to complete checkunmatched, checkunmatchedELSE alwaysLookforSplitBraces: 1 # always look for split [ ], which means that the user doesn't # have to complete checkunmatchedbracket alwaysLookforSplitBrackets: 1 # remove trailing whitespace from all lines removeTrailingWhitespace: 1 # environments that have tab delimiters, add more # as needed lookForAlignDelims: tabular: 1 tabularx: 1 longtable: 1 array: 1 matrix: 1 bmatrix: 1 pmatrix: 1 align: 1 align*: 1 alignat: 1 alignat*: 1 aligned: 1 cases: 1 dcases: 1 listabla: 1 # if you have indent rules for particular environments # or commands, put them in here; for example, you might just want # to use a space " " or maybe a double tab " " indentRules: myenvironment: " " anotherenvironment: " " chapter: " " section: " " item: " " # verbatim environments- environments specified # in this hash table will not be changed at all! verbatimEnvironments: verbatim: 1 lstlisting: 1 # no indent blocks (not necessarily verbatim # environments) which are marked as %\begin{noindent} # or anything else that the user puts in this hash # table noIndentBlock: noindent: 1 cmhtest: 1 # if you don't want to have additional indentation # in an environment put it in this hash table; note that # environments in this hash table will inherit # the *current* level of indentation they just won't # get any *additional*. noAdditionalIndent: myexample: 1 mydefinition: 1 problem: 1 exercises: 1 mysolution: 1 foreach: 0 widepage: 1 comment: 1 \[: 0 \]: 0 document: 1 frame: 0 # if you want to add indentation after # a heading, such as \part, \chapter, etc # then populate it in here - you can add # an indent rule to indentRules if you would # like something other than defaultIndent # # you can also change the level if you like, # or add your own title command indentAfterHeadings: part: indent: 0 level: 1 chapter: indent: 0 level: 2 section: indent: 0 level: 3 subsection: indent: 0 level: 4 subsection*: indent: 0 level: 4 subsubsection: indent: 0 level: 5 paragraph: indent: 0 level: 6 subparagraph: indent: 0 level: 7 # if you want the script to look for
-
#
- content here # next line is indented # next line is indented #
- another item #
本作品采用创作共用版权协议, 要求署名、非商业用途和保持一致. 转载本站内容必须也遵循署名-非商业用途-保持一致的创作共用协议.