Advertisement
edward4324

farhod's ebanina

Apr 28th, 2025 (edited)
182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.15 KB | None | 0 0
  1. import os
  2. import re
  3.  
  4. def generate_latex():
  5.     photos_dir = 'photos'
  6.     if not os.path.exists(photos_dir):
  7.         print(f"Директория '{photos_dir}' не найдена.")
  8.         return
  9.  
  10.     image_files = []
  11.     valid_extensions = ('.jpg', '.jpeg', '.png')
  12.     for filename in os.listdir(photos_dir):
  13.         if filename.lower().endswith(valid_extensions):
  14.             image_files.append(filename)
  15.  
  16.     pattern = re.compile(r'^(\d+)\((\d+)\)')
  17.     parsed_files = []
  18.     for filename in image_files:
  19.         name_without_ext = os.path.splitext(filename)[0]
  20.         match = pattern.match(name_without_ext)
  21.         if match:
  22.             try:
  23.                 group = int(match.group(1))
  24.                 num = int(match.group(2))
  25.                 parsed_files.append((group, num, filename))
  26.             except ValueError:
  27.                 print(f"Ошибка в формате номера для файла {filename}")
  28.         else:
  29.             print(f"Файл '{filename}' не соответствует шаблону. Пропускаем.")
  30.  
  31.     parsed_files.sort(key=lambda x: (x[0], x[1]))
  32.     sorted_files = [file[2] for file in parsed_files]
  33.  
  34.     latex_content = """\\documentclass{article}
  35. \\usepackage{graphicx}
  36. \\usepackage{tabularx}
  37. \\usepackage[legalpaper, margin=2cm]{geometry}
  38. \\usepackage[T2A]{fontenc}
  39. \\usepackage[utf8]{inputenc}
  40. \\usepackage[russian]{babel}
  41.  
  42. \\begin{document}
  43. \\raggedright
  44. """
  45.  
  46.     for filename in sorted_files:
  47.         name = os.path.splitext(filename)[0]
  48.         latex_content += f"""
  49. Фото {name}\\\\
  50.  
  51. \\includegraphics[width=0.9\\textwidth, height=0.6\\textheight, keepaspectratio]{{photos/{filename}}}
  52.  
  53. \\vspace{{0.5cm}}
  54. \\begin{{tabularx}}{{\\textwidth}}{{|X|}}
  55. \\hline
  56. \\\\ \\hline
  57. \\\\ \\hline
  58. \\\\ \\hline
  59. \\\\ \\hline
  60. \\end{{tabularx}}
  61.  
  62. \\vspace{{1cm}}
  63. """
  64.  
  65.     latex_content += "\\end{document}"
  66.  
  67.     with open('output.tex', 'w', encoding='utf-8') as f:
  68.         f.write(latex_content)
  69.     print("LaTeX файл 'output.tex' успешно создан. Скомпилируйте его с помощью pdflatex.")
  70.  
  71. if __name__ == "__main__":
  72.     generate_latex()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement