díszes hekkek TeX-re...

Sziasztok.
Gondoltam nem a bookmarkjaimat gyarapítom, hanem ide körmölök hasznos giccseket, melyek esetleg jók lesznek másnak is.
TeX, LaTeX adalékok, vegyesen

Hozzászólások

Nem foglalkoztam LaTeX-el túl komolyan, szóval lehetnek benne hibák.

Bytefield csomag regiszter-bitek, üzenetek, memória-térképek rajzolásához:
https://ctan.org/tex-archive/macros/latex/contrib/bytefield
http://www.martin-demling.de/2011/06/memory-maps-in-latex-using-the-byt…

(Ezek lehet csak LyX-nél érdekesek)

Oldal formázása:
https://tex.stackexchange.com/questions/10896/define-different-heights-…

Fejezetek előtt hely kihagyás (preamble):

\usepackage{titlesec}
\titlespacing*{\section}{0pt}{1cm plus 0.5cm minus 0.5cm}{6pt}
\titlespacing*{\subsection}{0pt}{1cm plus 0.5cm minus 0.5cm}{6pt}
\titlespacing*{\subsubsection}{0pt}{0.5cm plus 0.2cm minus 0.2cm}{6pt}

Tartalomjegyzékez adás, számozás nélkül:

\phantomsection\addcontentsline{toc}{chapter}{Feladatkiírás}
\phantomsection\addcontentsline{toc}{chapter}{\contentsname}
\phantomsection\addcontentsline{toc}{section}{\listfigurename}
\phantomsection\addcontentsline{toc}{section}{\listtablename}

Minden (nagy) fejezet új oldalon kezdődjön (preamble):

\let\stdsection\section
\renewcommand*{\section}{\clearpage\stdsection}

Normális(abb) font LuaTex alatt (preamble):

\usepackage{iftex}
\ifLuaTeX
\usepackage{fontspec}
\fi

"Párhuzamosan" (két függőleges vonal):

$\|$

Hivatkozás (magyarlatex):

\aref{}

és

\Aref{}

(LyX sajnos nem tudja, kézzel kell beírni.)

Ábrák:

Vektorgrafikus ábrák piszkálásához a Inkscape (https://inkscape.org) egy remek eszköz. Tud PDF-et, EPS-t, SVG-t, WMF-t.
(Dokumentum beállításoknál rácsot hozzáadva és rácsra-illesztést bekapcsolva blokkvázlat rajzoláshoz is elég kényelmes.)
Elvileg lehet vele úgy exportálni, hogy az ábrán lévő szövegeket a TeX dolgozza fel (dokumentummal azonos font/kinézet), de nekem még nem sikerül feléleszteni.

Esetleg a Dia nevű programot érdemes még megnézni.

Nyomtatáskor egy csomó program vektoros kimenetet generál, még ha amúgy nem is lehet vele vektoros file-ba exportálni. A PDF nyomtatók sokszor jól jönnek (cups-pdf, PDFCreator).

Excel / libreoffice -ból ábrát/táblázatot vektorosan be lehet importálni, ha először PDF-be nyomtatjuk majd Inkscape-el kiszedjük a nem kellő részt.

Matlab/Octave plot-ot lehet PDF-be menteni.
Simulink-ből azt hiszem nem lehet (bár elég régi verziót láttam).

SageMath-nál lehet EPS/PDF-be menteni:

p = list_plot([1, 5, 2, 3, 4], plotjoined=True)
p.save("plot.eps") # vagy PDF
p.show()

Gnuplot-nak van EPS (és talán PDF) kimenete is.

LTspice-ban (elektronikai áramkör szimulátor) lehet WMF file-ba menteni.

Xilinx software-ekből kb nem lehet vektoros kimenetet csiholni.

wxMaxima kimenetnél jobb klikk LaTeX másolása.

OpenModelica-val elvileg lehet SVG-be menteni (nem használtam).

3D file-ból Blender + "Freestyle SVG Exporter"-el lehet ilyen sematikus ábrát készíteni.

Gerber file-okból (NYÁK gyártási file-ok) a Gerbv programmal lehet SVG/PDF-et csinálni.

Ha nem megy vektorosan, akkor a PNG jobban néz ki, mint a JPEG (fényképeket kivéve).

Stílusosan kell elnevezni a makrókat, pl. római számoknak ,,roma'' nevet adni verytrendi:

%preambulumba:
\newcommand{\roma}[1]{\uppercase\expandafter{\romannumeral #1\relax}}
%
%használat: \roma{1984}
%az eredmény: MCMLXXXIV

Ha kalligrafikus fonttal írnánk szöveg után közvetlenül számot, akkor ez jó lehet:

\usepackage{amsmath}

\newcommand*{\textcal}[1]{%
% family qzc: Font TeX Gyre Chorus (package tgchorus)
% family pzc: Font Zapf Chancery (package chancery)
\textit{\fontfamily{qzc}\selectfont#1}%
}
\begin{document}
$\mathcal{P}(S) = \textcal{2}^S \qquad
\text{with }\textcal{2} = \{0,1\}$
\end{document}

SI mértékegységek itt:
http://ctan.ijs.si/tex-archive/macros/latex/contrib/siunitx/siunitx.pdf

pl fok, másodperc, ha a zember lusta a \circ-et beírni matematikai módban:

2,67 fok: \ang{2.67}

érdekes ez a két sor is:

\documentclass{article}
\usepackage{siunitx}
\begin{document}
N\ang{52;58.110;} E\ang{00;40.070;} % ez itt
N$52^\circ 58.110'$ E$0^\circ 40.070^\prime$ % ...ugyanaz, mint ez
\end{document}

Bár a N és E a koordináták után, kis szóközzel.
Érdekes, hogy míg a magyarban a tizedesvessző használatos szél. és hosszúság esetén, a zangolban tizedespont.

Ha a koordináta számai kiemelt vagy dőlt, akkor a perc és másodperc belelőghat a 9-es karakterbe, ha sokáig hekkeli az ember.

Nincs egyértelmű tipográfia a magyarban, ami koordinátákra vonatkozik, úgy kell kitalálni. Én a Lat/Lon-t preferálom angolul, Lon esetében a fok ha 100-nál kisebb, még a nullát is elé írom

% gyönyörű !!!

% A simple compass
% Author: Dario Orescanin

\documentclass{minimal}
\usepackage{tikz}
\begin{document}

\begin{centering}

% Define a few constants for easy configuration
\def\radius{2cm}
\def\onedegrad{1.8cm}
\def\fivedegrad{1.75cm}
\def\tendegrad{1.7cm}
\def\labelrad{1.6cm}

\begin{tikzpicture}[scale=4]

% adding a subtle gray tone to add a bit of "personality"
\shade[shading=radial, inner color=white, outer color=gray!15] (0,0) circle (\radius);

\draw (0,0) circle (\radius);
\draw[fill=black] (0,0) circle (.02mm);
\node[draw, circle, inner sep=.2mm] (a) at (0,0) {};

% helper lines
\foreach \x in {0, 45, ..., 360} \draw[very thin, gray!40] (a) -- (\x:\radius);

% main lines
\foreach \x in {0,...,359} \draw (\x:\onedegrad) -- (\x:\radius);

% labels and longer lines at every 10 degrees
\foreach \x in {0,10,...,350}
{
\node[scale=1.4, rotate=\x*-1] at (360-\x+90:\labelrad) {\x};
\draw (\x:\tendegrad) -- (\x:\radius);
};

% lines at every 5 degrees
\foreach \x in {0,5,...,355} \draw (\x:\fivedegrad) -- (\x:\radius);

\end{tikzpicture}
\end{centering}

\end{document}

Amikor sok fájlból áll művünk, akár több százból, érdemes a fájl nevét ideiglenesen beírni a láblécbe, hogy egy lektor is kiigazodjon.

preambulumba mindezt:

\usepackage{currfile}
\fancyfoot[RO]{\currfilename \hfill \thepage}
\fancyfoot[LE]{\thepage \hfill \currfilename}

a \currfilename ezután még másra is felhasználható, ha olyan az összetétele. Akár paraméterként is továbbadható, mondjuk dátumot készíthetünk belőle.

% https://tex.stackexchange.com/questions/50258/margins-of-book-class

\documentclass{book}
\usepackage{layout}
\begin{document}
\layout
\end{document}
% kirajzolja a lap méreteit.

Ez meg a méreteket is kiírja cm-ben:

\documentclass{article}
\usepackage{geometry}
\usepackage{layouts}
\usepackage{layout}
\printinunitsof{cm}
\begin{document}
\pagevalues
\newpage
\layout
\end{document}

Igen ám, de a
\usepackage{geometry}
csomag, ami kiírja a
\pagevalues-t, elkúrja a default margóbeállításokat.
Nem tudom, miért. Mondjuk nem fontos, csak hát ha már megcsinálták, miért szarul?

Levin mester jut eszembe:
,,Azt még megértem, hogy szar dolgokat szarul csinálnak, de hogy jó dolgokat szarul...''

% összevagdalandó, majd ragasztandó asztali naptár

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Welcome to Overleaf --- just edit your LaTeX on the left,
% and we'll compile it for you on the right. If you give
% someone the link to this page, they can edit at the same
% time. See the help menu above for more info. Enjoy!
%
% Note: you can export the pdf to see the result at full
% resolution.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass{article}
% Folding + calendar example from the PGF manual.
%
% Author: Till Tantau
\usepackage{tikz}
\usetikzlibrary{calendar,folding}

%%%<
\usepackage{verbatim}
\usepackage[active,tightpage]{preview}
\PreviewEnvironment{tikzpicture}
\setlength\PreviewBorder{5pt}%
%%%>

\begin{comment}
:Title: Foldable dodecahedron with Calendar
:Tags: Calendars; Manual
:Author: Till Tantau

An example of the folding library and the folding library, straight from
the manual.
\end{comment}

\begin{document}
\sffamily\scriptsize
\begin{tikzpicture}[transform shape,
every calendar/.style={
at={(-8ex,4ex)},
week list,
month label above centered,
month text=\bfseries\textcolor{red}{\%mt} \%y0,
if={(Sunday) [black!50]}
}]
\tikzfoldingdodecahedron[
folding line length=2.5cm,
face 1={ \calendar [dates=\the\year-01-01 to \the\year-01-last];},
face 2={ \calendar [dates=\the\year-02-01 to \the\year-02-last];},
face 3={ \calendar [dates=\the\year-03-01 to \the\year-03-last];},
face 4={ \calendar [dates=\the\year-04-01 to \the\year-04-last];},
face 5={ \calendar [dates=\the\year-05-01 to \the\year-05-last];},
face 6={ \calendar [dates=\the\year-06-01 to \the\year-06-last];},
face 7={ \calendar [dates=\the\year-07-01 to \the\year-07-last];},
face 8={ \calendar [dates=\the\year-08-01 to \the\year-08-last];},
face 9={ \calendar [dates=\the\year-09-01 to \the\year-09-last];},
face 10={\calendar [dates=\the\year-10-01 to \the\year-10-last];},
face 11={\calendar [dates=\the\year-11-01 to \the\year-11-last];},
face 12={\calendar [dates=\the\year-12-01 to \the\year-12-last];}
];
\end{tikzpicture}
\end{document}


\documentclass{article}
\usepackage[magyar]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\usepackage[nomessages]{fp}
\usepackage{siunitx}

%% tmf, NMi, mérföld, lábjegyzetbe rakva...
\def\tmf#1{
\FPeval{result}{clip(1.852*#1)}
\SI[locale = DE]{#1}~NMi\footnote{#1~NMi$=$\SI[locale = DE]{\result}{km}}
}

\begin{document}
Így kő' mérföldet kiírni, ha az olvasónak lábjegyzetbe 
akarjuk adni a kilométerbe való átszámítást is: 

   \tmf{3.4}

A tizedesvessző a német szabvány szerint, ami a magyarban 
is jelen van, az siunitx csomagnak megfelelő tipográfiával. 
Az fp csomagnak tizedesponttal lett átadva az érték, de 
kiírásnál vessző van használva. Ha valaki szebbet, 
egyszerűbbet tud, jelezze :-)
\end{document}

\documentclass{article}
\usepackage[magyar]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\usepackage[nomessages]{fp}
\usepackage{siunitx}

%

%% tmf, NMi, mérföld, lábjegyzetbe rakva...
\def\tmf#1{
\sisetup{
round-mode = places,
round-precision = 1
}%
\FPeval{result}{clip(#1*1.852)}
\SI[locale = DE]{#1}~mérföld\footnote{#1~tmf~$\approx$~\SI[locale = DE]{\result}{km}}
}

\def\Tmf#1#2{
\sisetup{
round-mode = places,
round-precision = 0
}%
\FPeval{a}{clip(#1*1.852)}
\FPeval{b}{clip(#2*1.852)}
\SI[locale = DE]{#1}~-\SI[locale = DE]{#2}{merfold}%
\footnote{$\approx$\a-\SI[locale = DE]{\b}{tmf}}
}

\begin{document}
Így kő' mérföldet kiírni, ha az olvasónak lábjegyzetbe
akarjuk adni a kilométerbe való átszámítást is:

\tmf{3.4}
\Tmf{6}{7}

\end{document}

A tizedesvessző a német szabvány szerint, ami a magyarban is jelen van, az siunitx csomagnak megfelelő tipográfiával.

\sisetup{output-decimal-marker={,}}
Persze esetleg még a normálalak kiíráshoz (hogy ne x-et írjon, hanem pontot a szorzáshoz): exponent-product=\cdot. Ld. itt.

a kerekítés is megy már (a fentiben van egy bug), de az \ifthenelse{}{}{} cuccal szívok, syntaxot generálok állandóan.
Azt szeretném, hogy \footnote csak akkor legyen, ha az első paraméter #1 nagyobb, mint 3.
Tegnap óta küzdök, ma reggel elölről kezdtem az egészet, most legalább már tudom, hogy nem tudom elvégezni az összehasonlítást:

\ifthenelse{#1 > 3}{\footnote{hopp}}{}

..és nem megy.
Tulajdonképpen már csak az a kérdés, hogyan kell eljárni, ha a #1 mondjuk 3.2, azaz tizedes szám. Próbáltam vesszővel, ponttal, semmi.
Mondjuk hogyan kell a felsőegészrészét venni a #1-nek, hogy aztán az ifthenelse ezt egye meg.

Itt lett végem ma:


\documentclass{article}
\usepackage[magyar]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[nomessages]{fp}
\usepackage{siunitx}
\usepackage{ifthen}

\def\tmf#1{
\sisetup{
 round-mode = places,
 round-precision = 1
}%
\FPeval{c}{clip(#1*1.852)}
\SI[locale = DE]{#1}~mérföld%
\sisetup{
 round-mode = places,
 round-precision = 1
}%
\ifthenelse{#1 > 3}%{else}
{\sisetup{
 round-mode = places,
 round-precision = 1
}%
\footnote{\SI[locale = DE]{#1}{tmf}~$\approx$~\SI[locale = DE]{\c}{km}}{}}}

\def\Tmf#1#2{
\sisetup{
round-mode = places,
round-precision = 0
}%
\FPeval{a}{clip(#1*1.852)}
\FPeval{b}{clip(#2*1.852)}
\SI[locale = DE]{#1}~-\SI[locale = DE]{#2}{merfold}%
\ifthenelse{#1 > 3}%{else}
{\footnote{$\approx$\SI[locale = DE]{\a}{}-\SI[locale = DE]{\b}{km}}}{}
}

\begin{document}

   \tmf{34}  % hiba: lábjegyzetbe 63,0 km-t rak be, de a fene tudja kivédeni, hogy a nullát ne írja ki a tizedeselválasztóval
   
   \tmf{31} % ha 31 helyett 3.1-et adok meg, azaz tizedes számot, a tex fordító leáll. Lila gőzöm sincs, hogyan lehet az egészrészt megadni.
   
   \Tmf{6}{7}

\end{document}

\sout{valami} helyett egy jobb áthúzás átlósan:

\cancel{szöveg} % ∈ cancel

% szóval \usepackage{cancel}
Gyönyörű!!

Csak a tartalomjegyzékben nem tudom megjeleníteni...

-----------------
10-féle lény van:
-- aki ismeri a bináris számrendszert,
-- és amelyik nem.