Moderncv qopqoq maktubida matnni oqlash

moderncv dan foydalanib, qopqoq maktubi va CV yozyapman. Hozirgacha hamma narsa yaxshi ishlaydi, lekin qopqoq maktubidagi matn to'g'ri emas. Yaxshi, deb o'ylayman, u tirelenmemiştir, lekin matn to'g'ri bo'lsa, yanada yaxshi ko'rinadi.

Bu erda eng kichik namuna:

\documentclass{moderncv}
\moderncvstyle{classic}

\usepackage{lipsum} % just for dummy text

\firstname{John}
\familyname{Doe}

\begin{document}
\recipient{Prof.\ Dr.\ Foo Bar}{}
\opening{Dear Professor Dr.\ Bar,}
\closing{Yours sincerely,}
\enclosure[Attached]{curriculum vit\ae}

\makelettertitle
\lipsum[1]
\makeletterclosing

\clearpage

\makecvtitle

\section{Education}
\cventry{2009--present}{PhD Student}{here}{and}{there}{}
\end{document}

output

45

5 javoblar

moderncv uslubini yuklaganingizdan so'ng, hujjatingizning kirish qismiga quyidagilarni qo'shing ( klassik ):

\usepackage{etoolbox}% http://ctan.org/pkg/etoolbox
\makeatletter
\patchcmd{\makeletterhead}% 
  {\raggedright \@opening}% 
  {\@opening}% 
  {}{}% 
\makeatother

output

Yuqoridagi tuzatma shablondan kerakli \ raggedright kodini faqat to'g'ri joydan ( \ @ ochish ni chaqirishdan oldin) olib tashlaydi.

47
qo'shib qo'ydi
@TheKojuEffect: Hujjatning boshlanishiga \ makeatletter \\ hyphenpenalty = \ @ M \ makeatletter qo'shib ko'ring. Hujjatda tirelenebilme qobiliyatini samarali tarzda olib tashlash, bir satr oxiri har qanday so'zni avtomatik ravishda tirelenmek uchun etarli (abadiy) jazo belgilash kerak. Penaltilar haqida ko'proq ma'lumot olish uchun jazo turlari va qaysi biri aniqlangan? ga qarang. Agar bu ishlamasa < LaTeX ning butun hujjatni tarjima qilishiga yo'l qo'ymaslik uchun nima qilish kerak?
qo'shib qo'ydi muallif Werner, manba
@Werner yaxshi ishlaydi. Lekin bu mening matnimdagi ko'p tirelenmeye olib keldi. To'liq oqlash uchun biron bir usul bormi (masalan, so'z protsessorlarida) ???
qo'shib qo'ydi muallif Kyle Hailey, manba

Siz shunchaki quyidagilarni qo'shishingiz mumkin:

\usepackage{ragged2e}

va \ makelettertitle dan so'ng darhol:

\justify

Men uchun klassik va tasodifiy ishlaydi.

17
qo'shib qo'ydi
Bu \ makelettertitle dan keyin yangi qatorni kiritish kabi ko'rinadi.
qo'shib qo'ydi muallif James Aylett, manba
Menimcha, bu eng oddiy javob. Rahmat!
qo'shib qo'ydi muallif Gabriel Hurley, manba

Zamonaviy shablonlardagi "bug" ni to'g'rilang. Agar bank uslubini ishlatsangiz, moderncvstylebanking.sty ga o'ting va o'zgartiring

% opening
\raggedright%
\@opening\\[1.5em]%

ichiga

% opening
{\raggedright%
\@opening\\[1.5em]}%

Buni oddiygina raggedright buyrug'ini yoping, shuning uchun ushbu hujjatning oxiridan boshlab hujjatning barcha qismiga ta'sir qilmaydi. Boshqa uslublar uchun ham xuddi shunday qilishingiz mumkin.

16
qo'shib qo'ydi
\ raggedright \ @ ochish bilan bir guruhga qo'shilmaganligi aslida xato emas, bu mo'ljallangan dizayn. AFAIK, harflar uchun konventsiya matnni oqlash uchun emas, balki chapga qirib tashlashdir. Shubhasiz (va minnatdorchilik bilan!), Ba'zi odamlar "an'anaviy donolik" ga qaraganda boshqa afzalliklarga ega bo'lishi mumkin va siz o'zingiz ma'qul ko'rgan narsani tanlashning oson yo'li, ehtimol, moderncv ga yoqadigan qo'shimcha bo'lishi mumkin.
qo'shib qo'ydi muallif Zaibis, manba
@Xavier Agar siz to'g'ringizda bo'lsangiz, unda "to'g'ri" usul bu harfning tanasini ochish uchun alohida "raggedright" qo'llash va ikkalasini bog'lab bo'lmaydi.
qo'shib qo'ydi muallif User, manba
Agar Wenerning javobi ishlamasa ham, men buni amalga oshirish uchun yaxshi, ehtimol to'g'ri yo'l ekanligiga ishonaman.
qo'shib qo'ydi muallif Bartosz Ptaszynski, manba

ModernCV 2.0 versiyasi bo'yicha javob berish . foydalanuvchilar/5764/werner "> Werner yangilangan bo'lishi kerak:

\usepackage{etoolbox}% http://ctan.org/pkg/etoolbox
\makeatletter
\patchcmd{\makeletterhead}% 
  {\raggedright \@opening}% 
  {\@opening}% 
  {}{}% 
\makeatother
6
qo'shib qo'ydi
Buni aks ettirish uchun javobni yangilayman. Qo'shimcha javob berishning hojati yo'q.
qo'shib qo'ydi muallif Werner, manba
Ha, men buni sharhlashga harakat qildim, lekin sharh uchun etarli "qora nuqta" yo'q edi! Uzr, SE qoidalari ko'rinishda.
qo'shib qo'ydi muallif shibin, manba

\ minipage dan foydalangan holda juda oqilona yechim topdim. Bu tasodifiy uslub uchun yaxshi ishlaydi, lekin u ham boshqalar uchun ishlashi kerak.

\ begin {document} dan oldin, quyidagilarni qo'shing:

\newlength{\currentparskip}

Keyin, xatni yozganda, \ makelettertitle buyrug'idan so'ng, qo'ying:

\setlength{\currentparskip}{\parskip}% save the value of paragraph spacing
\begin{minipage}{\textwidth} %create minipage
    \setlength{\parskip}{\currentparskip}% restore the value    

      TEXT OF THE LETTER

    \end{minipage}

\makeletterclosing

\clearpage

Paragraf oralig'i \ minipage da nol bo'ladi, shuning uchun qiymatni qayta tiklashingiz kerak, shunda matn oralig'i yaxshi bo'ladi.

2
qo'shib qo'ydi