Hoe een .dtx bestand te herformatteren (in vi)
Hoi allemaal, Hoe kan ik (een deel van) een .dtx bestand herformatteren? Een enkele regel zoals \newcommand\lipsum@xxii{Etiam suscipit aliquam arcu. Aliquam sit amet est ac purus bibendum congue. Sed in eros. Morbi non orci. Pellentesque mattis lacinia elit. Fusce molestie velit in ligula. Nullam et orci vitae nibh vulputate auctor. Aliquam eget purus. Nulla auctor wisi sed ipsum. Morbi porttitor tellus ac enim. Fusce ornare. Proin ipsum enim, tincidunt in, ornare venenatis, molestie a, augue. Donec vel pede in lacus sagittis porta. Sed hendrerit ipsum quis nisl. Suspendisse quis massa ac nibh pretium cursus. Sed sodales. Nam eu neque quis pede dignissim ornare. Maecenas eu purus ac urna tincidunt congue.\lips@par} zal er daarna zo uit moeten zien in meerdere regels: \newcommand\lipsum@xxii{Etiam suscipit aliquam arcu. Aliquam sit amet est ac purus bibendum congue. Sed in eros. Morbi non orci. Pellentesque mattis lacinia elit. Fusce molestie velit in ligula. Nullam et orci vitae nibh vulputate auctor. Aliquam eget purus. Nulla auctor wisi sed ipsum. Morbi porttitor tellus ac enim. Fusce ornare. Proin ipsum enim, tincidunt in, ornare venenatis, molestie a, augue. Donec vel pede in lacus sagittis porta. Sed hendrerit ipsum quis nisl. Suspendisse quis massa ac nibh pretium cursus. Sed sodales. Nam eu neque quis pede dignissim ornare. Maecenas eu purus ac urna tincidunt congue.\lips@par} Wat voor vi commande kan ik daarvoor gebruiken? Een gerelateerde vraag is de volgende. Hoe kan ik hier letters zoals ë gebruiken? Moet ik dan \"e of \"{e} invoeren? Anders krijg ik namelijk foutmeldingen over T1 encoding. Alvast bedankt, Pander
Pander wrote:
Een gerelateerde vraag is de volgende. Hoe kan ik hier letters zoals ë gebruiken? Moet ik dan \"e of \"{e} invoeren? Anders krijg ik namelijk foutmeldingen over T1 encoding.
\"e en \"{e} zijn equivalent. En ë kun je gebruiken als je
\usepackage[xxxx]{inputenc} gebruikt waarbij xxxx de codering is die je editor ook gebruikt voor je bestand (bijvoorbeeld utf-8 of latin-1). T1 heeft er niks mee te maken want dat is een fontcodering, niet een input codering. Ik ben wel benieuwd wat de foutmelding dan was.
--
Piet van Oostrum
On 09/10/2011 04:03 PM, Pander wrote:
Hoi allemaal,
Hoe kan ik (een deel van) een .dtx bestand herformatteren? Een enkele regel zoals
\newcommand\lipsum@xxii{Etiam suscipit aliquam arcu. Aliquam sit amet est ac purus bibendum congue. Sed in eros. Morbi non orci. Pellentesque mattis lacinia elit. Fusce molestie velit in ligula. Nullam et orci vitae nibh vulputate auctor. Aliquam eget purus. Nulla auctor wisi sed ipsum. Morbi porttitor tellus ac enim. Fusce ornare. Proin ipsum enim, tincidunt in, ornare venenatis, molestie a, augue. Donec vel pede in lacus sagittis porta. Sed hendrerit ipsum quis nisl. Suspendisse quis massa ac nibh pretium cursus. Sed sodales. Nam eu neque quis pede dignissim ornare. Maecenas eu purus ac urna tincidunt congue.\lips@par}
zal er daarna zo uit moeten zien in meerdere regels:
\newcommand\lipsum@xxii{Etiam suscipit aliquam arcu. Aliquam sit amet est ac purus bibendum congue. Sed in eros. Morbi non orci. Pellentesque mattis lacinia elit. Fusce molestie velit in ligula. Nullam et orci vitae nibh vulputate auctor. Aliquam eget purus. Nulla auctor wisi sed ipsum. Morbi porttitor tellus ac enim. Fusce ornare. Proin ipsum enim, tincidunt in, ornare venenatis, molestie a, augue. Donec vel pede in lacus sagittis porta. Sed hendrerit ipsum quis nisl. Suspendisse quis massa ac nibh pretium cursus. Sed sodales. Nam eu neque quis pede dignissim ornare. Maecenas eu purus ac urna tincidunt congue.\lips@par} Wat voor vi commande kan ik daarvoor gebruiken?
Daarvoor gebruik de Perl-module Autoformat (die je dus waarschijnlijk eerst moet installeren via vier commandoregels in mijn .vimrc: " F12 autoformat one paragraph map <F12> V}k:!perl -MEnv -MText::Autoformat -MTerm::ReadKey -e 'autoformat {right=>$VICOLS, all=>1}'^M}^M map! <F12> ^[V}k:!perl -MEnv -MText::Autoformat -MTerm::ReadKey -e 'autoformat {right=>$VICOLS,all=>1}'^M}i^M " F12 autoformat one paragraph map <F12> V}k:!perl -MEnv -MText::Autoformat -MTerm::ReadKey -e 'autoformat {right=>$VICOLS,all=>1}'} map! <F12> V}k:!perl -MEnv -MText::Autoformat -MTerm::ReadKey -e 'autoformat {right=>$VICOLS,all=>1}'}i " shift-F12 autoformat all following paragraphs map <S-F12> !G perl -MEnv -MText::Autoformat -MTerm::ReadKey -e 'autoformat {right=>$VICOLS,all=>1}' map! <S-F12> !G perl -MEnv -MText::Autoformat -MTerm::ReadKey -e 'autoformat {right=>$VICOLS,all=>1}'i Met F12 formatteer je zo een paragraaf (dus tot en met de eerste lege regel). Heeft veel mogelijkheden, zoals instelling van de breedte via de environment variable VICOLS, houdt ook rekening met genummerde of gesterde lijsten. shift-F12 doet hetzelfde, maar dan voor alle paragrafen in je document
Een gerelateerde vraag is de volgende. Hoe kan ik hier letters zoals ë gebruiken? Moet ik dan \"e of \"{e} invoeren? Anders krijg ik namelijk foutmeldingen over T1 encoding.
zie antwoord van PvO. Voor de invoering in vi: hangt van je OS af. Ik draai Ubuntu en zet de compose-key met System->Preferences->Keyboard->Layouts Daar voeg ik dan twee keyboards toe, een met en een zonder dead keys en in die laatste stel ik een compose key in (bv de menu key). In het eerste geval type ik "e om een ë te krijgen, in het andere geval (je kunt switchen tussen die twee keyboards) typ ik Menu " e Ik gebruik meestal het keyboard zonder dead keys omdat ik veel programmeer en dus vaak ' en " en : en ^ en dergelijke als losse karakters nodig heb. Maar als ik dan eens een Franse tekst moet typen, dan schakel ik tijdelijk over op het keyboard met dead keys. -- Wybo
Opdracht : voor mijn leerlingen maak ik een opvallende box in mijn cursus die tot doel heeft om te 'bijbelen'. Met ovalbox lukt het me redelijk om een commando te maken die de nodige 'ingrediënten' heeft : \newcommand \bijbel[2]{ \bigskip \ovalbox{ \begin{minipage}[b]{\linewidth}\begin{minipage}[l]{0.3\linewidth} \includegraphics[width=20mm]{beelden/bijbel3} \end{minipage} \hspace{0.4cm} \begin{minipage}[r]{0.6\linewidth}\vspace{2mm} {\LARGE #1} \\ #2 \vspace{2mm} \end{minipage} \end{minipage} } \bigskip } Maar een mens wil net dat ietsje meer en de puntjes op de spreekwoordelijke i zetten. In bijlage toont de bovenste afbeelding wat ik zo ongeveer bereik. Graag zou ik echter het effect van de onderste afbeelding verkrijgen. Het betreft voornamelijk de foto van de bijbel. Daar zou ik graag de bovenste bolle hoek mee laten uitsnijden zodat het een mooi geheel vormt. Weet iemand hoe ik dit in LaTeX (pstricks, tikz, ...) voor elkaar krijg? Koen
Koen Wybo wrote:
Opdracht : voor mijn leerlingen maak ik een opvallende box in mijn cursus die tot doel heeft om te 'bijbelen'. Met ovalbox lukt het me redelijk om een commando te maken die de nodige 'ingrediënten' heeft :
\newcommand \bijbel[2]{ \bigskip \ovalbox{ \begin{minipage}[b]{\linewidth}\begin{minipage}[l]{0.3\linewidth} \includegraphics[width=20mm]{beelden/bijbel3} \end{minipage} \hspace{0.4cm} \begin{minipage}[r]{0.6\linewidth}\vspace{2mm} {\LARGE #1} \\ #2 \vspace{2mm} \end{minipage} \end{minipage} } \bigskip }
Maar een mens wil net dat ietsje meer en de puntjes op de spreekwoordelijke i zetten. In bijlage toont de bovenste afbeelding wat ik zo ongeveer bereik. Graag zou ik echter het effect van de onderste afbeelding verkrijgen. Het betreft voornamelijk de foto van de bijbel. Daar zou ik graag de bovenste bolle hoek mee laten uitsnijden zodat het een mooi geheel vormt. Weet iemand hoe ik dit in LaTeX (pstricks, tikz, ...) voor elkaar krijg?
Het simpelste zou volgens mij zijn om het plaatje van de bijbel in een tekenprogramma (Gimp, Photoshop, e.d.) aan te passen, dus de ronde hoek er af te snijden. Je moet dan wel even uitkijken dat je de juste volgorde aanhoudt: eerst het plaatje tekenen, dan de \ovalbox eroverheen, anders wordt de linkerbovenhoek van de \ovalbox onzichtbaar door het niet-transparante plaatje.
Clippen kun je niet in standaard TeX, daar heb je een Postscript of PDF laag voor nodig. Met Tikz kan dat dus ook. Het is een beetje tricky omdat je de rounded rectangle twee keer moet tekenen: één keer voor het clippen en één keer om hem te tonen. Vanwege het specificeren van de dikte kan dat niet in één commando. En de volgorde is ook belangrijk om de rectangle over het plaatje te krijgen. Het vervelende is natuurlijk ook dat je op deze manier de afmetingen van de box moet specificeren. Je kun natuurlijk ook de tekst eerst in een box zetten, die opmeten en de afmetingen dan in tikz gebruiken.
\usepackage{tikz, graphicx}
\begin{tikzpicture}
\clip [rounded corners=1.5cm] (0,0) rectangle (14cm,6cm);
\draw (0,6) node [inner sep=0pt,anchor=north west] {\includegraphics[width=4cm, height=4cm]{bijbel}};
\draw [ultra thick,rounded corners=1.5cm] (0,0) rectangle (14cm,6cm);
\draw (5,5) node[right] {\Huge Genesis 1,1 -- 2,4};
\draw (5,3) node[right] {\parbox{8cm}{\huge In den beginne schiep God hemel en aarde}};
\end{tikzpicture}
--
Piet van Oostrum
Dan wordt het dus zoiets:
\newsavebox{\BBL}
\newlength{\WW}\newlength{\HH}
\newcommand \bijbel[2]{
\sbox{\BBL}{\bigskip
\begin{minipage}[b]{\linewidth}%
\hspace{0.3\linewidth}%
\begin{minipage}[r]{0.6\linewidth}%
\vspace{2mm} {\LARGE #1} \\ {\large #2\par}
\vspace{2mm}
\end{minipage}
\end{minipage}\bigskip}
\setlength{\WW}{\wd\BBL}
\setlength{\HH}{\ht\BBL}
\addtolength{\HH}{\dp\BBL}
\begin{tikzpicture}
\clip [rounded corners=1cm] (0,0) rectangle (\WW,\HH);
\draw (0,\HH) node [inner sep=0pt,anchor=north west] {\includegraphics[width=2cm]{bijbel}};
\draw [ultra thick, rounded corners=1cm] (0,0) rectangle (\WW,\HH);
\draw (0,0) node [anchor=south west, inner sep=0pt] {\usebox\BBL};
\end{tikzpicture}
}
--
Piet van Oostrum
participants (4)
-
Koen Wybo
-
Pander
-
Piet van Oostrum
-
Wybo Dekker