diff options
author | Karl Berry <karl@freefriends.org> | 2019-09-06 21:12:46 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2019-09-06 21:12:46 +0000 |
commit | 7a8ac022f12717cefa5fd991e95b2d7f2742a4c7 (patch) | |
tree | 2e2b4edce88dd8daf8f6a55f504eaea2fadf0014 /Master | |
parent | af413422dd5b7743d4a7d8ec435e99f70783524d (diff) |
simpleoptics (6sep19)
git-svn-id: svn://tug.org/texlive/trunk@52038 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r-- | Master/texmf-dist/doc/latex/simpleoptics/README | 18 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/simpleoptics/simpleoptics.pdf | bin | 0 -> 96199 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/simpleoptics/simpleoptics.tex | 474 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/simpleoptics/simpleoptics.sty | 140 | ||||
-rwxr-xr-x | Master/tlpkg/bin/tlpkg-ctan-check | 3 | ||||
-rw-r--r-- | Master/tlpkg/tlpsrc/collection-pictures.tlpsrc | 1 | ||||
-rw-r--r-- | Master/tlpkg/tlpsrc/simpleoptics.tlpsrc | 0 |
7 files changed, 635 insertions, 1 deletions
diff --git a/Master/texmf-dist/doc/latex/simpleoptics/README b/Master/texmf-dist/doc/latex/simpleoptics/README new file mode 100644 index 00000000000..386a051b2ca --- /dev/null +++ b/Master/texmf-dist/doc/latex/simpleoptics/README @@ -0,0 +1,18 @@ +%% simpleoptics.zip +%% Copyright 2019 J. Cawood +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3c +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. +% +% This work has the LPPL maintenance status `maintained'. +% +% The Current Maintainer of this work is J. Cawood. +% + + +This package provides a handful of macros for drawing simple lenses and mirrors for use in optics diagrams.
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/simpleoptics/simpleoptics.pdf b/Master/texmf-dist/doc/latex/simpleoptics/simpleoptics.pdf Binary files differnew file mode 100644 index 00000000000..474564b3aab --- /dev/null +++ b/Master/texmf-dist/doc/latex/simpleoptics/simpleoptics.pdf diff --git a/Master/texmf-dist/doc/latex/simpleoptics/simpleoptics.tex b/Master/texmf-dist/doc/latex/simpleoptics/simpleoptics.tex new file mode 100644 index 00000000000..1ed5ecfe45b --- /dev/null +++ b/Master/texmf-dist/doc/latex/simpleoptics/simpleoptics.tex @@ -0,0 +1,474 @@ +\documentclass[12pt]{article} + +\usepackage[right=1in, top=1in, left=1in, bottom=1in]{geometry} +\usepackage[parfill]{parskip} +\usepackage{hyperref, float} +\hypersetup{ + colorlinks=true, + linkcolor=blue, + filecolor=magenta, + urlcolor=cyan, +} + +\usepackage{simpleoptics} + + +\begin{document} + + +\begin{titlepage} +\vspace*{\fill} +\begin{center} +{\Huge Simple Optics Documentation}\\[0.5cm] +{\Large Version: 1.0.0}\\[0.4cm] +{\Large Date: $5^{th}$ of September 2019}\\[0.2cm] +{\small Author: Justin Cawood} +\end{center} +\vspace*{\fill} +\end{titlepage} + +\newpage + +\tableofcontents + +\newpage + +\section{Important Info} + +All optics diagrams drawn with this package \textbf{must} be contained within a "tikzpicture" environment + +Example. + +$\backslash$begin\{center\} + +$\backslash$begin\{tikzpicture\} + +$\backslash$mirror\{0\}\{0\}\{-4\}\{3\} + +$\backslash$end\{tikzpicture\} + +$\backslash$end\{center\} + +\begin{figure}[H] + +\begin{center} + +\begin{tikzpicture} + +\mirror{0}{0}{-4}{3} + +\end{tikzpicture} + +\end{center} + +\caption{Simple mirror example} +\end{figure} + +\section{Quick Macro Reference} + +The available macros are + +\begin{itemize} +\item $\backslash$mirror\{x\}\{y\}\{focal length\}\{mirror height\} +\item $\backslash$leftplanoconvexlens\{x\}\{y\}\{focal length\}\{mirror height\}\{thickness\} +\item $\backslash$rightplanoconvexlens\{x\}\{y\}\{focal length\}\{mirror height\}\{thickness\} +\item $\backslash$leftplanoconcavelens\{x\}\{y\}\{focal length\}\{mirror height\}\{thickness\} +\item $\backslash$rightplanoconcavelens\{x\}\{y\}\{focal length\}\{mirror height\}\{thickness\} +\item $\backslash$biconvexlens\{x\}\{y\}\{focal length\}\{mirror height\}\{thickness\} +\item $\backslash$biconcavelens\{x\}\{y\}\{focal length\}\{mirror height\}\{thickness\} +\item $\backslash$convexconcavelens\{x\}\{y\}\{focal length\}\{mirror height\}\{thickness\} +\item $\backslash$concaveconvexlens\{x\}\{y\}\{focal length\}\{mirror height\}\{thickness\} +\end{itemize} + + +\section{Mirrors} + +Mirrors can be drawn using the $\backslash$mirror macro. + +The macro takes the following parameters, all of which are required. + +$\backslash$mirror\{x\}\{y\}\{focal length\}\{mirror height\} + +The parameters x and y are the coordinates for where the mirror will be placed. The focal length and height are simply the focal length and height of the mirror. + +If you want to flip the mirror the other way, just specify a negative focal length. Examples of both are done below with the code below each. + + +\begin{minipage}{\textwidth} +\begin{minipage}{0.5\textwidth} + +\begin{figure}[H] + +\begin{center} + +\begin{tikzpicture} + +\mirror{0}{0}{3}{2} + +\end{tikzpicture} + +\end{center} + +\caption{Positive focal length example} +\end{figure} + +$\backslash$begin\{center\} + +$\backslash$begin\{tikzpicture\} + +$\backslash$mirror\{0\}\{0\}\{3\}\{4\} + +$\backslash$end\{tikzpicture\} + +$\backslash$end\{center\} +\end{minipage} +\begin{minipage}{0.5\textwidth} + +\begin{figure}[H] + +\begin{center} + +\begin{tikzpicture} + +\mirror{0}{0}{-3}{2} + +\end{tikzpicture} + +\end{center} + +\caption{Negative focal length example} +\end{figure} + +$\backslash$begin\{center\} + +$\backslash$begin\{tikzpicture\} + +$\backslash$mirror\{0\}\{0\}\{-3\}\{4\} + +$\backslash$end\{tikzpicture\} + +$\backslash$end\{center\} +\end{minipage} +\end{minipage} + +\section{Lenses} + +The lenses are made using mirrors. + +There are a few different lenses that can be drawn with this package, each of which has its own macro. + +\subsection{Plano Lenses} +Plano lenses have one flat side and the other side is either convex or concave. + +The plano lenses have macros following this format + +$\backslash$leftplano"convex/concave"lens\{x\}\{y\}\{focal length\}\{mirror height\}\{thickness\} + +or + +$\backslash$rightplano"convex/concave"lens\{x\}\{y\}\{focal length\}\{mirror height\}\{thickness\} + +\subsubsection{Plano-Convex Lenses} + +This package provides two plano-covex lens macros. One faces left and the other right. The left and right refer to the flat side of the lens. These are shown below. + +\begin{minipage}{\textwidth} +\begin{minipage}{0.5\textwidth} + +\begin{figure}[H] + +\begin{center} + +\begin{tikzpicture} + +\leftplanoconvexlens{0}{0}{3}{2}{0.3} + +\end{tikzpicture} + +\end{center} + +\caption{Left plano convex lens} +\end{figure} + +$\backslash$begin\{center\} + +$\backslash$begin\{tikzpicture\} + +$\backslash$leftplanoconvexlens\{0\}\{0\}\{3\}\{4\}\{0.3\} + +$\backslash$end\{tikzpicture\} + +$\backslash$end\{center\} +\end{minipage} +\begin{minipage}{0.5\textwidth} + +\begin{figure}[H] + +\begin{center} + +\begin{tikzpicture} + +\rightplanoconvexlens{0}{0}{3}{2}{0.3} + +\end{tikzpicture} + +\end{center} + +\caption{Right plano convex lens} +\end{figure} + +$\backslash$begin\{center\} + +$\backslash$begin\{tikzpicture\} + +$\backslash$rightplanoconvexlens\{0\}\{0\}\{3\}\{4\}\{0.3\} + +$\backslash$end\{tikzpicture\} + +$\backslash$end\{center\} +\end{minipage} +\end{minipage} + +\subsubsection{Plano-Concave Lenses} + +The same can be done with plano concave lenses. Again there are two available macros. One faces left and the other right. The left and right refer to the flat side of the lens. These are shown below. + +\begin{minipage}{\textwidth} +\begin{minipage}{0.5\textwidth} + +\begin{figure}[H] + +\begin{center} + +\begin{tikzpicture} + +\leftplanoconcavelens{0}{0}{5}{3}{0.5} + +\end{tikzpicture} + +\end{center} + +\caption{Left plano concave lens} +\end{figure} + +$\backslash$begin\{center\} + +$\backslash$begin\{tikzpicture\} + +$\backslash$leftplanoconcavelens\{0\}\{0\}\{5\}\{3\}\{0.5\} + +$\backslash$end\{tikzpicture\} + +$\backslash$end\{center\} +\end{minipage} +\begin{minipage}{0.5\textwidth} + +\begin{figure}[H] + +\begin{center} + +\begin{tikzpicture} + +\rightplanoconcavelens{0}{0}{5}{3}{0.5} + +\end{tikzpicture} + +\end{center} + +\caption{Right plano concave lens} +\end{figure} + +$\backslash$begin\{center\} + +$\backslash$begin\{tikzpicture\} + +$\backslash$rightplanoconcavelens\{0\}\{0\}\{5\}\{3\}\{0.5\} + +$\backslash$end\{tikzpicture\} + +$\backslash$end\{center\} +\end{minipage} +\end{minipage} + +\subsection{Bi Lenses} + +Bi lenses are made of two mirrors facing opposite directions. + +Bi lenses have macros with this format + +$\backslash$bi"convex/concave"lens\{x\}\{y\}\{focal length\}\{mirror height\}\{thickness\} + +\subsubsection{Bi-Convex Lens} + +\begin{figure}[H] + +\begin{center} + +\begin{tikzpicture} + +\biconvexlens{0}{0}{1}{2}{1} + +\end{tikzpicture} + +\end{center} + +\caption{Bi convex lens} +\end{figure} + +$\backslash$begin\{center\} + +$\backslash$begin\{tikzpicture\} + +$\backslash$biconvexlens\{0\}\{0\}\{1\}\{2\}\{1\} + +$\backslash$end\{tikzpicture\} + +$\backslash$end\{center\} + +\subsubsection{Bi-Concave Lens} + +\begin{figure}[H] + +\begin{center} + +\begin{tikzpicture} + +\biconcavelens{0}{0}{1}{3}{5} + +\end{tikzpicture} + +\end{center} + +\caption{Bi concave lens} +\end{figure} + +$\backslash$begin\{center\} + +$\backslash$begin\{tikzpicture\} + +$\backslash$biconcavelens\{0\}\{0\}\{1\}\{3\}\{5\} + +$\backslash$end\{tikzpicture\} + +$\backslash$end\{center\} + +\subsection{Convex-Concave and Concave-Convex Lenses} + +Convex and concave mirrors can be combined to make convex-concave lenses and concave-convex lenses. + +They have macros with the format + +$\backslash$convexconcavelens\{x\}\{y\}\{focal length\}\{mirror height\}\{thickness\} + +$\backslash$concaveconvexlens\{x\}\{y\}\{focal length\}\{mirror height\}\{thickness\} + +\begin{minipage}{\textwidth} +\begin{minipage}{0.5\textwidth} + +\begin{figure}[H] + +\begin{center} + +\begin{tikzpicture} + +\convexconcavelens{0}{0}{2.5}{3}{0.8} + +\end{tikzpicture} + +\end{center} + +\caption{Convex-Concave lens} +\end{figure} + +$\backslash$begin\{center\} + +$\backslash$begin\{tikzpicture\} + +$\backslash$convexconcavelens\{0\}\{0\}\{2.5\}\{3\}\{0.8\} + +$\backslash$end\{tikzpicture\} + +$\backslash$end\{center\} +\end{minipage} +\begin{minipage}{0.5\textwidth} + +\begin{figure}[H] + +\begin{center} + +\begin{tikzpicture} + +\concaveconvexlens{0}{0}{2.5}{3}{0.8} + +\end{tikzpicture} + +\end{center} + +\caption{Concave-Convex lens} +\end{figure} + +$\backslash$begin\{center\} + +$\backslash$begin\{tikzpicture\} + +$\backslash$concaveconvexlens\{0\}\{0\}\{2.5\}\{3\}\{0.8\} + +$\backslash$end\{tikzpicture\} + +$\backslash$end\{center\} +\end{minipage} +\end{minipage} + +\section{Multiple At Once} + +The macros can all be used at the same time to produce diagrams with multiple lenses and/or mirrors. + + +\begin{figure}[H] + +\begin{center} + +\begin{tikzpicture} + +\mirror{1}{0}{2.5}{3} +\convexconcavelens{3}{0}{2.5}{3}{0.7} +\biconvexlens{5}{0}{2.5}{3}{0.5} +\concaveconvexlens{7}{0}{2.5}{3}{0.6} +\biconcavelens{9}{0}{2.5}{3}{1.3} +\leftplanoconvexlens{11}{0}{4}{3}{0.5} +\concaveconvexlens{12}{0}{1}{3}{0.8} +\rightplanoconcavelens{15}{0}{5}{3}{0.8} + +\end{tikzpicture} + +\end{center} + +\caption{Concave-Convex lens} +\end{figure} + +$\backslash$begin\{center\} + +$\backslash$begin\{tikzpicture\} + +$\backslash$mirror\{1\}\{0\}\{2.5\}\{3\} + +$\backslash$convexconcavelens\{3\}\{0\}\{2.5\}\{3\}\{0.7\} + +$\backslash$biconvexlens\{5\}\{0\}\{2.5\}\{3\}\{0.5\} + +$\backslash$concaveconvexlens\{7\}\{0\}\{2.5\}\{3\}\{0.6\} + +$\backslash$biconcavelens\{9\}\{0\}\{2.5\}\{3\}\{1.3\} + +$\backslash$leftplanoconvexlens\{11\}\{0\}\{4\}\{3\}\{0.5\} + +$\backslash$concaveconvexlens\{12\}\{0\}\{1\}\{3\}\{0.8\} + +$\backslash$rightplanoconcavelens\{15\}\{0\}\{5\}\{3\}\{0.8\} + +$\backslash$end\{tikzpicture\} + +$\backslash$end\{center\} + + +\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/tex/latex/simpleoptics/simpleoptics.sty b/Master/texmf-dist/tex/latex/simpleoptics/simpleoptics.sty new file mode 100644 index 00000000000..6d24a6d266f --- /dev/null +++ b/Master/texmf-dist/tex/latex/simpleoptics/simpleoptics.sty @@ -0,0 +1,140 @@ +%%Author: Justin Cawood +%%License: LPPL 1.3c + +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{simpleoptics}[2019/09/05 v1.0.0 Simple Optics Package] +\RequirePackage{tikz} + +%\mirror{x}{y}{focal length}{height} +\newcommand{\mirror}[4]{ + + + \pgfmathsetmacro{\mirrorX}{#1} + \pgfmathsetmacro{\mirrorY}{#2} + + \pgfmathsetmacro{\mirrorRadius}{2*#3} + \pgfmathsetmacro{\mirrorHeight}{\mirrorY + #4} + + \pgfmathsetmacro{\startAngle}{asin(\mirrorHeight/\mirrorRadius)} + + \draw + + (\mirrorX,\mirrorHeight) arc[start angle=180-\startAngle,delta angle=2*\startAngle,radius=\mirrorRadius] + + ; +} + +%\lens{x}{y}{focal length}{height}{thickness} +\newcommand{\lens}[5]{ + + + \pgfmathsetmacro{\lensX}{#1} + \pgfmathsetmacro{\lensY}{#2} + \pgfmathsetmacro{\lensRadius}{2*#3} + \pgfmathsetmacro{\lensHeight}{#4} + \pgfmathsetmacro{\lensThickness}{#5} + + \pgfmathsetmacro{\lensXright}{\lensX +(0.5*\lensThickness)} + \pgfmathsetmacro{\lensXleft}{\lensX-(0.5*\lensThickness)} + + \mirror{\lensXleft}{\lensY}{\lensRadius}{\lensHeight} + \mirror{\lensXright}{\lensY}{-\lensRadius}{\lensHeight} + + \draw + + (\lensXleft,\lensHeight) -- (\lensXright,\lensHeight) + (\lensXright,-\lensHeight) -- (\lensXleft,-\lensHeight) + + ; +} + +%\biconvexlens{x}{y}{focal length}{height}{thickness} +\newcommand{\biconvexlens}[5]{ +\lens{#1}{#2}{#3}{#4}{#5} +} + +%\biconcavelens{x}{y}{focal length}{height}{thickness} +\newcommand{\biconcavelens}[5]{ +\lens{#1}{#2}{-#3}{#4}{#5} +} + +%\concaveconvexlens{x}{y}{focal length}{height}{thickness} +\newcommand{\concaveconvexlens}[5]{ + \pgfmathsetmacro{\lensX}{#1} + \pgfmathsetmacro{\lensY}{#2} + \pgfmathsetmacro{\lensRadius}{-2*#3} + \pgfmathsetmacro{\lensHeight}{#4} + \pgfmathsetmacro{\lensThickness}{#5} + + \pgfmathsetmacro{\lensXright}{\lensX +(0.5*\lensThickness)} + \pgfmathsetmacro{\lensXleft}{\lensX-(0.5*\lensThickness)} + + \mirror{\lensXleft}{\lensY}{\lensRadius}{\lensHeight} + \mirror{\lensXright}{\lensY}{\lensRadius}{\lensHeight} + + \draw + + (\lensXleft,\lensHeight) -- (\lensXright,\lensHeight) + (\lensXright,-\lensHeight) -- (\lensXleft,-\lensHeight) + + ; +} + +%\convexconcavelens{x}{y}{focal length}{height}{thickness} +\newcommand{\convexconcavelens}[5]{ +\concaveconvexlens{#1}{#2}{-#3}{#4}{#5} +} + +%\rightplanoconvexlens{x}{y}{focal length}{height}{thickness} +\newcommand{\rightplanoconvexlens}[5]{ + \pgfmathsetmacro{\lensX}{#1} + \pgfmathsetmacro{\lensY}{#2} + \pgfmathsetmacro{\lensRadius}{2*#3} + \pgfmathsetmacro{\lensHeight}{#4} + \pgfmathsetmacro{\lensThickness}{#5} + + \pgfmathsetmacro{\lensXright}{\lensX +(0.5*\lensThickness)} + \pgfmathsetmacro{\lensXleft}{\lensX-(0.5*\lensThickness)} + + \mirror{\lensXleft}{\lensY}{\lensRadius}{\lensHeight} + + \draw + + (\lensXleft,\lensHeight) -- (\lensXright,\lensHeight) + (\lensXright,-\lensHeight) -- (\lensXleft,-\lensHeight) + (\lensXright,\lensHeight) -- (\lensXright,-\lensHeight) + + ; +} + +%\leftplanoconvexlens{x}{y}{focal length}{height}{thickness} +\newcommand{\leftplanoconvexlens}[5]{ +\pgfmathsetmacro{\lensX}{#1} + \pgfmathsetmacro{\lensY}{#2} + \pgfmathsetmacro{\lensRadius}{2*#3} + \pgfmathsetmacro{\lensHeight}{#4} + \pgfmathsetmacro{\lensThickness}{#5} + + \pgfmathsetmacro{\lensXright}{\lensX +(0.5*\lensThickness)} + \pgfmathsetmacro{\lensXleft}{\lensX-(0.5*\lensThickness)} + + \mirror{\lensXright}{\lensY}{-\lensRadius}{\lensHeight} + + \draw + + (\lensXleft,\lensHeight) -- (\lensXright,\lensHeight) + (\lensXright,-\lensHeight) -- (\lensXleft,-\lensHeight) + (\lensXleft,\lensHeight) -- (\lensXleft,-\lensHeight) + + ; +} + +%\rightplanoconcavelens{x}{y}{focal length}{height}{thickness} +\newcommand{\rightplanoconcavelens}[5]{ +\rightplanoconvexlens{#1}{#2}{-#3}{#4}{#5} +} + +%\leftplanoconcavelens{x}{y}{focal length}{height}{thickness} +\newcommand{\leftplanoconcavelens}[5]{ +\leftplanoconvexlens{#1}{#2}{-#3}{#4}{#5} +}
\ No newline at end of file diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check index f16a8bd3a74..080a2dddf12 100755 --- a/Master/tlpkg/bin/tlpkg-ctan-check +++ b/Master/tlpkg/bin/tlpkg-ctan-check @@ -623,7 +623,8 @@ my @TLP_working = qw( shuffle sidecap sidenotes sides signchart silence simple-resume-cv simple-thesis-dissertation simplecd simplecv - simpleinvoice simplekv simpler-wick simplewick simplified-latex simurgh + simpleinvoice simplekv simpleoptics simpler-wick simplewick + simplified-latex simurgh sitem siunitx skak skaknew skb skdoc skeycommand skeyval skmath skrapport skull slantsc slideshow smalltableof smartdiagram smartref smartunits diff --git a/Master/tlpkg/tlpsrc/collection-pictures.tlpsrc b/Master/tlpkg/tlpsrc/collection-pictures.tlpsrc index 4a83c349faa..23b6f9f5e83 100644 --- a/Master/tlpkg/tlpsrc/collection-pictures.tlpsrc +++ b/Master/tlpkg/tlpsrc/collection-pictures.tlpsrc @@ -131,6 +131,7 @@ depend scsnowman depend scratch depend scratch3 depend setdeck +depend simpleoptics depend signchart depend smartdiagram depend spath3 diff --git a/Master/tlpkg/tlpsrc/simpleoptics.tlpsrc b/Master/tlpkg/tlpsrc/simpleoptics.tlpsrc new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/Master/tlpkg/tlpsrc/simpleoptics.tlpsrc |