Latex File Name Bug Patch
This commit is contained in:
		
							parent
							
								
									41c10f5688
								
							
						
					
					
						commit
						5c0d34793e
					
				@ -189,6 +189,18 @@ def rm_comments(main_file):
 | 
				
			|||||||
    main_file = re.sub(r'(?<!\\)%.*', '', main_file)  # 使用正则表达式查找半行注释, 并替换为空字符串
 | 
					    main_file = re.sub(r'(?<!\\)%.*', '', main_file)  # 使用正则表达式查找半行注释, 并替换为空字符串
 | 
				
			||||||
    return main_file
 | 
					    return main_file
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def find_tex_file_ignore_case(fp):
 | 
				
			||||||
 | 
					    dir_name = os.path.dirname(fp)
 | 
				
			||||||
 | 
					    base_name = os.path.basename(fp)
 | 
				
			||||||
 | 
					    if not base_name.endswith('.tex'): base_name+='.tex'
 | 
				
			||||||
 | 
					    if os.path.exists(pj(dir_name, base_name)): return pj(dir_name, base_name)
 | 
				
			||||||
 | 
					    # go case in-sensitive
 | 
				
			||||||
 | 
					    import glob
 | 
				
			||||||
 | 
					    for f in glob.glob(dir_name+'/*.tex'):
 | 
				
			||||||
 | 
					        base_name_s = os.path.basename(fp)
 | 
				
			||||||
 | 
					        if base_name_s.lower() == base_name.lower(): return f
 | 
				
			||||||
 | 
					    return None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def merge_tex_files_(project_foler, main_file, mode):
 | 
					def merge_tex_files_(project_foler, main_file, mode):
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
    Merge Tex project recrusively
 | 
					    Merge Tex project recrusively
 | 
				
			||||||
@ -197,15 +209,11 @@ def merge_tex_files_(project_foler, main_file, mode):
 | 
				
			|||||||
    for s in reversed([q for q in re.finditer(r"\\input\{(.*?)\}", main_file, re.M)]):
 | 
					    for s in reversed([q for q in re.finditer(r"\\input\{(.*?)\}", main_file, re.M)]):
 | 
				
			||||||
        f = s.group(1)
 | 
					        f = s.group(1)
 | 
				
			||||||
        fp = os.path.join(project_foler, f)
 | 
					        fp = os.path.join(project_foler, f)
 | 
				
			||||||
        if os.path.exists(fp):  
 | 
					        fp = find_tex_file_ignore_case(fp)
 | 
				
			||||||
            # e.g., \input{srcs/07_appendix.tex}
 | 
					        if fp:
 | 
				
			||||||
            with open(fp, 'r', encoding='utf-8', errors='replace') as fx:
 | 
					            with open(fp, 'r', encoding='utf-8', errors='replace') as fx: c = fx.read()
 | 
				
			||||||
                c = fx.read()
 | 
					 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            # e.g., \input{srcs/07_appendix}
 | 
					            raise RuntimeError(f'找不到{fp},Tex源文件缺失!')
 | 
				
			||||||
            assert os.path.exists(fp+'.tex'), f'即找不到{fp},也找不到{fp}.tex,Tex源文件缺失!'
 | 
					 | 
				
			||||||
            with open(fp+'.tex', 'r', encoding='utf-8', errors='replace') as fx:
 | 
					 | 
				
			||||||
                c = fx.read()
 | 
					 | 
				
			||||||
        c = merge_tex_files_(project_foler, c, mode)
 | 
					        c = merge_tex_files_(project_foler, c, mode)
 | 
				
			||||||
        main_file = main_file[:s.span()[0]] + c + main_file[s.span()[1]:]
 | 
					        main_file = main_file[:s.span()[0]] + c + main_file[s.span()[1]:]
 | 
				
			||||||
    return main_file
 | 
					    return main_file
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user