Advertisement
Guest User

Untitled

a guest
Jun 15th, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.76 KB | None | 0 0
  1. documentclass{article}
  2.  
  3. usepackage{keyval}
  4. usepackage{expl3}
  5. usepackage{xparse}
  6.  
  7. makeatletter
  8. defBUPTthesiscntitlepage#1{setkeys{cntitle}{#1}}
  9. define@key{cntitle}{title}{longdefBUPT@value@title{#1}}
  10. makeatother
  11.  
  12. makeatletterExplSyntaxOn
  13. seq_new:N l_@@_title_seq
  14. NewDocumentCommand settitle {m}
  15. { seq_set_split:Nnn l_@@_title_seq { \ } {#1} }
  16.  
  17. dim_new:N l_@@_title_width_dim
  18. NewDocumentCommand printtitle {}
  19. {
  20. group_begin:
  21. @@_title_name_format:
  22. tl_use:N c_@@_title_name_tl
  23. group_end:
  24. group_begin:
  25. @@_title_format:
  26. @@_get_max_width:NN l_@@_title_width_dim l_@@_title_seq
  27. dim_add:Nn l_@@_title_width_dim { 10p@ }
  28. dim_log:N l_@@_title_width_dim
  29. parbox [t] { l_@@_title_width_dim }
  30. {
  31. seq_map_inline:Nn l_@@_title_seq
  32. { @@_underline:Nn l_@@_title_width_dim {##1} \ }
  33. }
  34. group_end:
  35. }
  36.  
  37. cs_new_protected:Npn @@_get_max_width:NN #1#2
  38. {
  39. group_begin:
  40. dim_zero:N #1
  41. bool_until_do:nn { seq_if_empty_p:N #2 }
  42. {
  43. seq_pop:NN #2 l_tmpa_tl
  44. exp_args:NNV @@_get_width:Nn l_tmpa_dim l_tmpa_tl
  45. dim_gset:Nn #1 { dim_max:nn { dim_use:N #1 } { l_tmpa_dim } }
  46. }
  47. group_end:
  48. }
  49. cs_new_protected:Npn @@_get_width:Nn #1#2
  50. {
  51. hbox_set:Nn l_tmpa_box {#2}
  52. dim_set:Nn #1 { box_wd:N l_tmpa_box }
  53. }
  54.  
  55. cs_new_protected:Npn @@_underline:Nn #1#2
  56. { underline { hbox_to_wd:nn { dim_use:N #1 } { hss #2 hss } } }
  57.  
  58. tl_const:Nn c_@@_title_name_tl { Title: }
  59. cs_new:Npn @@_title_name_format: { Large bfseries }
  60. cs_new:Npn @@_title_format: { Large bfseries }
  61.  
  62. ExplSyntaxOffmakeatother
  63.  
  64. BUPTthesiscntitlepage{%
  65. title = {AAAA \ BBBLaTeX B}}
  66.  
  67. begin{document}
  68. settitle{AAAA \ BBBLaTeX BB}
  69. printtitle
  70.  
  71. makeatletter
  72. longdefBUPTtitletemp{BUPT@value@title}
  73. makeatother
  74.  
  75. settitle{BUPTtitletemp}
  76. printtitle
  77. end{document}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement