2012-02-08, 20:25
Hier ein Beispiel für die Kombination von ifdraft und tagging. Grundsätzlich würde ifdraft für viele Zwecke ausreichen, tagging bietet aber ein sauberes Interface und einige zusätzliche Befehle.
\documentclass[draft]{scrartcl} % delete the global option draft to see the difference
\usepackage[]{ifdraft}
\usepackage[]{tagging}
\ifdraft{\usetag{draft}}{\usetag{final}}
\begin{document}
\iftagged{draft}{Some text, if draft is set.}{Some text, if draft has not been set.}
\begin{taggedblock}{draft}
This is a draft block!
\end{taggedblock}
\begin{taggedblock}{final}
This is a final block!
\end{taggedblock}
\end{document} |
\documentclass[draft]{scrartcl} % delete the global option draft to see the difference
\usepackage[]{ifdraft}
\usepackage[]{tagging}
\ifdraft{\usetag{draft}}{\usetag{final}}
\begin{document}
\iftagged{draft}{Some text, if draft is set.}{Some text, if draft has not been set.}
\begin{taggedblock}{draft}
This is a draft block!
\end{taggedblock}
\begin{taggedblock}{final}
This is a final block!
\end{taggedblock}
\end{document}
Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined.
Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.
More Posts - Website
Schlagwörter:
LaTeX Category:
Pakete,
LaTeX |
Kommentare deaktiviert für Mit ifdraft und tagging Dokumentteile ausblenden.
2012-02-05, 21:06
Den ersten und letzten Tag eines Monats bzw. Quartals kann man recht einfach in Excel bestimmen.
Sei in A1
ein Datum, für das die Werte bestimmt werden sollen.
- Monatserster: =DATUM(JAHR(A1);MONAT(A1);1)
- Monatsletzter: =DATUM(JAHR(A1);MONAT(A1)+1;1)-1
- Quartalserster: =DATUM(JAHR(A1);MONAT(A1)-REST(MONAT(A1)-1;3);1)
- Quartalsletzter: =DATUM(JAHR(A1);MONAT(A1)+REST(3-MONAT(A1);3)+1;)
Hier noch ein paar Datumsformeln:
- Quartal =AUFRUNDEN(MONAT(A1)/3;0)
Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined.
Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.
More Posts - Website
Schlagwörter:
Excel Category:
MS Office & VBA |
Kommentare deaktiviert für In Excel den Monats- und Quartalsersten/-letzten bestimmen
2012-02-05, 18:13
Teil 3 in der Reihe [1] zeigt einige Beispiele, wie man in Autokey Tastaturkürzel definiert.
Hier ein Beispiel, wie aus doc#
ein minimales LaTeX-Dokument expandiert wird. Hinter dem \end{document}
stehen die Befehle, um den Cursor drei Zeilen nach oben zu bewegen. Die folgenden Befehle werden unterstützt:
- <left>
- <right>
- <up>
- <down>
- <enter>
- <delete>
![AutoKey_001](http://uweziegenhagen.de/wp-content/uploads/2012/02/AutoKey_001.png)
Nach der Definition des expandierten Texts muss noch das Kürzel definiert werden (Abbreviations => Set). Da nach der Eingabe von doc#
das doc#
entfernt werden soll und sofort ersetzt werden soll, setzt man
- Remove typed abbreviation
- Trigger immediately (don’t require a trigger character)
![AutoKey_002](http://uweziegenhagen.de/wp-content/uploads/2012/02/AutoKey_002.png)
Um Datum und Zeit ausgeben zu lassen, kann man die folgenden Skripte nutzen:
ä#
output = system.exec_command("date +'%d.%m.%Y'")
keyboard.send_keys(output)
z#
output = system.exec_command("date +'%R'")
keyboard.send_keys(output)
![AutoKey_003](http://uweziegenhagen.de/wp-content/uploads/2012/02/AutoKey_003.png)
Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined.
Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.
More Posts - Website
Category:
LaTeX,
Tipps & Tricks |
Kommentare deaktiviert für Schneller TeXen mit Autohotkey, Autokey, Textexpander & Co – Teil 3
2012-01-22, 08:40
Die programmatische Erstellung von LaTeX-Code durch ein Framework hat mich schon immer interessiert, über ein stackexchange Posting (http://tex.stackexchange.com/questions/41875/generate-latex-truth-table-with-python-cheetah) wurde jetzt auch mein Interesse an der Erzeugung durch Python geweckt.
Hier ein Beispiel für die Erzeugung von LaTeX durch das Python Cheetah framework:
from Cheetah.Template import Template
definition = """\\documentclass{article}
\\title{$paper.title}
\\author{$author.name}
\\begin{document}
\\maketitle
\\end{document}"""
class author:
"""A simple example author class"""
name = "Uwe Ziegenhagen"
def f(self):
return 'Hello World'
class paper:
"""A simple example paper class"""
title = "My First paper"
def f(self):
return 'hello world'
uwe = author()
mypaper = paper()
print Template(definition, searchList=[{'author' : uwe,'paper' : mypaper}]) |
from Cheetah.Template import Template
definition = """\\documentclass{article}
\\title{$paper.title}
\\author{$author.name}
\\begin{document}
\\maketitle
\\end{document}"""
class author:
"""A simple example author class"""
name = "Uwe Ziegenhagen"
def f(self):
return 'Hello World'
class paper:
"""A simple example paper class"""
title = "My First paper"
def f(self):
return 'hello world'
uwe = author()
mypaper = paper()
print Template(definition, searchList=[{'author' : uwe,'paper' : mypaper}])
Erzeugt wird dadurch folgendes Dokument:
\documentclass{article}
\title{My First paper}
\author{Uwe Ziegenhagen}
\begin{document}
\maketitle
\end{document}
Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined.
Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.
More Posts - Website
2012-01-21, 08:43
PDFlatex unterstützt die Ausgabe unterschiedlicher Grafikversionen für Print und Screen. Die einzige Bedingung ist, dass beide Grafiken die gleiche Breite und Höhe haben.
Hier ein Beispiel:
\documentclass{scrartcl}
\usepackage[]{graphicx}
\begin{document}
\includegraphics[print=print.jpg]{draft.jpg}
\end{document} |
\documentclass{scrartcl}
\usepackage[]{graphicx}
\begin{document}
\includegraphics[print=print.jpg]{draft.jpg}
\end{document}
Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined.
Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.
More Posts - Website
Schlagwörter:
LaTeX Category:
LaTeX,
Tipps & Tricks |
Kommentare deaktiviert für Unterschiedliche Bilder für Druck und Screen
2012-01-20, 23:45
Wie man mit lpic.sty Formulare füllt, habe ich in einem früheren Blogeintrag bereits gezeigt: (http://uweziegenhagen.de/?p=1208). Hier ein neues Beispiel, dieses Mal für einen Kaufvertrag über ein gebrauchtes Rad, den man unter www.vsf.de/fileadmin/vsf/downloads/kaufvertragprivat.pdf herunterladen kann.
\documentclass{scrartcl}
\usepackage[utf8]{inputenc}\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage[left=0cm,right=0cm,top=0cm,bottom=0cm]{geometry}
\usepackage[]{graphicx}
\usepackage[]{lpic}
\setlength{\parindent}{0pt}
\begin{document}
\begin{lpic}[]{kaufvertragprivat(0.999)} % coords(20)
\lbl[t]{41,248;\textcolor{black}{\small \textbf{Max Mustermann}}}
\lbl[t]{130,248;\textcolor{black}{\small \textbf{Martina Musterfrau}}}
\lbl[t]{55,240;\textcolor{black}{\small \textbf{Musterstr. 2, 12345 Musterstadt}}}
\lbl[t]{140,240;\textcolor{black}{\small \textbf{Musterweg 23q, 12345 Musterstadt}}}
\lbl[t]{50,230;\textcolor{black}{\small \textbf{Personalausweis, 1234567890}}}
\lbl[t]{40,160;\textcolor{black}{\small \textbf{Oranje}}}
\lbl[t]{44,150;\textcolor{black}{\small \textbf{Hollandrad}}}
\lbl[t]{41,140;\textcolor{black}{\small \textbf{28 Zoll}}}
\lbl[t]{45,131;\textcolor{black}{\small \textbf{schwarzblau}}}
\lbl[t]{40,122;\textcolor{black}{\small \textbf{12345}}}
\lbl[t]{40,100;\textcolor{black}{\small \textbf{Beleuchtung}}}
\lbl[t]{41,95;\textcolor{black}{\small \textbf{Gepäckträger}}}
\lbl[t]{41,90;\textcolor{black}{\small \textbf{Schutzbleche}}}
\lbl[t]{39,85;\textcolor{black}{\small \textbf{Kopfstütze}}}
\lbl[t]{42,80;\textcolor{black}{\small \textbf{mehr Zubehör}}}
\lbl[t]{42,75;\textcolor{black}{\small \textbf{mehr Zubehör}}}
\lbl[t]{42,70;\textcolor{black}{\small \textbf{mehr Zubehör}}}
\lbl[t]{60,59;\textcolor{black}{\small \textbf{Musterstadt, den \today}}}
\lbl[t]{167,71;\textcolor{black}{\Large \textbf{--1234--}}}
\lbl[t]{113,83;\textcolor{black}{\Large X}}
\lbl[t]{113,121;\textcolor{black}{\Large X}}
\lbl[t]{113,116;\textcolor{black}{\Large X}}
\lbl[t]{113,116;\textcolor{black}{\Large X}}
\lbl[t]{113,126;\textcolor{black}{\Large X}}
\lbl[t]{113,150;\textcolor{black}{\Large X}}
\lbl[t]{113,155;\textcolor{black}{\Large X}}
\end{lpic}
\end{document} |
\documentclass{scrartcl}
\usepackage[utf8]{inputenc}\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage[left=0cm,right=0cm,top=0cm,bottom=0cm]{geometry}
\usepackage[]{graphicx}
\usepackage[]{lpic}
\setlength{\parindent}{0pt}
\begin{document}
\begin{lpic}[]{kaufvertragprivat(0.999)} % coords(20)
\lbl[t]{41,248;\textcolor{black}{\small \textbf{Max Mustermann}}}
\lbl[t]{130,248;\textcolor{black}{\small \textbf{Martina Musterfrau}}}
\lbl[t]{55,240;\textcolor{black}{\small \textbf{Musterstr. 2, 12345 Musterstadt}}}
\lbl[t]{140,240;\textcolor{black}{\small \textbf{Musterweg 23q, 12345 Musterstadt}}}
\lbl[t]{50,230;\textcolor{black}{\small \textbf{Personalausweis, 1234567890}}}
\lbl[t]{40,160;\textcolor{black}{\small \textbf{Oranje}}}
\lbl[t]{44,150;\textcolor{black}{\small \textbf{Hollandrad}}}
\lbl[t]{41,140;\textcolor{black}{\small \textbf{28 Zoll}}}
\lbl[t]{45,131;\textcolor{black}{\small \textbf{schwarzblau}}}
\lbl[t]{40,122;\textcolor{black}{\small \textbf{12345}}}
\lbl[t]{40,100;\textcolor{black}{\small \textbf{Beleuchtung}}}
\lbl[t]{41,95;\textcolor{black}{\small \textbf{Gepäckträger}}}
\lbl[t]{41,90;\textcolor{black}{\small \textbf{Schutzbleche}}}
\lbl[t]{39,85;\textcolor{black}{\small \textbf{Kopfstütze}}}
\lbl[t]{42,80;\textcolor{black}{\small \textbf{mehr Zubehör}}}
\lbl[t]{42,75;\textcolor{black}{\small \textbf{mehr Zubehör}}}
\lbl[t]{42,70;\textcolor{black}{\small \textbf{mehr Zubehör}}}
\lbl[t]{60,59;\textcolor{black}{\small \textbf{Musterstadt, den \today}}}
\lbl[t]{167,71;\textcolor{black}{\Large \textbf{--1234--}}}
\lbl[t]{113,83;\textcolor{black}{\Large X}}
\lbl[t]{113,121;\textcolor{black}{\Large X}}
\lbl[t]{113,116;\textcolor{black}{\Large X}}
\lbl[t]{113,116;\textcolor{black}{\Large X}}
\lbl[t]{113,126;\textcolor{black}{\Large X}}
\lbl[t]{113,150;\textcolor{black}{\Large X}}
\lbl[t]{113,155;\textcolor{black}{\Large X}}
\end{lpic}
\end{document}
Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined.
Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.
More Posts - Website
Schlagwörter:
LaTeX Category:
LaTeX,
Pakete |
Kommentare deaktiviert für Formulare füllen mit LaTeX
2012-01-20, 23:43
Zu meinen aktuellen Aufgaben gehört es gelegentlich, Aufträge an den IT-Dienstleister in einem bestimmten Format zu verfassen. Nachdem ich einige Male die notwendigen Texte mühevoll zusammenkopiert hatte, kam der Wunsch nach der Automatisierung des ganzen auf. Mit ein wenig VBA Code und Google (http://www.exceltip.com/show_tip/Applications_-_Word,_Outlook_in_VBA/Control_Outlook_from_Excel_using_VBA_in_Microsoft_Excel/464.html) ist es recht einfach, die E-Mails zusammenzubauen.
Hier ein einfaches Beispiel: Aus der jeweils aktiven Zeile sollen E-Mail Adresse, Betreff und Body ausgelesen und in eine E-Mail gesetzt werden, die aktive Zeile ermittele ich dabei über currentrow = ActiveCell.Row
.
![office1](http://uweziegenhagen.de/wp-content/uploads/2012/01/office1.png)
Der Code, der unter dem Link verfügbar ist, benötigt eine Referenz zur Microsoft Outlook Object Library, diese lässt sich über Extras => Verweise einfügen. Wenn wir das Beispiel auf unser Szenario anpassen, erhalten wir:
Sub SendAnEmailWithOutlook()
currentrow = ActiveCell.Row
Dim OLF As Outlook.MAPIFolder, olMailItem As Outlook.MailItem
Dim ToContact As Outlook.Recipient
Set OLF = GetObject("", _
"Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
Set olMailItem = OLF.Items.Add ' erstellt neue Mail
With olMailItem
.Subject = Cells(currentrow, 3).Value ' Betreff
Set ToContact = .Recipients.Add(Cells(currentrow, 2).Value) ' Empfänger
.Body = Cells(currentrow, 4).Value ' Body
.Save ' nur Speichern, nicht sofort senden
End With
Set ToContact = Nothing
Set olMailItem = Nothing
Set OLF = Nothing
End Sub
Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined.
Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.
More Posts - Website
2012-01-18, 22:03
Im heutigen Artikel möchte ich Autokey vorstellen, das ich unter Ubuntu 11.10 benutze und das auch zumindest die von mir genutzten Autohotkey-Funktionen abdeckt.
Installation
Über sudo apt-get install autokey
kann man zwar Autokey installieren, ich bevorzuge jedoch die ppa-Version, da diese unter Umständen aktueller ist.
Was muss man dafür tun? Nicht viel:
sudo add-apt-repository ppa:cdekter/ppa
sudo apt-get update
sudo apt-get install autokey
Ein Hinweis: Nach der Installation taucht das autokey eventuell nicht in der Unity Oberfläche auf, obwohl der Prozess im Hintergrund läuft. In diesem Fall – drücken, dann sollte das Menü angezeigt werden. Unter Ubuntu 11.10 hatte ich zusätzlich das Problem, dass autokey die Einstellung zum automatischen Start nicht speichern wollte, weil der Pfad /home/uwe/.config/autostart/
fehlte, die manuelle Ordneranlage half in diesem Fall.
Im nächsten Teil dann mehr zur Bedienung von Autokey.
Nachtrag vom 28.06.2012: http://maketecheasier.com/make-autokey-works-in-ubuntu-natty/2011/06/26 erklärt, wie man Autokey auch unter Unity zum Laufen bekommt.
Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined.
Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.
More Posts - Website
2012-01-11, 22:01
Hier ein kurzer Schnipsel, wie man Zeichen in Dateinamen ersetzen kann. Für die tatsächliche Umbenennung ist das „-whatif“ zu entfernen.
$files = gci -Recurse | ? {$_.PSisContainer -eq $false} | ? {$_.name -match "~"}
foreach ($i in $files){
rni -WhatIf $i.fullname $i.Name.Replace("~","_")
} |
$files = gci -Recurse | ? {$_.PSisContainer -eq $false} | ? {$_.name -match "~"}
foreach ($i in $files){
rni -WhatIf $i.fullname $i.Name.Replace("~","_")
}
Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined.
Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.
More Posts - Website
2012-01-10, 22:19
Auf tex.stackexchange kam heute die Frage auf, wie man beliebig lange Menübefehl-Sequenzen mit LaTeX darstellen kann (http://tex.stackexchange.com/questions/40613/create-a-command-for-menu-sequences). Da ich dies auch gelegentlich benötige, hier eine Kopie der Lösung:
\documentclass{article}
\usepackage{etoolbox}% http://ctan.org/pkg/etoolbox
\begin{document}
\newcounter{menucount}\newcounter{curitem}% Counters
\newcommand{\menuitem}{\texttt}% Menu item formatting
\newcommand{\menusep}{\ensuremath{\rightarrow}}% Menu separator
\newcommand{\menuend}{\relax}% Menu end
\newcommand{\menulist}[1]{% \menulist{<menu list>}
\setcounter{menucount}{0}\setcounter{curitem}{0}% Reset menucount & curitem
\renewcommand*{\do}[1]{\stepcounter{menucount}}%
\menulistparser{#1}% Count menu items
\renewcommand*{\do}[1]{\menuitem{##1}\stepcounter{curitem}\ifnumless{\value{curitem}}{\value{menucount}}{\menusep}{\menuend}}%
\menulistparser{#1}% Process list
}
\DeclareListParser{\menulistparser}{:}% List separator is ':'
\menulist{File:New:Class}% 3 menu items
\menulist{Tools:Options:Advanced:Properties:Document}% 5 menu items
\menulist{}% 0 menu items/empty list
\menulist{Help}% 1 menu item
\renewcommand{\menusep}{~\rule{1ex}{1ex}~}\renewcommand{\menuend}{!}% Different separator and end
\menulist{Your:Menu:Sequence:Here}
\end{document} |
\documentclass{article}
\usepackage{etoolbox}% http://ctan.org/pkg/etoolbox
\begin{document}
\newcounter{menucount}\newcounter{curitem}% Counters
\newcommand{\menuitem}{\texttt}% Menu item formatting
\newcommand{\menusep}{\ensuremath{\rightarrow}}% Menu separator
\newcommand{\menuend}{\relax}% Menu end
\newcommand{\menulist}[1]{% \menulist{<menu list>}
\setcounter{menucount}{0}\setcounter{curitem}{0}% Reset menucount & curitem
\renewcommand*{\do}[1]{\stepcounter{menucount}}%
\menulistparser{#1}% Count menu items
\renewcommand*{\do}[1]{\menuitem{##1}\stepcounter{curitem}\ifnumless{\value{curitem}}{\value{menucount}}{\menusep}{\menuend}}%
\menulistparser{#1}% Process list
}
\DeclareListParser{\menulistparser}{:}% List separator is ':'
\menulist{File:New:Class}% 3 menu items
\menulist{Tools:Options:Advanced:Properties:Document}% 5 menu items
\menulist{}% 0 menu items/empty list
\menulist{Help}% 1 menu item
\renewcommand{\menusep}{~\rule{1ex}{1ex}~}\renewcommand{\menuend}{!}% Different separator and end
\menulist{Your:Menu:Sequence:Here}
\end{document}
Nachtrag vom 23.03.2012:
Es geht sogar noch eleganter:
\documentclass[justified]{tufte-book}
\usepackage{lipsum}
\begin{document}
\def\spacer{\hspace{3pt}}
\def\test{}
%\def\test{\includegraphics[height=7pt]{./graphics/web/add.png}}
\def\alist{Dashboard, Content, Structure, Hello~yannis, Log Out, \test}
\makeatletter
\noindent\fbox{%
\begin{minipage}{9cm}
\noindent\colorbox{black}{\small
\@for \i:=\alist \do{\color{white}
\texttt\i\spacer
}}
\smallskip
\tiny \lipsum[1-2]
\end{minipage}}
\makeatother
\end{document} |
\documentclass[justified]{tufte-book}
\usepackage{lipsum}
\begin{document}
\def\spacer{\hspace{3pt}}
\def\test{}
%\def\test{\includegraphics[height=7pt]{./graphics/web/add.png}}
\def\alist{Dashboard, Content, Structure, Hello~yannis, Log Out, \test}
\makeatletter
\noindent\fbox{%
\begin{minipage}{9cm}
\noindent\colorbox{black}{\small
\@for \i:=\alist \do{\color{white}
\texttt\i\spacer
}}
\smallskip
\tiny \lipsum[1-2]
\end{minipage}}
\makeatother
\end{document}
Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined.
Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.
More Posts - Website