Archive for the ‘Pakete’ Category.

TikZ-Pixelart mit dem pixelart Package

Hier ein Beispiel aus der Dokumentation des pixelart Pakets von Louis Paternault

\documentclass[12pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage{pixelart}
 
\begin{document}
 
I
\bwpixelart[color=red, scale=.05, raise=-0.3ex]{%
001101100
011111110
111111111
111111111
111111111
011111110
001111100
000111000
000010000
}
\LaTeX
 
\end{document}

Uwe

Uwe Ziegenhagen mag LaTeX und Python, auch gern in Kombination. Hat Dir dieser Beitrag geholfen und möchtest Du Dich dafür bedanken? Dann unterstütze doch vielleicht die Dingfabrik Köln e.V. mit einem kleinen Beitrag. Details zur Bezahlung findest Du unter Spenden für die Dingfabrik.

More Posts - Website

PDFs anonymisieren mit dem pdfprivacy Paket

pdflatex packt einiges an Meta-Daten in eine PDF-Datei:

Mit dem pdfprivacy (http://mirror.ctan.org/macros/latex/contrib/pdfprivacy) Paket von Laurens Sion lassen sich diese Informationen unterdrücken.

Aus der Dokumentation:

„Creating pdfs with pdfLATEX populates several pdf meta-data fields such as date/time of creation/modification, information about the latex instal-
lation (e.g., pdfTEX version), and the relative paths of included pdfs. The pdfprivacy package provides support for emptying several of these pdf meta-
data fields as well as suppressing some pdfTEX meta-data entries in the resulting pdf.“

Die Optionen stehen dabei für:

nodocdata
Specify whether document meta-data should be removed from the PDF. Document meta-data includes: (i) Title, (ii) Subject, (iii) Author, and (iv) Keywords.
noproducerdata
Specify whether meta-data on the PDF-producing application should be removed. This includes: (i) Creator, and (ii) Producer.
noeditdata
Specify whether meta-data on the edit and creation dates should be removed. This includes: (i) creation date, and (ii) modification date.
noptexdata
Specify whether the PTEX meta-data entries should be suppressed. This includes: (i) PTEX.Fullbanner, (ii) PTEX.FileName, (iii) PTEX.PageNumber, and (iv) PTEX.InfoDict.
nopdftrailerid
Specify whether the pdfrailerid should be omitted.

Diese letzte Option zur pdftrailerid sagt mir nichts, die anderen Optionen sind sicherlich selbsterklärend. Hier ein Beispiel:

\documentclass[12pt,ngerman]{scrartcl}
 
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{booktabs}
\usepackage{babel}
\usepackage{graphicx}
\usepackage{csquotes}
\usepackage{paralist}
\usepackage{xcolor}
 
\usepackage[nodocdata=false,noeditdata=true,noproducerdata=true,noptexdata=true,nopdftrailerid=false]{pdfprivacy}
 
\begin{document}
 
Hallo Welt!
 
\end{document}

Uwe

Uwe Ziegenhagen mag LaTeX und Python, auch gern in Kombination. Hat Dir dieser Beitrag geholfen und möchtest Du Dich dafür bedanken? Dann unterstütze doch vielleicht die Dingfabrik Köln e.V. mit einem kleinen Beitrag. Details zur Bezahlung findest Du unter Spenden für die Dingfabrik.

More Posts - Website

Referenzen, Varioref und Prettyref

Hier ein Beispiel, wie man mit varioref und prettyref Referenzen in LaTeX aufpeppen kann:

\documentclass[ngerman]{scrartcl}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{xcolor}
 
% sinnloser Text 
\usepackage{blindtext}
 
\usepackage{varioref}
\usepackage{prettyref}
 
% for prettyref
\newrefformat{eq}{\textup{(\ref{#1})}}
\newrefformat{cha}{Kapitel \ref{#1}}
\newrefformat{sec}{Abschnitt \ref{#1}}
\newrefformat{tab}{Tabelle \ref{#1} auf Seite \pageref{#1}}
\newrefformat{fig}{Abbildung \ref{#1} auf Seite \pageref{#1}}
 
\usepackage{showlabels}
 
\begin{document}
 
\section{Erster Abschnitt}\label{sec:erst}
 
\blindtext[3]
 
\begin{figure}[h]%
\rule{\columnwidth}{5cm}
\caption{Hallo Welt!}%
\label{fig:test1}%
\end{figure}
 
\blindtext[1]
 
\section{Zweiter Abschnitt}
 
\blindtext[5]
 
\begin{figure}%
\rule{\columnwidth}{5cm}
\caption{Hallo Welt!}%
\label{fig:test2}%
\end{figure}
 
\blindtext[4]
 
\begin{itemize}
	\item Ohne Paket: Siehe Abbildung \textcolor{red}{\ref{fig:test1}} auf Seite \textcolor{red}{\pageref{fig:test1}}
	\item Varioref: Siehe Abbildung \textcolor{red}{\vref{fig:test1}}
	\item Varioref: Siehe die Abbildung \textcolor{red}{\vpageref{fig:test1}}
	\item Ohne Paket: Siehe Abbildung \textcolor{red}{\ref{fig:test2}} auf Seite \textcolor{red}{\pageref{fig:test2}}
	\item Varioref: Siehe Abbildung \textcolor{red}{\vpageref{fig:test2}}
	\item Varioref: Siehe Abbildung \textcolor{red}{\vref{fig:test2}}
	\item Varioref: Siehe Abbildungen \textcolor{red}{\vrefrange{fig:test1}{fig:test2}}
	\item Varioref: Siehe die Abbildungen \textcolor{red}{\vpagerefrange{fig:test1}{fig:test2}}
	\item Prettyref: \textcolor{red}{\prettyref{fig:test1}}
	\item Prettyref: \textcolor{red}{\prettyref{sec:erst}}
	\item Varioref: Siehe Abbildung \textcolor{red}{\vref{fig:test3}}
	\item Varioref: Siehe Abbildung \textcolor{red}{\vref{fig:test4}}
\end{itemize}
 
\clearpage 
 
\begin{figure}%
\rule{\columnwidth}{5cm}
\caption{Hallo Welt!}%
\label{fig:test3}%
\end{figure}
 
\clearpage 
 
\begin{figure}%
\rule{\columnwidth}{5cm}
\caption{Hallo Welt!}%
\label{fig:test4}%
\end{figure}
 
\end{document}

Hier die Ausgabe der Referenzen auf der letzten Seite. Alles, was in rot gesetzt wird, wird so über das entsprechende TeX gesteuert.

Uwe

Uwe Ziegenhagen mag LaTeX und Python, auch gern in Kombination. Hat Dir dieser Beitrag geholfen und möchtest Du Dich dafür bedanken? Dann unterstütze doch vielleicht die Dingfabrik Köln e.V. mit einem kleinen Beitrag. Details zur Bezahlung findest Du unter Spenden für die Dingfabrik.

More Posts - Website

Neue Version des varsfromjobname Pakets

Letzten Montag habe ich die neue Version meines varsfromjobname Pakets auf CTAN hochgeladen, es gibt auch ein Github Repo dazu: https://github.com/UweZiegenhagen/VarsFromJobname

What does this package do?

Using varsfromjobname.sty one can easily extract information from the filename, if it follows a certain form.

The standard LaTeX command \jobname returns the name of the LaTeX (master) file. If the filename consists of tokens separated by hyphen we can easily extract certain tokens that can be used inside the document.

The package expects the filename to be of the form one-two-three-four-five-six-seven-eight-nine.tex and offers the following commands:


\getfromjobname{param}, with param in the range of 1 to 9 (a highlevel interface to the following commands)

\getonefromjobname
\gettwofromjobname
\getthreefromjobname
\getfourfromjobname
\getfivefromjobname
\getsixfromjobname
\getsevenfromjobname
\geteightfromjobname
\getninefromjobname

Why can it be useful?

You can use this package for example to define the date of the document in the filename, personally I use it e.g. for scrlttr2 letters.

Change History

  • Version 0.5, as of January 11th 2009: Initial version published
  • Version 1.0, to be published May 2017: Added various commands which extract necessary information also from included documents. Modified code as suggested by egreg

Shortcomings

  • \getfromjobname is not fully expandable, use one of the other commands if you need expansion
  • Version 1.0 cannot extract information from included sub-documents
  • The package cannot handle more than nine tokens, see the reference to egreg’s answer on TSX below for an updated version

Uwe

Uwe Ziegenhagen mag LaTeX und Python, auch gern in Kombination. Hat Dir dieser Beitrag geholfen und möchtest Du Dich dafür bedanken? Dann unterstütze doch vielleicht die Dingfabrik Köln e.V. mit einem kleinen Beitrag. Details zur Bezahlung findest Du unter Spenden für die Dingfabrik.

More Posts - Website

Plots mit pgfplots

Hier ein kleines Beispiel für pgfplots, das ich aus diversen TSX Beiträgen für einen Python Artikel zusammengebaut habe:

\documentclass[12pt,english]{standalone}
\usepackage[T1]{fontenc}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\pagestyle{empty}
 
\begin{document}
\begin{tikzpicture}
\begin{axis}[
    domain=0:9,
    axis lines = center,
    xlabel = {$x$},
    ylabel = {$y = f(x)$},
    height=8cm, width=11cm, grid=major,grid style={dashed, gray!30},
    xmin=-1, xmax=10, ymin=-1, ymax=7,xtick={1,2,...,10},ytick={1,2,...,6}]
 
\addplot[draw=red,domain=0:8]{-0.5*x+4};
\addplot[draw=blue,domain=1:3]{-3*x+9};
\end{axis}
\end{tikzpicture}
\end{document}

pff

Uwe

Uwe Ziegenhagen mag LaTeX und Python, auch gern in Kombination. Hat Dir dieser Beitrag geholfen und möchtest Du Dich dafür bedanken? Dann unterstütze doch vielleicht die Dingfabrik Köln e.V. mit einem kleinen Beitrag. Details zur Bezahlung findest Du unter Spenden für die Dingfabrik.

More Posts - Website

Das „Currentfile“ Paket

Hier ein Beispiel für das currentfile Paket. Während \jobname auch bei eingebundenen Dateien nur den Namen der Hauptdatei ausspuckt, kann man mit den Befehlen des currentfile Pakets auf die einzelnen Dateien zugreifen.

\documentclass{scrartcl}
\usepackage{filecontents}
\usepackage{currfile}
 
\begin{filecontents}{curr02.tex}
 
Ich bin der Inhalt einer Datei, die eingebunden wird. \verb|\jobname| enthält: \jobname
 
	\begin{itemize}
		\item \verb|\currfilebase|: \currfilebase
		\item \verb|\currfilename|: \currfilename
		\item \verb|\currfileext|: \currfileext
		\item \verb|\currfiledir|: \currfiledir
		\item \verb|\currfilepath|: \currfilepath
	\end{itemize}
 
\end{filecontents}
 
\begin{document}
 
	\begin{itemize}
		\item \verb|\currfilebase|: \currfilebase
		\item \verb|\currfilename|: \currfilename
		\item \verb|\currfileext|: \currfileext
		\item \verb|\currfiledir|: \currfiledir
		\item \verb|\currfilepath|: \currfilepath
	\end{itemize}
 
\input{curr02}
 
\end{document}

currfile

Uwe

Uwe Ziegenhagen mag LaTeX und Python, auch gern in Kombination. Hat Dir dieser Beitrag geholfen und möchtest Du Dich dafür bedanken? Dann unterstütze doch vielleicht die Dingfabrik Köln e.V. mit einem kleinen Beitrag. Details zur Bezahlung findest Du unter Spenden für die Dingfabrik.

More Posts - Website

EPUBs erstellen mit tex4ebook

This entry is part 1 of 1 in the series EPUBs mit LaTeX

Es gibt ein relativ neues LaTeX-Paket zum Erzeugen von EPUBs aus LaTeX heraus, hier ein kurzes Beispiel:

\documentclass[ngerman]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage{xcolor}
 
\title{Testdokument für tex4ebook}
\author{Uwe Ziegenhagen}
 
\begin{document}
\maketitle
\tableofcontents
 
\section{Hallo}
 
Hallo Welt
 
\section{Welt}
 
\end{document}

In diesem einfachen Beispiel hat das generierte EPUB noch Probleme:

  • Umlaute sind kaputt
  • Das Inhaltsverzeichnis befindet sich hinter dem eigentlichen Text

In den nächsten Artikeln werde ich schauen, was mit dem Paket geht und wo seine Grenzen liegen.

Uwe

Uwe Ziegenhagen mag LaTeX und Python, auch gern in Kombination. Hat Dir dieser Beitrag geholfen und möchtest Du Dich dafür bedanken? Dann unterstütze doch vielleicht die Dingfabrik Köln e.V. mit einem kleinen Beitrag. Details zur Bezahlung findest Du unter Spenden für die Dingfabrik.

More Posts - Website

Lebende Kolumnentitel mit scrlayer

Ausgehend von http://uweziegenhagen.de/?p=1615 habe ich mal testweise auf scrlayer umgestellt, hier der resultierende Quellcode:

\documentclass[a4paper,11pt]{scrbook}
\usepackage[headsepline=0.5pt,footsepline=0.5pt]{scrlayer-scrpage}
\usepackage[left=2cm,right=4cm]{geometry}
\KOMAoptions{headwidth=1.1\textwidth,footwidth=1.1\textwidth}
\usepackage{blindtext}
 
\pagestyle{scrheadings}
 
\ohead{\headmark}
\ofoot[\pagemark]{\pagemark}
 
\ifoot{ifoot} % inner foot
\ihead{ihead} % inner head
\cfoot{cfoot} % center foot
\chead{chead} % center head
 
\begin{document}
\chapter{Hello}
\section{World}
 
\blindtext[10]
 
\end{document}

Uwe

Uwe Ziegenhagen mag LaTeX und Python, auch gern in Kombination. Hat Dir dieser Beitrag geholfen und möchtest Du Dich dafür bedanken? Dann unterstütze doch vielleicht die Dingfabrik Köln e.V. mit einem kleinen Beitrag. Details zur Bezahlung findest Du unter Spenden für die Dingfabrik.

More Posts - Website

Creating Documents for Multiple Audiences (with the multiaudience package)

Boris Veytsman has recently published a new package to create output documents for multiple audiences in one single file.

The document creation process is divided into two steps: a) create the document and b) create the batch/bash file to automate the document creation.

Find below a sample document (save as ‚multdocument.tex‘) you can use as a starting point. As one can see, three audiences are defined here: „board“, „business“ and „tech“. The „shownto“ environment has one parameter, the comma-separated list of audiences, the content of the section shall be shown to. If the first item is a „-“ instead, the negates the meaning (so {-,board} means „show to every audience except the board). There are also commands for audience-specific footnotes or sections, check the manual for more information.

\begin{shownto}{board}
Some text for the board, for example an executive summary.
\end{shownto}

Remark 2015-08-17: With „tagging“ there is another package, that supports the creation of multiple editions in a single file.

\documentclass[12pt,english]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
 
\usepackage{multiaudience}
 
\SetNewAudience{tech}
\SetNewAudience{business}
\SetNewAudience{board}
 
\begin{document}
 
This text is shown to everybody as it is outside any `multiaudience' environment
 
\begin{shownto}{board}
Some text for the board, for example an executive summary.
\end{shownto}
 
\begin{shownto}{tech,business}
Text for the tech department and the business users, for example a list of business requirements.
\end{shownto}
 
\begin{shownto}{-, board}
Text for every audience except the board.
\end{shownto}
 
Some text.\Footnote{board}{Some footnote just for the board}
 
 
\begin{Section}{board}[Short title]{Long Title of this Section}
 
Text in the section just for the board.
 
\end{Section}
 
 
\end{document}

After we have defined the document with the audiences we want to automate the PDF-creation process in which we tell LaTeX for which audience we want to create the document.

Since LaTeX can take definitions via LaTeX-commandline call, it’s quite easy to create a batch file with one line for each audience:

pdflatex -jobname file-board "\def\CurrentAudience{board}\input{multdocument}"
pdflatex -jobname file-tech "\def\CurrentAudience{tech}\input{multdocument}"
pdflatex -jobname file-business "\def\CurrentAudience{business}\input{multdocument}"

„-jobname“ defines the name of the PDF-file, the „\def{…}“ command sets the current audience. What you get when you run this batch is three different output files with just the information that shall be visible for each audience.

file-board

file-business

file-tech

Uwe

Uwe Ziegenhagen mag LaTeX und Python, auch gern in Kombination. Hat Dir dieser Beitrag geholfen und möchtest Du Dich dafür bedanken? Dann unterstütze doch vielleicht die Dingfabrik Köln e.V. mit einem kleinen Beitrag. Details zur Bezahlung findest Du unter Spenden für die Dingfabrik.

More Posts - Website

Embedding the TeX code in the PDF

There are a few packages out there which allow the user to add arbitrary files to the PDF container. The following example uses the „navigator“ package by Paul Isambert.

\documentclass[12pt,ngerman]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{navigator}
 
\begin{document}
 
Hallo!
 
\embeddedfile[TeX code]{\jobname}{\jobname.tex}
 
\end{document}

navi

Uwe

Uwe Ziegenhagen mag LaTeX und Python, auch gern in Kombination. Hat Dir dieser Beitrag geholfen und möchtest Du Dich dafür bedanken? Dann unterstütze doch vielleicht die Dingfabrik Köln e.V. mit einem kleinen Beitrag. Details zur Bezahlung findest Du unter Spenden für die Dingfabrik.

More Posts - Website