# HG changeset patch # User Louis Opter # Date 1490851803 25200 # Node ID 4357ee3d11ed39fc50e1151393f37f1791c2f614 # Parent 153a1aa652dda5d0d21207b2785a43d1c74c0d8a start to work on the slides for while42sf diff -r 153a1aa652dd -r 4357ee3d11ed series --- a/series Sun Feb 12 11:18:57 2017 -0800 +++ b/series Wed Mar 29 22:30:03 2017 -0700 @@ -1,3 +1,5 @@ +update_use_latex.cmake +while42_sf.patch add_power_transition.patch #+future open_gateway_on_any_bulb_response.patch #+future make_gateway_write_callbacks_low_priority.patch #+future diff -r 153a1aa652dd -r 4357ee3d11ed update_use_latex.cmake --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/update_use_latex.cmake Wed Mar 29 22:30:03 2017 -0700 @@ -0,0 +1,627 @@ +# HG changeset patch +# Parent bb7a1425080bc272456650675e5e03896ca21d54 +cmake: update UseLatex.cmake to 2.4.2 + +diff --git a/.hgignore b/.hgignore +--- a/.hgignore ++++ b/.hgignore +@@ -3,3 +3,4 @@ + ^build + ^pcaps + .*\.egg-info$ ++\.DS_Store$ +diff --git a/CMakeScripts/UseLATEX.cmake b/CMakeScripts/UseLATEX.cmake +--- a/CMakeScripts/UseLATEX.cmake ++++ b/CMakeScripts/UseLATEX.cmake +@@ -1,6 +1,6 @@ + # File: UseLATEX.cmake + # CMAKE commands to actually use the LaTeX compiler +-# Version: 2.3.2 ++# Version: 2.4.2 + # Author: Kenneth Moreland + # + # Copyright 2004, 2015 Sandia Corporation. +@@ -61,15 +61,15 @@ + # so all input files are copied from the source directory to the + # output directory. This includes the target tex file, any tex file + # listed with the INPUTS option, the bibliography files listed with +-# the BIBFILES option, and any .cls, .bst, and .clo files found in +-# the current source directory. Images found in the IMAGE_DIRS +-# directories or listed by IMAGES are also copied to the output +-# directory and converted to an appropriate format if necessary. Any +-# tex files also listed with the CONFIGURE option are also processed +-# with the CMake CONFIGURE_FILE command (with the @ONLY flag). Any +-# file listed in CONFIGURE but not the target tex file or listed with +-# INPUTS has no effect. DEPENDS can be used to specify generated files +-# that are needed to compile the latex target. ++# the BIBFILES option, and any .cls, .bst, .clo, .sty, .ist, and .fd ++# files found in the current source directory. Images found in the ++# IMAGE_DIRS directories or listed by IMAGES are also copied to the ++# output directory and converted to an appropriate format if necessary. ++# Any tex files also listed with the CONFIGURE option are also processed ++# with the CMake CONFIGURE_FILE command (with the @ONLY flag). Any file ++# listed in CONFIGURE but not the target tex file or listed with INPUTS ++# has no effect. DEPENDS can be used to specify generated files that are ++# needed to compile the latex target. + # + # The following targets are made. The name prefix is based off of the + # base name of the tex file unless TARGET_NAME is specified. If +@@ -115,6 +115,37 @@ + # + # History: + # ++# 2.4.2 Fix an issue where new versions of ImageMagick expect the order of ++# options in command line execution of magick/convert. (See, for ++# example, http://www.imagemagick.org/Usage/basics/#why.) ++# ++# 2.4.1 Add ability to dump LaTeX log file when using batch mode. Batch ++# mode suppresses most output, often including error messages. To ++# make sure critical error messages get displayed, show the full log ++# on failures. ++# ++# 2.4.0 Remove "-r 600" from the default PDFTOPS_CONVERTER_FLAGS. The -r flag ++# is available from the Poppler version of pdftops, but not the Xpdf ++# version. ++# ++# Fix an issue with the flags for the different programs not being ++# properly separated. ++# ++# Fix an issue on windows where the = character is not allowed for ++# ps2pdf arguments. ++# ++# Change default arguments for latex and pdflatex commands. Makes the ++# output more quiet and prints out the file/line where errors occur. ++# (Thanks to Nikos Koukis.) ++# ++# After a LaTeX build, check the log file for warnings that are ++# indicative of problems with the build. ++# ++# Remove support for latex2html. Instead, use the htlatex program. ++# This is now part of TeX Live and most other distributions. It also ++# behaves much more like the other LaTeX programs. Also fixed some ++# nasty issues with the htlatex arguments. ++# + # 2.3.2 Declare LaTeX input files as sources for targets so that they show + # up in IDEs like QtCreator. + # +@@ -374,6 +405,36 @@ + ############################################################################# + # Functions that perform processing during a LaTeX build. + ############################################################################# ++function(latex_execute_latex) ++ if(NOT LATEX_TARGET) ++ message(SEND_ERROR "Need to define LATEX_TARGET") ++ endif() ++ ++ if(NOT LATEX_WORKING_DIRECTORY) ++ message(SEND_ERROR "Need to define LATEX_WORKING_DIRECTORY") ++ endif() ++ ++ if(NOT LATEX_FULL_COMMAND) ++ message(SEND_ERROR "Need to define LATEX_FULL_COMMAND") ++ endif() ++ ++ set(full_command_original "${LATEX_FULL_COMMAND}") ++ separate_arguments(LATEX_FULL_COMMAND) ++ execute_process( ++ COMMAND ${LATEX_FULL_COMMAND} ++ WORKING_DIRECTORY ${LATEX_WORKING_DIRECTORY} ++ RESULT_VARIABLE execute_result ++ ) ++ ++ if(NOT ${execute_result} EQUAL 0) ++ message("LaTeX command failed") ++ message("${full_command_original}") ++ message("Log output:") ++ file(READ ${LATEX_WORKING_DIRECTORY}/${LATEX_TARGET}.log log_output) ++ message(FATAL_ERROR "${log_output}") ++ endif() ++endfunction(latex_execute_latex) ++ + function(latex_makeglossaries) + # This is really a bare bones port of the makeglossaries perl script into + # CMake scripting. +@@ -492,10 +553,10 @@ + set(codepage_flags "") + endif() + +- message("${XINDY_COMPILER} ${MAKEGLOSSARIES_COMPILER_FLAGS} ${language_flags} ${codepage_flags} -I xindy -M ${glossary_name} -t ${glossary_log} -o ${glossary_out} ${glossary_in}" ++ message("${XINDY_COMPILER} ${MAKEGLOSSARIES_COMPILER_ARGS} ${language_flags} ${codepage_flags} -I xindy -M ${glossary_name} -t ${glossary_log} -o ${glossary_out} ${glossary_in}" + ) + exec_program(${XINDY_COMPILER} +- ARGS ${MAKEGLOSSARIES_COMPILER_FLAGS} ++ ARGS ${MAKEGLOSSARIES_COMPILER_ARGS} + ${language_flags} + ${codepage_flags} + -I xindy +@@ -514,7 +575,7 @@ + if("${xindy_output}" MATCHES "^Cannot locate xindy module for language (.+) in codepage (.+)\\.$") + message("*************** Retrying xindy with default codepage.") + exec_program(${XINDY_COMPILER} +- ARGS ${MAKEGLOSSARIES_COMPILER_FLAGS} ++ ARGS ${MAKEGLOSSARIES_COMPILER_ARGS} + ${language_flags} + -I xindy + -M ${glossary_name} +@@ -525,8 +586,8 @@ + endif() + + else() +- message("${MAKEINDEX_COMPILER} ${MAKEGLOSSARIES_COMPILER_FLAGS} -s ${istfile} -t ${glossary_log} -o ${glossary_out} ${glossary_in}") +- exec_program(${MAKEINDEX_COMPILER} ARGS ${MAKEGLOSSARIES_COMPILER_FLAGS} ++ message("${MAKEINDEX_COMPILER} ${MAKEGLOSSARIES_COMPILER_ARGS} -s ${istfile} -t ${glossary_log} -o ${glossary_out} ${glossary_in}") ++ exec_program(${MAKEINDEX_COMPILER} ARGS ${MAKEGLOSSARIES_COMPILER_ARGS} + -s ${istfile} -t ${glossary_log} -o ${glossary_out} ${glossary_in} + ) + endif() +@@ -547,7 +608,7 @@ + set(nomencl_out ${LATEX_TARGET}.nls) + set(nomencl_in ${LATEX_TARGET}.nlo) + +- exec_program(${MAKEINDEX_COMPILER} ARGS ${MAKENOMENCLATURE_COMPILER_FLAGS} ++ exec_program(${MAKEINDEX_COMPILER} ARGS ${MAKENOMENCLATURE_COMPILER_ARGS} + ${nomencl_in} -s "nomencl.ist" -o ${nomencl_out} + ) + endfunction(latex_makenomenclature) +@@ -610,6 +671,49 @@ + + endfunction(latex_correct_synctex) + ++function(latex_check_important_warnings) ++ set(log_file ${LATEX_TARGET}.log) ++ ++ message("\nChecking ${log_file} for important warnings.") ++ if(NOT LATEX_TARGET) ++ message(SEND_ERROR "Need to define LATEX_TARGET") ++ endif() ++ ++ if(NOT EXISTS ${log_file}) ++ message("Could not find log file: ${log_file}") ++ return() ++ endif() ++ ++ set(found_error) ++ ++ # Check for undefined references ++ file(STRINGS ${log_file} reference_warnings REGEX "Reference.*undefined") ++ if(reference_warnings) ++ set(found_error TRUE) ++ message("\nFound missing reference warnings.") ++ foreach(warning ${reference_warnings}) ++ message("${warning}") ++ endforeach(warning) ++ endif() ++ ++ # Check for overfull ++ file(STRINGS ${log_file} overfull_warnings REGEX "^Overfull") ++ if(overfull_warnings) ++ set(found_error TRUE) ++ message("\nFound overfull warnings. These are indicative of layout errors.") ++ foreach(warning ${overfull_warnings}) ++ message("${warning}") ++ endforeach(warning) ++ endif() ++ ++ if(found_error) ++ latex_get_filename_component(log_file_path ${log_file} ABSOLUTE) ++ message("\nConsult ${log_file_path} for more information on LaTeX build.") ++ else() ++ message("No known important warnings found.") ++ endif(found_error) ++endfunction(latex_check_important_warnings) ++ + ############################################################################# + # Helper functions for establishing LaTeX build. + ############################################################################# +@@ -645,6 +749,12 @@ + DOC "The pdf to ps converter program from the Poppler package." + ) + ++ find_program(HTLATEX_COMPILER ++ NAMES htlatex ++ PATHS ${MIKTEX_BINARY_PATH} ++ /usr/bin ++ ) ++ + mark_as_advanced( + LATEX_COMPILER + PDFLATEX_COMPILER +@@ -656,38 +766,31 @@ + PS2PDF_CONVERTER + PDFTOPS_CONVERTER + LATEX2HTML_CONVERTER ++ HTLATEX_COMPILER + ) + + latex_needit(LATEX_COMPILER latex) + latex_wantit(PDFLATEX_COMPILER pdflatex) ++ latex_wantit(HTLATEX_COMPILER htlatex) + latex_needit(BIBTEX_COMPILER bibtex) + latex_wantit(BIBER_COMPILER biber) + latex_needit(MAKEINDEX_COMPILER makeindex) + latex_wantit(DVIPS_CONVERTER dvips) + latex_wantit(PS2PDF_CONVERTER ps2pdf) + latex_wantit(PDFTOPS_CONVERTER pdftops) +- # MiKTeX calls latex2html htlatex +- if(NOT ${LATEX2HTML_CONVERTER}) +- find_program(HTLATEX_CONVERTER +- NAMES htlatex +- PATHS ${MIKTEX_BINARY_PATH} +- /usr/bin +- ) +- mark_as_advanced(HTLATEX_CONVERTER) +- if(HTLATEX_CONVERTER) +- set(USING_HTLATEX TRUE CACHE INTERNAL "True when using MiKTeX htlatex instead of latex2html" FORCE) +- set(LATEX2HTML_CONVERTER ${HTLATEX_CONVERTER} +- CACHE FILEPATH "htlatex taking the place of latex2html" FORCE) +- else() +- set(USING_HTLATEX FALSE CACHE INTERNAL "True when using MiKTeX htlatex instead of latex2html" FORCE) +- endif() +- endif() +- latex_wantit(LATEX2HTML_CONVERTER latex2html) + +- set(LATEX_COMPILER_FLAGS "-interaction=nonstopmode" ++ set(LATEX_COMPILER_FLAGS "-interaction=batchmode -file-line-error" + CACHE STRING "Flags passed to latex.") + set(PDFLATEX_COMPILER_FLAGS ${LATEX_COMPILER_FLAGS} + CACHE STRING "Flags passed to pdflatex.") ++ set(HTLATEX_COMPILER_TEX4HT_FLAGS "html" ++ CACHE STRING "Options for the tex4ht.sty and *.4ht style files.") ++ set(HTLATEX_COMPILER_TEX4HT_POSTPROCESSOR_FLAGS "" ++ CACHE STRING "Options for the text4ht postprocessor.") ++ set(HTLATEX_COMPILER_T4HT_POSTPROCESSOR_FLAGS "" ++ CACHE STRING "Options for the t4ht postprocessor.") ++ set(HTLATEX_COMPILER_LATEX_FLAGS ${LATEX_COMPILER_FLAGS} ++ CACHE STRING "Flags passed from htlatex to the LaTeX compiler.") + set(LATEX_SYNCTEX_FLAGS "-synctex=1" + CACHE STRING "latex/pdflatex flags used to create synctex file.") + set(BIBTEX_COMPILER_FLAGS "" +@@ -702,15 +805,26 @@ + CACHE STRING "Flags passed to makenomenclature.") + set(DVIPS_CONVERTER_FLAGS "-Ppdf -G0 -t letter" + CACHE STRING "Flags passed to dvips.") +- set(PS2PDF_CONVERTER_FLAGS "-dMaxSubsetPct=100 -dCompatibilityLevel=1.3 -dSubsetFonts=true -dEmbedAllFonts=true -dAutoFilterColorImages=false -dAutoFilterGrayImages=false -dColorImageFilter=/FlateEncode -dGrayImageFilter=/FlateEncode -dMonoImageFilter=/FlateEncode" +- CACHE STRING "Flags passed to ps2pdf.") +- set(PDFTOPS_CONVERTER_FLAGS -r 600 ++ if(NOT WIN32) ++ set(PS2PDF_CONVERTER_FLAGS "-dMaxSubsetPct=100 -dCompatibilityLevel=1.3 -dSubsetFonts=true -dEmbedAllFonts=true -dAutoFilterColorImages=false -dAutoFilterGrayImages=false -dColorImageFilter=/FlateEncode -dGrayImageFilter=/FlateEncode -dMonoImageFilter=/FlateEncode" ++ CACHE STRING "Flags passed to ps2pdf.") ++ else() ++ # Most windows ports of ghostscript utilities use .bat files for ps2pdf ++ # commands. bat scripts interpret "=" as a special character and separate ++ # those arguments. To get around this, the ghostscript utilities also ++ # support using "#" in place of "=". ++ set(PS2PDF_CONVERTER_FLAGS "-dMaxSubsetPct#100 -dCompatibilityLevel#1.3 -dSubsetFonts#true -dEmbedAllFonts#true -dAutoFilterColorImages#false -dAutoFilterGrayImages#false -dColorImageFilter#/FlateEncode -dGrayImageFilter#/FlateEncode -dMonoImageFilter#/FlateEncode" ++ CACHE STRING "Flags passed to ps2pdf.") ++ endif() ++ set(PDFTOPS_CONVERTER_FLAGS "" + CACHE STRING "Flags passed to pdftops.") +- set(LATEX2HTML_CONVERTER_FLAGS "" +- CACHE STRING "Flags passed to latex2html.") + mark_as_advanced( + LATEX_COMPILER_FLAGS + PDFLATEX_COMPILER_FLAGS ++ HTLATEX_COMPILER_TEX4HT_FLAGS ++ HTLATEX_COMPILER_TEX4HT_POSTPROCESSOR_FLAGS ++ HTLATEX_COMPILER_T4HT_POSTPROCESSOR_FLAGS ++ HTLATEX_COMPILER_LATEX_FLAGS + LATEX_SYNCTEX_FLAGS + BIBTEX_COMPILER_FLAGS + BIBER_COMPILER_FLAGS +@@ -720,10 +834,17 @@ + DVIPS_CONVERTER_FLAGS + PS2PDF_CONVERTER_FLAGS + PDFTOPS_CONVERTER_FLAGS +- LATEX2HTML_CONVERTER_FLAGS + ) ++ ++ # Because it is easier to type, the flags variables are entered as ++ # space-separated strings much like you would in a shell. However, when ++ # using a CMake command to execute a program, it works better to hold the ++ # arguments in semicolon-separated lists (otherwise the whole string will ++ # be interpreted as a single argument). Use the separate_arguments to ++ # convert the space-separated strings to semicolon-separated lists. + separate_arguments(LATEX_COMPILER_FLAGS) + separate_arguments(PDFLATEX_COMPILER_FLAGS) ++ separate_arguments(HTLATEX_COMPILER_LATEX_FLAGS) + separate_arguments(LATEX_SYNCTEX_FLAGS) + separate_arguments(BIBTEX_COMPILER_FLAGS) + separate_arguments(BIBER_COMPILER_FLAGS) +@@ -733,7 +854,24 @@ + separate_arguments(DVIPS_CONVERTER_FLAGS) + separate_arguments(PS2PDF_CONVERTER_FLAGS) + separate_arguments(PDFTOPS_CONVERTER_FLAGS) +- separate_arguments(LATEX2HTML_CONVERTER_FLAGS) ++ ++ # Not quite done. When you call separate_arguments on a cache variable, ++ # the result is written to a local variable. That local variable goes ++ # away when this function returns (which is before any of them are used). ++ # So, copy these variables with local scope to cache variables with ++ # global scope. ++ set(LATEX_COMPILER_ARGS "${LATEX_COMPILER_FLAGS}" CACHE INTERNAL "") ++ set(PDFLATEX_COMPILER_ARGS "${PDFLATEX_COMPILER_FLAGS}" CACHE INTERNAL "") ++ set(HTLATEX_COMPILER_ARGS "${HTLATEX_COMPILER_LATEX_FLAGS}" CACHE INTERNAL "") ++ set(LATEX_SYNCTEX_ARGS "${LATEX_SYNCTEX_FLAGS}" CACHE INTERNAL "") ++ set(BIBTEX_COMPILER_ARGS "${BIBTEX_COMPILER_FLAGS}" CACHE INTERNAL "") ++ set(BIBER_COMPILER_ARGS "${BIBER_COMPILER_FLAGS}" CACHE INTERNAL "") ++ set(MAKEINDEX_COMPILER_ARGS "${MAKEINDEX_COMPILER_FLAGS}" CACHE INTERNAL "") ++ set(MAKEGLOSSARIES_COMPILER_ARGS "${MAKEGLOSSARIES_COMPILER_FLAGS}" CACHE INTERNAL "") ++ set(MAKENOMENCLATURE_COMPILER_ARGS "${MAKENOMENCLATURE_COMPILER_FLAGS}" CACHE INTERNAL "") ++ set(DVIPS_CONVERTER_ARGS "${DVIPS_CONVERTER_FLAGS}" CACHE INTERNAL "") ++ set(PS2PDF_CONVERTER_ARGS "${PS2PDF_CONVERTER_FLAGS}" CACHE INTERNAL "") ++ set(PDFTOPS_CONVERTER_ARGS "${PDFTOPS_CONVERTER_FLAGS}" CACHE INTERNAL "") + + find_program(IMAGEMAGICK_CONVERT + NAMES magick convert +@@ -875,7 +1013,7 @@ + if(PS2PDF_CONVERTER) + set(require_imagemagick_convert FALSE) + set(converter ${PS2PDF_CONVERTER}) +- set(convert_flags -dEPSCrop ${PS2PDF_CONVERTER_FLAGS}) ++ set(convert_flags -dEPSCrop ${PS2PDF_CONVERTER_ARGS}) + else() + message(SEND_ERROR "Using postscript files with pdflatex requires ps2pdf for conversion.") + endif() +@@ -886,7 +1024,7 @@ + if(PDFTOPS_CONVERTER) + set(require_imagemagick_convert FALSE) + set(converter ${PDFTOPS_CONVERTER}) +- set(convert_flags -eps ${PDFTOPS_CONVERTER_FLAGS}) ++ set(convert_flags -eps ${PDFTOPS_CONVERTER_ARGS}) + else() + message(STATUS "Consider getting pdftops from Poppler to convert PDF images to EPS images.") + set(convert_flags ${flags}) +@@ -902,17 +1040,24 @@ + message(SEND_ERROR "IMAGEMAGICK_CONVERT set to Window's convert.exe for changing file systems rather than ImageMagick's convert for changing image formats. Please make sure ImageMagick is installed (available at http://www.imagemagick.org). If you have a recent version of ImageMagick (7.0 or higher), use the magick program instead of convert for IMAGEMAGICK_CONVERT.") + else() + set(converter ${IMAGEMAGICK_CONVERT}) ++ # ImageMagick requires a special order of arguments where resize and ++ # arguments of that nature must be placed after the input image path. ++ add_custom_command(OUTPUT ${output_path} ++ COMMAND ${converter} ++ ARGS ${input_path} ${convert_flags} ${output_path} ++ DEPENDS ${input_path} ++ ) + endif() + else() + message(SEND_ERROR "Could not find convert program. Please download ImageMagick from http://www.imagemagick.org and install.") + endif() ++ else() # Not ImageMagick convert ++ add_custom_command(OUTPUT ${output_path} ++ COMMAND ${converter} ++ ARGS ${convert_flags} ${input_path} ${output_path} ++ DEPENDS ${input_path} ++ ) + endif() +- +- add_custom_command(OUTPUT ${output_path} +- COMMAND ${converter} +- ARGS ${convert_flags} ${input_path} ${output_path} +- DEPENDS ${input_path} +- ) + endfunction(latex_add_convert_command) + + # Makes custom commands to convert a file to a particular type. +@@ -1157,18 +1302,42 @@ + + function(add_latex_targets_internal) + if(LATEX_USE_SYNCTEX) +- set(synctex_flags ${LATEX_SYNCTEX_FLAGS}) ++ set(synctex_flags ${LATEX_SYNCTEX_ARGS}) + else() + set(synctex_flags) + endif() + + # The commands to run LaTeX. They are repeated multiple times. + set(latex_build_command +- ${LATEX_COMPILER} ${LATEX_COMPILER_FLAGS} ${synctex_flags} ${LATEX_MAIN_INPUT} ++ ${LATEX_COMPILER} ${LATEX_COMPILER_ARGS} ${synctex_flags} ${LATEX_MAIN_INPUT} + ) ++ if(LATEX_COMPILER_ARGS MATCHES ".*batchmode.*") ++ # Wrap command in script that dumps the log file on error. This makes sure ++ # errors can be seen. ++ set(latex_build_command ++ ${CMAKE_COMMAND} ++ -D LATEX_BUILD_COMMAND=execute_latex ++ -D LATEX_TARGET=${LATEX_TARGET} ++ -D LATEX_WORKING_DIRECTORY="${output_dir}" ++ -D LATEX_FULL_COMMAND="${latex_build_command}" ++ -P "${LATEX_USE_LATEX_LOCATION}" ++ ) ++ endif() + set(pdflatex_build_command +- ${PDFLATEX_COMPILER} ${PDFLATEX_COMPILER_FLAGS} ${synctex_flags} ${LATEX_MAIN_INPUT} ++ ${PDFLATEX_COMPILER} ${PDFLATEX_COMPILER_ARGS} ${synctex_flags} ${LATEX_MAIN_INPUT} + ) ++ if(PDFLATEX_COMPILER_ARGS MATCHES ".*batchmode.*") ++ # Wrap command in script that dumps the log file on error. This makes sure ++ # errors can be seen. ++ set(pdflatex_build_command ++ ${CMAKE_COMMAND} ++ -D LATEX_BUILD_COMMAND=execute_latex ++ -D LATEX_TARGET=${LATEX_TARGET} ++ -D LATEX_WORKING_DIRECTORY="${output_dir}" ++ -D LATEX_FULL_COMMAND="${pdflatex_build_command}" ++ -P "${LATEX_USE_LATEX_LOCATION}" ++ ) ++ endif() + + if(NOT LATEX_TARGET_NAME) + set(LATEX_TARGET_NAME ${LATEX_TARGET}) +@@ -1267,7 +1436,7 @@ + -D LATEX_TARGET=${LATEX_TARGET} + -D MAKEINDEX_COMPILER=${MAKEINDEX_COMPILER} + -D XINDY_COMPILER=${XINDY_COMPILER} +- -D MAKEGLOSSARIES_COMPILER_FLAGS=${MAKEGLOSSARIES_COMPILER_FLAGS} ++ -D MAKEGLOSSARIES_COMPILER_ARGS=${MAKEGLOSSARIES_COMPILER_ARGS} + -P ${LATEX_USE_LATEX_LOCATION} + COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} + ${latex_build_command} +@@ -1279,7 +1448,7 @@ + -D LATEX_TARGET=${LATEX_TARGET} + -D MAKEINDEX_COMPILER=${MAKEINDEX_COMPILER} + -D XINDY_COMPILER=${XINDY_COMPILER} +- -D MAKEGLOSSARIES_COMPILER_FLAGS=${MAKEGLOSSARIES_COMPILER_FLAGS} ++ -D MAKEGLOSSARIES_COMPILER_ARGS=${MAKEGLOSSARIES_COMPILER_ARGS} + -P ${LATEX_USE_LATEX_LOCATION} + COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} + ${pdflatex_build_command} +@@ -1295,7 +1464,7 @@ + -D LATEX_BUILD_COMMAND=makenomenclature + -D LATEX_TARGET=${LATEX_TARGET} + -D MAKEINDEX_COMPILER=${MAKEINDEX_COMPILER} +- -D MAKENOMENCLATURE_COMPILER_FLAGS=${MAKENOMENCLATURE_COMPILER_FLAGS} ++ -D MAKENOMENCLATURE_COMPILER_ARGS=${MAKENOMENCLATURE_COMPILER_ARGS} + -P ${LATEX_USE_LATEX_LOCATION} + COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} + ${latex_build_command} +@@ -1306,7 +1475,7 @@ + -D LATEX_BUILD_COMMAND=makenomenclature + -D LATEX_TARGET=${LATEX_TARGET} + -D MAKEINDEX_COMPILER=${MAKEINDEX_COMPILER} +- -D MAKENOMENCLATURE_COMPILER_FLAGS=${MAKENOMENCLATURE_COMPILER_FLAGS} ++ -D MAKENOMENCLATURE_COMPILER_ARGS=${MAKENOMENCLATURE_COMPILER_ARGS} + -P ${LATEX_USE_LATEX_LOCATION} + COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} + ${pdflatex_build_command} +@@ -1317,13 +1486,13 @@ + if(LATEX_BIBFILES) + if(LATEX_USE_BIBLATEX) + if(NOT BIBER_COMPILER) +- message(SEND_ERROR "I need the biber command.") ++ message(SEND_ERROR "I need the biber command.") + endif() + set(bib_compiler ${BIBER_COMPILER}) +- set(bib_compiler_flags ${BIBER_COMPILER_FLAGS}) ++ set(bib_compiler_flags ${BIBER_COMPILER_ARGS}) + else() + set(bib_compiler ${BIBTEX_COMPILER}) +- set(bib_compiler_flags ${BIBTEX_COMPILER_FLAGS}) ++ set(bib_compiler_flags ${BIBTEX_COMPILER_ARGS}) + endif() + if(LATEX_MULTIBIB_NEWCITES) + foreach (multibib_auxfile ${LATEX_MULTIBIB_NEWCITES}) +@@ -1367,12 +1536,12 @@ + COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} + ${latex_build_command} + COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} +- ${MAKEINDEX_COMPILER} ${MAKEINDEX_COMPILER_FLAGS} ${idx_name}.idx) ++ ${MAKEINDEX_COMPILER} ${MAKEINDEX_COMPILER_ARGS} ${idx_name}.idx) + set(make_pdf_command ${make_pdf_command} + COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} + ${pdflatex_build_command} + COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} +- ${MAKEINDEX_COMPILER} ${MAKEINDEX_COMPILER_FLAGS} ${idx_name}.idx) ++ ${MAKEINDEX_COMPILER} ${MAKEINDEX_COMPILER_ARGS} ${idx_name}.idx) + set(auxiliary_clean_files ${auxiliary_clean_files} + ${output_dir}/${idx_name}.idx + ${output_dir}/${idx_name}.ilg +@@ -1430,6 +1599,22 @@ + ) + endif() + ++ # Check LaTeX output for important warnings at end of build ++ set(make_dvi_command ${make_dvi_command} ++ COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} ++ ${CMAKE_COMMAND} ++ -D LATEX_BUILD_COMMAND=check_important_warnings ++ -D LATEX_TARGET=${LATEX_TARGET} ++ -P ${LATEX_USE_LATEX_LOCATION} ++ ) ++ set(make_pdf_command ${make_pdf_command} ++ COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} ++ ${CMAKE_COMMAND} ++ -D LATEX_BUILD_COMMAND=check_important_warnings ++ -D LATEX_TARGET=${LATEX_TARGET} ++ -P ${LATEX_USE_LATEX_LOCATION} ++ ) ++ + # Capture the default build. + string(TOLOWER "${LATEX_DEFAULT_BUILD}" default_build) + +@@ -1483,7 +1668,7 @@ + if(DVIPS_CONVERTER) + add_custom_command(OUTPUT ${output_dir}/${LATEX_TARGET}.ps + COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} +- ${DVIPS_CONVERTER} ${DVIPS_CONVERTER_FLAGS} -o ${LATEX_TARGET}.ps ${LATEX_TARGET}.dvi ++ ${DVIPS_CONVERTER} ${DVIPS_CONVERTER_ARGS} -o ${LATEX_TARGET}.ps ${LATEX_TARGET}.dvi + DEPENDS ${output_dir}/${LATEX_TARGET}.dvi) + add_custom_target(${ps_target} + DEPENDS ${output_dir}/${LATEX_TARGET}.ps +@@ -1498,7 +1683,7 @@ + # simply force a recompile every time. + add_custom_target(${safepdf_target} + ${CMAKE_COMMAND} -E chdir ${output_dir} +- ${PS2PDF_CONVERTER} ${PS2PDF_CONVERTER_FLAGS} ${LATEX_TARGET}.ps ${LATEX_TARGET}.pdf ++ ${PS2PDF_CONVERTER} ${PS2PDF_CONVERTER_ARGS} ${LATEX_TARGET}.ps ${LATEX_TARGET}.pdf + DEPENDS ${ps_target} + ) + if(NOT LATEX_EXCLUDE_FROM_DEFAULTS) +@@ -1513,10 +1698,10 @@ + set(default_build html) + endif() + +- if(LATEX2HTML_CONVERTER AND LATEX_MAIN_INPUT_SUBDIR) ++ if(HTLATEX_COMPILER AND LATEX_MAIN_INPUT_SUBDIR) + message(STATUS +- "Disabling HTML build for ${LATEX_TARGET_NAME}.tex because the main file is in subdirectory ${LATEX_MAIN_INPUT_SUBDIR}" +- ) ++ "Disabling HTML build for ${LATEX_TARGET_NAME}.tex because the main file is in subdirectory ${LATEX_MAIN_INPUT_SUBDIR}" ++ ) + # The code below to run HTML assumes that LATEX_TARGET.tex is in the + # current directory. I have tried to specify that LATEX_TARGET.tex is + # in a subdirectory. That makes the build targets correct, but the +@@ -1524,17 +1709,20 @@ + # generated where expected. I am getting around the problem by simply + # disabling HTML in this case. If someone really cares, they can fix + # this, but make sure it runs on many platforms and build programs. +- elseif(LATEX2HTML_CONVERTER) +- if(USING_HTLATEX) +- # htlatex places the output in a different location +- set(HTML_OUTPUT "${output_dir}/${LATEX_TARGET}.html") +- else() +- set(HTML_OUTPUT "${output_dir}/${LATEX_TARGET}/${LATEX_TARGET}.html") +- endif() ++ elseif(HTLATEX_COMPILER) ++ # htlatex places the output in a different location ++ set(HTML_OUTPUT "${output_dir}/${LATEX_TARGET}.html") + add_custom_command(OUTPUT ${HTML_OUTPUT} + COMMAND ${CMAKE_COMMAND} -E chdir ${output_dir} +- ${LATEX2HTML_CONVERTER} ${LATEX2HTML_CONVERTER_FLAGS} ${LATEX_MAIN_INPUT} +- DEPENDS ${output_dir}/${LATEX_TARGET}.tex ++ ${HTLATEX_COMPILER} ${LATEX_MAIN_INPUT} ++ "${HTLATEX_COMPILER_TEX4HT_FLAGS}" ++ "${HTLATEX_COMPILER_TEX4HT_POSTPROCESSOR_FLAGS}" ++ "${HTLATEX_COMPILER_T4HT_POSTPROCESSOR_FLAGS}" ++ ${HTLATEX_COMPILER_ARGS} ++ DEPENDS ++ ${output_dir}/${LATEX_TARGET}.tex ++ ${output_dir}/${LATEX_TARGET}.dvi ++ VERBATIM + ) + add_custom_target(${html_target} + DEPENDS ${HTML_OUTPUT} ${dvi_target} +@@ -1616,6 +1804,11 @@ + if(LATEX_BUILD_COMMAND) + set(command_handled) + ++ if("${LATEX_BUILD_COMMAND}" STREQUAL execute_latex) ++ latex_execute_latex() ++ set(command_handled TRUE) ++ endif() ++ + if("${LATEX_BUILD_COMMAND}" STREQUAL makeglossaries) + latex_makeglossaries() + set(command_handled TRUE) +@@ -1631,6 +1824,11 @@ + set(command_handled TRUE) + endif() + ++ if("${LATEX_BUILD_COMMAND}" STREQUAL check_important_warnings) ++ latex_check_important_warnings() ++ set(command_handled TRUE) ++ endif() ++ + if(NOT command_handled) + message(SEND_ERROR "Unknown command: ${LATEX_BUILD_COMMAND}") + endif() diff -r 153a1aa652dd -r 4357ee3d11ed while42_sf.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/while42_sf.patch Wed Mar 29 22:30:03 2017 -0700 @@ -0,0 +1,941 @@ +# HG changeset patch +# Parent 72024b8586ab857434155a2f8a3f14bd9571646a +slides: add slides for a small talk at while42 sf + +diff --git a/slides/fosdem_2017/CMakeLists.txt b/slides/2017-02-04_fosdem/CMakeLists.txt +rename from slides/fosdem_2017/CMakeLists.txt +rename to slides/2017-02-04_fosdem/CMakeLists.txt +--- a/slides/fosdem_2017/CMakeLists.txt ++++ b/slides/2017-02-04_fosdem/CMakeLists.txt +@@ -1,1 +1,3 @@ ++LIGHTSD_COPY_COMMON_LATEX() ++ + ADD_LATEX_DOCUMENT(fosdem_2017.tex) +diff --git a/slides/fosdem_2017/fosdem_2017.pdf b/slides/2017-02-04_fosdem/fosdem_2017.pdf +rename from slides/fosdem_2017/fosdem_2017.pdf +rename to slides/2017-02-04_fosdem/fosdem_2017.pdf +diff --git a/slides/fosdem_2017/fosdem_2017.tex b/slides/2017-02-04_fosdem/fosdem_2017.tex +rename from slides/fosdem_2017/fosdem_2017.tex +rename to slides/2017-02-04_fosdem/fosdem_2017.tex +--- a/slides/fosdem_2017/fosdem_2017.tex ++++ b/slides/2017-02-04_fosdem/fosdem_2017.tex +@@ -1,41 +1,16 @@ +-\documentclass[utf8x,xcolor={usenames,svgnames}]{beamer} ++\documentclass{lgtdslides} + + \usepackage{tikz} + \usepackage{tikzsymbols} +-\usepackage{lmodern} +-\usepackage{arev} +-\usepackage{tgbonum} +-\usepackage{inconsolata} +-\usepackage[T1]{fontenc} + \usepackage[american]{babel} +-\usepackage[fixlanguage]{babelbib} + +-\useoutertheme{infolines} +-\setbeamertemplate{navigation symbols}{} +-\setbeamertemplate{bibliography item}[text] +-\setbeamerfont{footnote}{size=\tiny} +- +-\usetikzlibrary{% +- calc, +- decorations.pathreplacing, +- decorations.pathmorphing, +- shapes, +- positioning +-} ++\usepackage{lgtdfigs} + + \title{Playing with the lights} + \subtitle{\textit{Control WiFi-enabled LIFX light bulbs}} + \date{Fosdem 2017, IoT track} + \author{Louis Opter } + +-% butts: +-\tikzset{mbuttoff/.style={color=gray,rounded corners=1pt}} +-\tikzset{mbuttvlow/.style={color=orange!20!gray,rounded corners=1pt}} +-\tikzset{mbuttlow/.style={color=orange!35!gray,rounded corners=1pt}} +-\tikzset{mbuttmed/.style={color=orange!50!gray,rounded corners=1pt}} +-\tikzset{mbutthigh/.style={color=orange!80!gray,rounded corners=1pt}} +-\tikzset{mbutton/.style={fill,color=orange!95!white,rounded corners=1pt}} +- + \tikzset{bubble/.style={fill,opacity=0.7,rounded corners=2pt}} + \tikzset{arrow/.style={->, >=stealth,ultra thick,rounded corners}} + \tikzset{controlpt/.style={opacity=0}} +@@ -43,17 +18,6 @@ + \tikzset{wifipath/.style={thick,opacity=0.8,decorate,decoration={name=expanding waves,angle=25,segment length=3.5}}} + \tikzset{box/.style={draw,ultra thick, color=BeamerBlue, text=black, rectangle, rounded corners=1pt}} + +-\tikzset{screw/.style={decoration={name=snake,amplitude=0.1mm,segment length=0.6mm}}} +- +-\colorlet{plate}{Gainsboro} +-\colorlet{case}{Sienna} +-\colorlet{fgcolor}{White} +-\definecolor{BeamerBlue}{RGB}{49,56,172} +- +-\colorlet{BodyColor}{Grey!90!black} +-\colorlet{SocketColor}{Silver!90!black} +-\colorlet{LightColor}{LightSlateBlue} +- + \begin{document} + + \begin{frame}\titlepage\end{frame} +@@ -102,176 +66,14 @@ + \node[box] (monolight) at (3.5,0.75) {monolight}; + \node[box] (lightsd) at (0.5,-2) {lightsd}; + \draw[ultra thick] (-1.46, 1.5) -| (monolight); +-\node (monome) at (-3.5,1.5) {\begin{tikzpicture}[scale=0.5] +-\coordinate (NW) at (-4, 1.75); +-\coordinate (SE) at (3.86, -2.11); +- +-\fill[color=case,rounded corners=2pt] ($(NW) + (-0.18,0.18)$) rectangle ($(SE) + (0.18,-0.18)$); +-\fill[color=plate,rounded corners=2pt] ($(NW) + (-0.10,0.10)$) rectangle ($(SE) + (0.10,-0.10)$); +- +-\foreach \x in {-4,-3.5,...,3.5} +-\foreach \y in {1.75,1.25,...,-1.75} +-\fill[mbuttoff] (\x, \y) rectangle +(0.36, -0.36); ++\node (monome) at (-3.5,1.5) {\begin{tikzpicture} ++\pic (0, 0) {monome={scale 0.5}}; + \end{tikzpicture}}; +-\node (bulbh) at (-4.2,-1.1) {% +-\colorlet{LightColor}{LightSlateBlue} +-\begin{tikzpicture}[scale=0.19,rotate=90] +-% main body +-\fill[color=BodyColor] +- (-28mm,0) -- ++(0,32mm) -- ++(56mm,0) -- ++(0,-32mm) -- +- ++(-10mm,-18mm) -- ++(-36mm,0) -- cycle; +-% main body light +-\draw[line width=1.5mm,line cap=round,rounded corners=1pt,color=BodyColor!80!white] +- (-16mm,0.5mm) .. controls (0,-0.4mm) .. (16mm,0.5mm); +-\draw[line width=2mm,rounded corners=1pt,color=BodyColor!80!white] +- (16.5mm,32mm) -- ++(0,-32mm) -- ++(-15mm,-22mm); +- +-% led - body separator +-\fill[color=BodyColor!90!black] (-20mm,32mm) -- ++(0,2.5mm) -- ++(40mm,0) -- ++(0,-2.5mm) -- cycle; +- +-% led part +-\fill[color=LightColor] +- (-28mm,34.5mm) -- ++(0,14mm) +- .. controls ++(28mm,1mm) .. ++(56mm,0) +- -- ++(0,-14mm) -- cycle; +- +-% lower body +-\fill[color=BodyColor!90!black] +- (-14mm,-18mm) -- ++(0,-18mm) -- +- ++(2mm,-2mm) -- ++(24mm,0) -- ++(2mm,2mm) +- -- ++(0,18mm); +- +-% socket +-\fill[color=SocketColor] +- (-10mm,-38mm) -- ++(0,-4mm) +- decorate[screw] {(-10mm,-42mm) -- ++(0,-10mm)} +- -- ++(0,-0.5mm) -- ++(7.5mm,-6mm) -- ++(5mm,0) -- ++(7.5mm,6mm) -- ++(0,0.5mm) +- decorate[screw] {(10mm,-52mm) -- ++(0,10mm)} +- -- (10mm,-38mm) -- ++(-20mm,0) -- ++(0,-4mm) -- cycle; +-\draw[thin,color=SocketColor] (-10mm,-42mm) -- (10mm,-52mm); +- +-% socket light +-\draw[line width=1mm,line cap=round,rounded corners=1pt,color=SocketColor!90!white] +- (4.5mm,-38mm) -- ++(0,-14mm) -- ++(-4mm,-2.5mm); +- +-% lower body light +-\draw[line width=1.8mm,color=BodyColor] +- (5mm,-18mm) -- ++(0,-20mm); +- +-% led - body separator light +-\draw[line width=1.6mm, color=BodyColor] (16mm,32mm) -- ++(0,2.5mm); +-% led - body separator shade +-\draw[thin, color=BodyColor!80!black] (-20mm,32mm) -- ++(0,2.5mm); +-\draw[thin, color=BodyColor!80!black] (20mm,32mm) -- ++(0,2.5mm); +- +-% socket shade +-\draw[color=SocketColor!80!black] +- (-10mm,-38mm) -- ++(0,-4mm) +- decorate[screw] {(-10mm,-42mm) -- ++(0,-10mm)} +- -- ++(0,-0.5mm) -- ++(7.5mm,-6mm) -- ++(5mm,0) -- ++(7.5mm,6mm) -- ++(0,0.5mm) +- decorate[screw] {(10mm,-52mm) -- ++(0,10mm)} +- -- (10mm,-38mm); +-\draw[color=fgcolor] +- (-10mm,-52.5mm) -- ++(7.5mm,-6mm) -- ++(5mm,0) -- ++(7.5mm,6mm); +-\draw[rounded corners=1pt,color=SocketColor!80!black] +- (-10mm,-52.5mm) -- ++(7.5mm,-6mm) -- ++(5mm,0) -- ++(7.5mm,6mm); +- +-% lower body shade +-\draw[rounded corners=1pt,color=BodyColor!50!black] +- (-14mm,-18mm) -- ++(0,-18mm) -- +- ++(2mm,-2mm) -- ++(24mm,0) -- ++(2mm,2mm) +- -- ++(0,18mm); +- +-% body shade +-\draw[thick,rounded corners=1pt,color=BodyColor!60!black] +- (-28mm,0) -- ++(0,32mm) -- ++(56mm,0) -- ++(0,-32mm) -- +- ++(-10mm,-18mm) -- ++(-36mm,0) -- cycle; +- +-% led shade +-\draw[thick,rounded corners=1pt,color=LightColor!70!white] +- (-28mm,34.5mm) -- ++(0,14mm) +- .. controls ++(28mm,1mm) .. ++(56mm,0) +- -- ++(0,-14mm) -- cycle; ++\node (bulbh) at (-4.2,-1.1) {\begin{tikzpicture} ++\pic (0, 0) {lightbulb={LightSlateBlue scale 0.19 rotate 90}}; + \end{tikzpicture}}; +-\node (bulbl) at (-4.2,-2.9) {% +-\colorlet{LightColor}{IndianRed} +-\begin{tikzpicture}[scale=0.19,rotate=90] +-% main body +-\fill[color=BodyColor] +- (-28mm,0) -- ++(0,32mm) -- ++(56mm,0) -- ++(0,-32mm) -- +- ++(-10mm,-18mm) -- ++(-36mm,0) -- cycle; +-% main body light +-\draw[line width=1.5mm,line cap=round,rounded corners=1pt,color=BodyColor!80!white] +- (-16mm,0.5mm) .. controls (0,-0.4mm) .. (16mm,0.5mm); +-\draw[line width=2mm,rounded corners=1pt,color=BodyColor!80!white] +- (16.5mm,32mm) -- ++(0,-32mm) -- ++(-15mm,-22mm); +- +-% led - body separator +-\fill[color=BodyColor!90!black] (-20mm,32mm) -- ++(0,2.5mm) -- ++(40mm,0) -- ++(0,-2.5mm) -- cycle; +- +-% led part +-\fill[color=LightColor] +- (-28mm,34.5mm) -- ++(0,14mm) +- .. controls ++(28mm,1mm) .. ++(56mm,0) +- -- ++(0,-14mm) -- cycle; +- +-% lower body +-\fill[color=BodyColor!90!black] +- (-14mm,-18mm) -- ++(0,-18mm) -- +- ++(2mm,-2mm) -- ++(24mm,0) -- ++(2mm,2mm) +- -- ++(0,18mm); +- +-% socket +-\fill[color=SocketColor] +- (-10mm,-38mm) -- ++(0,-4mm) +- decorate[screw] {(-10mm,-42mm) -- ++(0,-10mm)} +- -- ++(0,-0.5mm) -- ++(7.5mm,-6mm) -- ++(5mm,0) -- ++(7.5mm,6mm) -- ++(0,0.5mm) +- decorate[screw] {(10mm,-52mm) -- ++(0,10mm)} +- -- (10mm,-38mm) -- ++(-20mm,0) -- ++(0,-4mm) -- cycle; +-\draw[thin,color=SocketColor] (-10mm,-42mm) -- (10mm,-52mm); +- +-% socket light +-\draw[line width=1mm,line cap=round,rounded corners=1pt,color=SocketColor!90!white] +- (4.5mm,-38mm) -- ++(0,-14mm) -- ++(-4mm,-2.5mm); +- +-% lower body light +-\draw[line width=1.8mm,color=BodyColor] +- (5mm,-18mm) -- ++(0,-20mm); +- +-% led - body separator light +-\draw[line width=1.6mm, color=BodyColor] (16mm,32mm) -- ++(0,2.5mm); +-% led - body separator shade +-\draw[thin, color=BodyColor!80!black] (-20mm,32mm) -- ++(0,2.5mm); +-\draw[thin, color=BodyColor!80!black] (20mm,32mm) -- ++(0,2.5mm); +- +-% socket shade +-\draw[color=SocketColor!80!black] +- (-10mm,-38mm) -- ++(0,-4mm) +- decorate[screw] {(-10mm,-42mm) -- ++(0,-10mm)} +- -- ++(0,-0.5mm) -- ++(7.5mm,-6mm) -- ++(5mm,0) -- ++(7.5mm,6mm) -- ++(0,0.5mm) +- decorate[screw] {(10mm,-52mm) -- ++(0,10mm)} +- -- (10mm,-38mm); +-\draw[color=fgcolor] +- (-10mm,-52.5mm) -- ++(7.5mm,-6mm) -- ++(5mm,0) -- ++(7.5mm,6mm); +-\draw[rounded corners=1pt,color=SocketColor!80!black] +- (-10mm,-52.5mm) -- ++(7.5mm,-6mm) -- ++(5mm,0) -- ++(7.5mm,6mm); +- +-% lower body shade +-\draw[rounded corners=1pt,color=BodyColor!50!black] +- (-14mm,-18mm) -- ++(0,-18mm) -- +- ++(2mm,-2mm) -- ++(24mm,0) -- ++(2mm,2mm) +- -- ++(0,18mm); +- +-% body shade +-\draw[thick,rounded corners=1pt,color=BodyColor!60!black] +- (-28mm,0) -- ++(0,32mm) -- ++(56mm,0) -- ++(0,-32mm) -- +- ++(-10mm,-18mm) -- ++(-36mm,0) -- cycle; +- +-% led shade +-\draw[thick,rounded corners=1pt,color=LightColor!70!white] +- (-28mm,34.5mm) -- ++(0,14mm) +- .. controls ++(28mm,1mm) .. ++(56mm,0) +- -- ++(0,-14mm) -- cycle; ++\node (bulbl) at (-4.2,-2.9) {\begin{tikzpicture} ++\pic (0, 0) {lightbulb={IndianRed scale 0.19 rotate 90}}; + \end{tikzpicture}}; + + \draw[ultra thick] (lightsd) -| (monolight); +@@ -321,8 +123,8 @@ + \coordinate (SE) at (3.86, -2.11); + \coordinate (b0) at (-4, 1.75); + +-\fill[color=case,rounded corners=2pt] ($(NW) + (-0.18,0.18)$) rectangle ($(SE) + (0.18,-0.18)$); +-\fill[color=plate,rounded corners=2pt] ($(NW) + (-0.10,0.10)$) rectangle ($(SE) + (0.10,-0.10)$); ++\fill[color=MonomeCase,rounded corners=2pt] ($(NW) + (-0.18,0.18)$) rectangle ($(SE) + (0.18,-0.18)$); ++\fill[color=MonomePlate,rounded corners=2pt] ($(NW) + (-0.10,0.10)$) rectangle ($(SE) + (0.10,-0.10)$); + + \fill[controlpt] (NW) circle (0.1); + \fill[controlpt] (SW) circle (0.1); +@@ -348,8 +150,8 @@ + \coordinate (b16) at (-3.82,1.07); + \coordinate (b32) at (-3.82,0.57); + +-\fill[color=case,rounded corners=2pt] ($(NW) + (-0.18,0.18)$) rectangle ($(SE) + (0.18,-0.18)$); +-\fill[color=plate,rounded corners=2pt] ($(NW) + (-0.10,0.10)$) rectangle ($(SE) + (0.10,-0.10)$); ++\fill[color=MonomeCase,rounded corners=2pt] ($(NW) + (-0.18,0.18)$) rectangle ($(SE) + (0.18,-0.18)$); ++\fill[color=MonomePlate,rounded corners=2pt] ($(NW) + (-0.10,0.10)$) rectangle ($(SE) + (0.10,-0.10)$); + + \fill[controlpt] (NW) circle (0.1); + \fill[controlpt] (SW) circle (0.1); +@@ -434,8 +236,8 @@ + \coordinate (SE) at (3.86, -2.11); + \coordinate (b0) at (-4, 1.75); + +-\fill[color=case,rounded corners=2pt] ($(NW) + (-0.18,0.18)$) rectangle ($(SE) + (0.18,-0.18)$); +-\fill[color=plate,rounded corners=2pt] ($(NW) + (-0.10,0.10)$) rectangle ($(SE) + (0.10,-0.10)$); ++\fill[color=MonomeCase,rounded corners=2pt] ($(NW) + (-0.18,0.18)$) rectangle ($(SE) + (0.18,-0.18)$); ++\fill[color=MonomePlate,rounded corners=2pt] ($(NW) + (-0.10,0.10)$) rectangle ($(SE) + (0.10,-0.10)$); + + \foreach \x in {-4,-3.5,...,-2.5} + \foreach \y in {1.75,1.25,...,-1.25} +@@ -551,8 +353,8 @@ + \coordinate (SE) at (3.86, -2.11); + \coordinate (caption) at ($(NW) + (-1.155,0.65)$); + +-\fill[color=case,rounded corners=2pt] ($(NW) + (-0.18,0.18)$) rectangle ($(SE) + (0.18,-0.18)$); +-\fill[color=plate,rounded corners=2pt] ($(NW) + (-0.10,0.10)$) rectangle ($(SE) + (0.10,-0.10)$); ++\fill[color=MonomeCase,rounded corners=2pt] ($(NW) + (-0.18,0.18)$) rectangle ($(SE) + (0.18,-0.18)$); ++\fill[color=MonomePlate,rounded corners=2pt] ($(NW) + (-0.10,0.10)$) rectangle ($(SE) + (0.10,-0.10)$); + + \foreach \x in {-4,-3.5,...,3.5} + \foreach \y in {1.75,1.25,...,-1.75} +@@ -697,8 +499,8 @@ + \coordinate (NW) at (-4, 1.75); + \coordinate (SE) at (3.86, -2.11); + +-\fill[color=case,rounded corners=2pt] ($(NW) + (-0.18,0.18)$) rectangle ($(SE) + (0.18,-0.18)$); +-\fill[color=plate,rounded corners=2pt] ($(NW) + (-0.10,0.10)$) rectangle ($(SE) + (0.10,-0.10)$); ++\fill[color=MonomeCase,rounded corners=2pt] ($(NW) + (-0.18,0.18)$) rectangle ($(SE) + (0.18,-0.18)$); ++\fill[color=MonomePlate,rounded corners=2pt] ($(NW) + (-0.10,0.10)$) rectangle ($(SE) + (0.10,-0.10)$); + + \foreach \x in {-4,-3.5,...,3.5} + \foreach \y in {1.75,1.25,...,-1.75} +@@ -708,17 +510,17 @@ + \colorlet{LightColor}{LightSlateBlue} + \begin{tikzpicture}[scale=0.19,rotate=90] + % main body +-\fill[color=BodyColor] ++\fill[color=LightBulbBodyColor] + (-28mm,0) -- ++(0,32mm) -- ++(56mm,0) -- ++(0,-32mm) -- + ++(-10mm,-18mm) -- ++(-36mm,0) -- cycle; + % main body light +-\draw[line width=1.5mm,line cap=round,rounded corners=1pt,color=BodyColor!80!white] ++\draw[line width=1.5mm,line cap=round,rounded corners=1pt,color=LightBulbBodyColor!80!white] + (-16mm,0.5mm) .. controls (0,-0.4mm) .. (16mm,0.5mm); +-\draw[line width=2mm,rounded corners=1pt,color=BodyColor!80!white] ++\draw[line width=2mm,rounded corners=1pt,color=LightBulbBodyColor!80!white] + (16.5mm,32mm) -- ++(0,-32mm) -- ++(-15mm,-22mm); + + % led - body separator +-\fill[color=BodyColor!90!black] (-20mm,32mm) -- ++(0,2.5mm) -- ++(40mm,0) -- ++(0,-2.5mm) -- cycle; ++\fill[color=LightBulbBodyColor!90!black] (-20mm,32mm) -- ++(0,2.5mm) -- ++(40mm,0) -- ++(0,-2.5mm) -- cycle; + + % led part + \fill[color=LightColor] +@@ -727,36 +529,36 @@ + -- ++(0,-14mm) -- cycle; + + % lower body +-\fill[color=BodyColor!90!black] ++\fill[color=LightBulbBodyColor!90!black] + (-14mm,-18mm) -- ++(0,-18mm) -- + ++(2mm,-2mm) -- ++(24mm,0) -- ++(2mm,2mm) + -- ++(0,18mm); + + % socket +-\fill[color=SocketColor] ++\fill[color=LightBulbSocketColor] + (-10mm,-38mm) -- ++(0,-4mm) + decorate[screw] {(-10mm,-42mm) -- ++(0,-10mm)} + -- ++(0,-0.5mm) -- ++(7.5mm,-6mm) -- ++(5mm,0) -- ++(7.5mm,6mm) -- ++(0,0.5mm) + decorate[screw] {(10mm,-52mm) -- ++(0,10mm)} + -- (10mm,-38mm) -- ++(-20mm,0) -- ++(0,-4mm) -- cycle; +-\draw[thin,color=SocketColor] (-10mm,-42mm) -- (10mm,-52mm); ++\draw[thin,color=LightBulbSocketColor] (-10mm,-42mm) -- (10mm,-52mm); + + % socket light +-\draw[line width=1mm,line cap=round,rounded corners=1pt,color=SocketColor!90!white] ++\draw[line width=1mm,line cap=round,rounded corners=1pt,color=LightBulbSocketColor!90!white] + (4.5mm,-38mm) -- ++(0,-14mm) -- ++(-4mm,-2.5mm); + + % lower body light +-\draw[line width=1.8mm,color=BodyColor] ++\draw[line width=1.8mm,color=LightBulbBodyColor] + (5mm,-18mm) -- ++(0,-20mm); + + % led - body separator light +-\draw[line width=1.6mm, color=BodyColor] (16mm,32mm) -- ++(0,2.5mm); ++\draw[line width=1.6mm, color=LightBulbBodyColor] (16mm,32mm) -- ++(0,2.5mm); + % led - body separator shade +-\draw[thin, color=BodyColor!80!black] (-20mm,32mm) -- ++(0,2.5mm); +-\draw[thin, color=BodyColor!80!black] (20mm,32mm) -- ++(0,2.5mm); ++\draw[thin, color=LightBulbBodyColor!80!black] (-20mm,32mm) -- ++(0,2.5mm); ++\draw[thin, color=LightBulbBodyColor!80!black] (20mm,32mm) -- ++(0,2.5mm); + + % socket shade +-\draw[color=SocketColor!80!black] ++\draw[color=LightBulbSocketColor!80!black] + (-10mm,-38mm) -- ++(0,-4mm) + decorate[screw] {(-10mm,-42mm) -- ++(0,-10mm)} + -- ++(0,-0.5mm) -- ++(7.5mm,-6mm) -- ++(5mm,0) -- ++(7.5mm,6mm) -- ++(0,0.5mm) +@@ -764,17 +566,17 @@ + -- (10mm,-38mm); + \draw[color=fgcolor] + (-10mm,-52.5mm) -- ++(7.5mm,-6mm) -- ++(5mm,0) -- ++(7.5mm,6mm); +-\draw[rounded corners=1pt,color=SocketColor!80!black] ++\draw[rounded corners=1pt,color=LightBulbSocketColor!80!black] + (-10mm,-52.5mm) -- ++(7.5mm,-6mm) -- ++(5mm,0) -- ++(7.5mm,6mm); + + % lower body shade +-\draw[rounded corners=1pt,color=BodyColor!50!black] ++\draw[rounded corners=1pt,color=LightBulbBodyColor!50!black] + (-14mm,-18mm) -- ++(0,-18mm) -- + ++(2mm,-2mm) -- ++(24mm,0) -- ++(2mm,2mm) + -- ++(0,18mm); + + % body shade +-\draw[thick,rounded corners=1pt,color=BodyColor!60!black] ++\draw[thick,rounded corners=1pt,color=LightBulbBodyColor!60!black] + (-28mm,0) -- ++(0,32mm) -- ++(56mm,0) -- ++(0,-32mm) -- + ++(-10mm,-18mm) -- ++(-36mm,0) -- cycle; + +@@ -788,17 +590,17 @@ + \colorlet{LightColor}{IndianRed} + \begin{tikzpicture}[scale=0.19,rotate=90] + % main body +-\fill[color=BodyColor] ++\fill[color=LightBulbBodyColor] + (-28mm,0) -- ++(0,32mm) -- ++(56mm,0) -- ++(0,-32mm) -- + ++(-10mm,-18mm) -- ++(-36mm,0) -- cycle; + % main body light +-\draw[line width=1.5mm,line cap=round,rounded corners=1pt,color=BodyColor!80!white] ++\draw[line width=1.5mm,line cap=round,rounded corners=1pt,color=LightBulbBodyColor!80!white] + (-16mm,0.5mm) .. controls (0,-0.4mm) .. (16mm,0.5mm); +-\draw[line width=2mm,rounded corners=1pt,color=BodyColor!80!white] ++\draw[line width=2mm,rounded corners=1pt,color=LightBulbBodyColor!80!white] + (16.5mm,32mm) -- ++(0,-32mm) -- ++(-15mm,-22mm); + + % led - body separator +-\fill[color=BodyColor!90!black] (-20mm,32mm) -- ++(0,2.5mm) -- ++(40mm,0) -- ++(0,-2.5mm) -- cycle; ++\fill[color=LightBulbBodyColor!90!black] (-20mm,32mm) -- ++(0,2.5mm) -- ++(40mm,0) -- ++(0,-2.5mm) -- cycle; + + % led part + \fill[color=LightColor] +@@ -807,36 +609,36 @@ + -- ++(0,-14mm) -- cycle; + + % lower body +-\fill[color=BodyColor!90!black] ++\fill[color=LightBulbBodyColor!90!black] + (-14mm,-18mm) -- ++(0,-18mm) -- + ++(2mm,-2mm) -- ++(24mm,0) -- ++(2mm,2mm) + -- ++(0,18mm); + + % socket +-\fill[color=SocketColor] ++\fill[color=LightBulbSocketColor] + (-10mm,-38mm) -- ++(0,-4mm) + decorate[screw] {(-10mm,-42mm) -- ++(0,-10mm)} + -- ++(0,-0.5mm) -- ++(7.5mm,-6mm) -- ++(5mm,0) -- ++(7.5mm,6mm) -- ++(0,0.5mm) + decorate[screw] {(10mm,-52mm) -- ++(0,10mm)} + -- (10mm,-38mm) -- ++(-20mm,0) -- ++(0,-4mm) -- cycle; +-\draw[thin,color=SocketColor] (-10mm,-42mm) -- (10mm,-52mm); ++\draw[thin,color=LightBulbSocketColor] (-10mm,-42mm) -- (10mm,-52mm); + + % socket light +-\draw[line width=1mm,line cap=round,rounded corners=1pt,color=SocketColor!90!white] ++\draw[line width=1mm,line cap=round,rounded corners=1pt,color=LightBulbSocketColor!90!white] + (4.5mm,-38mm) -- ++(0,-14mm) -- ++(-4mm,-2.5mm); + + % lower body light +-\draw[line width=1.8mm,color=BodyColor] ++\draw[line width=1.8mm,color=LightBulbBodyColor] + (5mm,-18mm) -- ++(0,-20mm); + + % led - body separator light +-\draw[line width=1.6mm, color=BodyColor] (16mm,32mm) -- ++(0,2.5mm); ++\draw[line width=1.6mm, color=LightBulbBodyColor] (16mm,32mm) -- ++(0,2.5mm); + % led - body separator shade +-\draw[thin, color=BodyColor!80!black] (-20mm,32mm) -- ++(0,2.5mm); +-\draw[thin, color=BodyColor!80!black] (20mm,32mm) -- ++(0,2.5mm); ++\draw[thin, color=LightBulbBodyColor!80!black] (-20mm,32mm) -- ++(0,2.5mm); ++\draw[thin, color=LightBulbBodyColor!80!black] (20mm,32mm) -- ++(0,2.5mm); + + % socket shade +-\draw[color=SocketColor!80!black] ++\draw[color=LightBulbSocketColor!80!black] + (-10mm,-38mm) -- ++(0,-4mm) + decorate[screw] {(-10mm,-42mm) -- ++(0,-10mm)} + -- ++(0,-0.5mm) -- ++(7.5mm,-6mm) -- ++(5mm,0) -- ++(7.5mm,6mm) -- ++(0,0.5mm) +@@ -844,17 +646,17 @@ + -- (10mm,-38mm); + \draw[color=fgcolor] + (-10mm,-52.5mm) -- ++(7.5mm,-6mm) -- ++(5mm,0) -- ++(7.5mm,6mm); +-\draw[rounded corners=1pt,color=SocketColor!80!black] ++\draw[rounded corners=1pt,color=LightBulbSocketColor!80!black] + (-10mm,-52.5mm) -- ++(7.5mm,-6mm) -- ++(5mm,0) -- ++(7.5mm,6mm); + + % lower body shade +-\draw[rounded corners=1pt,color=BodyColor!50!black] ++\draw[rounded corners=1pt,color=LightBulbBodyColor!50!black] + (-14mm,-18mm) -- ++(0,-18mm) -- + ++(2mm,-2mm) -- ++(24mm,0) -- ++(2mm,2mm) + -- ++(0,18mm); + + % body shade +-\draw[thick,rounded corners=1pt,color=BodyColor!60!black] ++\draw[thick,rounded corners=1pt,color=LightBulbBodyColor!60!black] + (-28mm,0) -- ++(0,32mm) -- ++(56mm,0) -- ++(0,-32mm) -- + ++(-10mm,-18mm) -- ++(-36mm,0) -- cycle; + +@@ -1055,8 +857,8 @@ + \coordinate (NW) at (-4, 1.75); + \coordinate (SE) at (3.86, -2.11); + +-\fill[color=case,rounded corners=2pt] ($(NW) + (-0.18,0.18)$) rectangle ($(SE) + (0.18,-0.18)$); +-\fill[color=plate,rounded corners=2pt] ($(NW) + (-0.10,0.10)$) rectangle ($(SE) + (0.10,-0.10)$); ++\fill[color=MonomeCase,rounded corners=2pt] ($(NW) + (-0.18,0.18)$) rectangle ($(SE) + (0.18,-0.18)$); ++\fill[color=MonomePlate,rounded corners=2pt] ($(NW) + (-0.10,0.10)$) rectangle ($(SE) + (0.10,-0.10)$); + + \foreach \x in {-4,-3.5,...,3.5} + \foreach \y in {1.75,1.25,...,-1.75} +@@ -1068,17 +870,17 @@ + \colorlet{LightColor}{LightSlateBlue} + \begin{tikzpicture}[scale=0.19,rotate=90] + % main body +-\fill[color=BodyColor] ++\fill[color=LightBulbBodyColor] + (-28mm,0) -- ++(0,32mm) -- ++(56mm,0) -- ++(0,-32mm) -- + ++(-10mm,-18mm) -- ++(-36mm,0) -- cycle; + % main body light +-\draw[line width=1.5mm,line cap=round,rounded corners=1pt,color=BodyColor!80!white] ++\draw[line width=1.5mm,line cap=round,rounded corners=1pt,color=LightBulbBodyColor!80!white] + (-16mm,0.5mm) .. controls (0,-0.4mm) .. (16mm,0.5mm); +-\draw[line width=2mm,rounded corners=1pt,color=BodyColor!80!white] ++\draw[line width=2mm,rounded corners=1pt,color=LightBulbBodyColor!80!white] + (16.5mm,32mm) -- ++(0,-32mm) -- ++(-15mm,-22mm); + + % led - body separator +-\fill[color=BodyColor!90!black] (-20mm,32mm) -- ++(0,2.5mm) -- ++(40mm,0) -- ++(0,-2.5mm) -- cycle; ++\fill[color=LightBulbBodyColor!90!black] (-20mm,32mm) -- ++(0,2.5mm) -- ++(40mm,0) -- ++(0,-2.5mm) -- cycle; + + % led part + \fill[color=LightColor] +@@ -1087,36 +889,36 @@ + -- ++(0,-14mm) -- cycle; + + % lower body +-\fill[color=BodyColor!90!black] ++\fill[color=LightBulbBodyColor!90!black] + (-14mm,-18mm) -- ++(0,-18mm) -- + ++(2mm,-2mm) -- ++(24mm,0) -- ++(2mm,2mm) + -- ++(0,18mm); + + % socket +-\fill[color=SocketColor] ++\fill[color=LightBulbSocketColor] + (-10mm,-38mm) -- ++(0,-4mm) + decorate[screw] {(-10mm,-42mm) -- ++(0,-10mm)} + -- ++(0,-0.5mm) -- ++(7.5mm,-6mm) -- ++(5mm,0) -- ++(7.5mm,6mm) -- ++(0,0.5mm) + decorate[screw] {(10mm,-52mm) -- ++(0,10mm)} + -- (10mm,-38mm) -- ++(-20mm,0) -- ++(0,-4mm) -- cycle; +-\draw[thin,color=SocketColor] (-10mm,-42mm) -- (10mm,-52mm); ++\draw[thin,color=LightBulbSocketColor] (-10mm,-42mm) -- (10mm,-52mm); + + % socket light +-\draw[line width=1mm,line cap=round,rounded corners=1pt,color=SocketColor!90!white] ++\draw[line width=1mm,line cap=round,rounded corners=1pt,color=LightBulbSocketColor!90!white] + (4.5mm,-38mm) -- ++(0,-14mm) -- ++(-4mm,-2.5mm); + + % lower body light +-\draw[line width=1.8mm,color=BodyColor] ++\draw[line width=1.8mm,color=LightBulbBodyColor] + (5mm,-18mm) -- ++(0,-20mm); + + % led - body separator light +-\draw[line width=1.6mm, color=BodyColor] (16mm,32mm) -- ++(0,2.5mm); ++\draw[line width=1.6mm, color=LightBulbBodyColor] (16mm,32mm) -- ++(0,2.5mm); + % led - body separator shade +-\draw[thin, color=BodyColor!80!black] (-20mm,32mm) -- ++(0,2.5mm); +-\draw[thin, color=BodyColor!80!black] (20mm,32mm) -- ++(0,2.5mm); ++\draw[thin, color=LightBulbBodyColor!80!black] (-20mm,32mm) -- ++(0,2.5mm); ++\draw[thin, color=LightBulbBodyColor!80!black] (20mm,32mm) -- ++(0,2.5mm); + + % socket shade +-\draw[color=SocketColor!80!black] ++\draw[color=LightBulbSocketColor!80!black] + (-10mm,-38mm) -- ++(0,-4mm) + decorate[screw] {(-10mm,-42mm) -- ++(0,-10mm)} + -- ++(0,-0.5mm) -- ++(7.5mm,-6mm) -- ++(5mm,0) -- ++(7.5mm,6mm) -- ++(0,0.5mm) +@@ -1124,17 +926,17 @@ + -- (10mm,-38mm); + \draw[color=fgcolor] + (-10mm,-52.5mm) -- ++(7.5mm,-6mm) -- ++(5mm,0) -- ++(7.5mm,6mm); +-\draw[rounded corners=1pt,color=SocketColor!80!black] ++\draw[rounded corners=1pt,color=LightBulbSocketColor!80!black] + (-10mm,-52.5mm) -- ++(7.5mm,-6mm) -- ++(5mm,0) -- ++(7.5mm,6mm); + + % lower body shade +-\draw[rounded corners=1pt,color=BodyColor!50!black] ++\draw[rounded corners=1pt,color=LightBulbBodyColor!50!black] + (-14mm,-18mm) -- ++(0,-18mm) -- + ++(2mm,-2mm) -- ++(24mm,0) -- ++(2mm,2mm) + -- ++(0,18mm); + + % body shade +-\draw[thick,rounded corners=1pt,color=BodyColor!60!black] ++\draw[thick,rounded corners=1pt,color=LightBulbBodyColor!60!black] + (-28mm,0) -- ++(0,32mm) -- ++(56mm,0) -- ++(0,-32mm) -- + ++(-10mm,-18mm) -- ++(-36mm,0) -- cycle; + +@@ -1148,17 +950,17 @@ + \colorlet{LightColor}{IndianRed} + \begin{tikzpicture}[scale=0.19,rotate=90] + % main body +-\fill[color=BodyColor] ++\fill[color=LightBulbBodyColor] + (-28mm,0) -- ++(0,32mm) -- ++(56mm,0) -- ++(0,-32mm) -- + ++(-10mm,-18mm) -- ++(-36mm,0) -- cycle; + % main body light +-\draw[line width=1.5mm,line cap=round,rounded corners=1pt,color=BodyColor!80!white] ++\draw[line width=1.5mm,line cap=round,rounded corners=1pt,color=LightBulbBodyColor!80!white] + (-16mm,0.5mm) .. controls (0,-0.4mm) .. (16mm,0.5mm); +-\draw[line width=2mm,rounded corners=1pt,color=BodyColor!80!white] ++\draw[line width=2mm,rounded corners=1pt,color=LightBulbBodyColor!80!white] + (16.5mm,32mm) -- ++(0,-32mm) -- ++(-15mm,-22mm); + + % led - body separator +-\fill[color=BodyColor!90!black] (-20mm,32mm) -- ++(0,2.5mm) -- ++(40mm,0) -- ++(0,-2.5mm) -- cycle; ++\fill[color=LightBulbBodyColor!90!black] (-20mm,32mm) -- ++(0,2.5mm) -- ++(40mm,0) -- ++(0,-2.5mm) -- cycle; + + % led part + \fill[color=LightColor] +@@ -1167,36 +969,36 @@ + -- ++(0,-14mm) -- cycle; + + % lower body +-\fill[color=BodyColor!90!black] ++\fill[color=LightBulbBodyColor!90!black] + (-14mm,-18mm) -- ++(0,-18mm) -- + ++(2mm,-2mm) -- ++(24mm,0) -- ++(2mm,2mm) + -- ++(0,18mm); + + % socket +-\fill[color=SocketColor] ++\fill[color=LightBulbSocketColor] + (-10mm,-38mm) -- ++(0,-4mm) + decorate[screw] {(-10mm,-42mm) -- ++(0,-10mm)} + -- ++(0,-0.5mm) -- ++(7.5mm,-6mm) -- ++(5mm,0) -- ++(7.5mm,6mm) -- ++(0,0.5mm) + decorate[screw] {(10mm,-52mm) -- ++(0,10mm)} + -- (10mm,-38mm) -- ++(-20mm,0) -- ++(0,-4mm) -- cycle; +-\draw[thin,color=SocketColor] (-10mm,-42mm) -- (10mm,-52mm); ++\draw[thin,color=LightBulbSocketColor] (-10mm,-42mm) -- (10mm,-52mm); + + % socket light +-\draw[line width=1mm,line cap=round,rounded corners=1pt,color=SocketColor!90!white] ++\draw[line width=1mm,line cap=round,rounded corners=1pt,color=LightBulbSocketColor!90!white] + (4.5mm,-38mm) -- ++(0,-14mm) -- ++(-4mm,-2.5mm); + + % lower body light +-\draw[line width=1.8mm,color=BodyColor] ++\draw[line width=1.8mm,color=LightBulbBodyColor] + (5mm,-18mm) -- ++(0,-20mm); + + % led - body separator light +-\draw[line width=1.6mm, color=BodyColor] (16mm,32mm) -- ++(0,2.5mm); ++\draw[line width=1.6mm, color=LightBulbBodyColor] (16mm,32mm) -- ++(0,2.5mm); + % led - body separator shade +-\draw[thin, color=BodyColor!80!black] (-20mm,32mm) -- ++(0,2.5mm); +-\draw[thin, color=BodyColor!80!black] (20mm,32mm) -- ++(0,2.5mm); ++\draw[thin, color=LightBulbBodyColor!80!black] (-20mm,32mm) -- ++(0,2.5mm); ++\draw[thin, color=LightBulbBodyColor!80!black] (20mm,32mm) -- ++(0,2.5mm); + + % socket shade +-\draw[color=SocketColor!80!black] ++\draw[color=LightBulbSocketColor!80!black] + (-10mm,-38mm) -- ++(0,-4mm) + decorate[screw] {(-10mm,-42mm) -- ++(0,-10mm)} + -- ++(0,-0.5mm) -- ++(7.5mm,-6mm) -- ++(5mm,0) -- ++(7.5mm,6mm) -- ++(0,0.5mm) +@@ -1204,17 +1006,17 @@ + -- (10mm,-38mm); + \draw[color=fgcolor] + (-10mm,-52.5mm) -- ++(7.5mm,-6mm) -- ++(5mm,0) -- ++(7.5mm,6mm); +-\draw[rounded corners=1pt,color=SocketColor!80!black] ++\draw[rounded corners=1pt,color=LightBulbSocketColor!80!black] + (-10mm,-52.5mm) -- ++(7.5mm,-6mm) -- ++(5mm,0) -- ++(7.5mm,6mm); + + % lower body shade +-\draw[rounded corners=1pt,color=BodyColor!50!black] ++\draw[rounded corners=1pt,color=LightBulbBodyColor!50!black] + (-14mm,-18mm) -- ++(0,-18mm) -- + ++(2mm,-2mm) -- ++(24mm,0) -- ++(2mm,2mm) + -- ++(0,18mm); + + % body shade +-\draw[thick,rounded corners=1pt,color=BodyColor!60!black] ++\draw[thick,rounded corners=1pt,color=LightBulbBodyColor!60!black] + (-28mm,0) -- ++(0,32mm) -- ++(56mm,0) -- ++(0,-32mm) -- + ++(-10mm,-18mm) -- ++(-36mm,0) -- cycle; + +diff --git a/slides/fosdem_2017/lightsd-demo.sh b/slides/2017-02-04_fosdem/lightsd-demo.sh +rename from slides/fosdem_2017/lightsd-demo.sh +rename to slides/2017-02-04_fosdem/lightsd-demo.sh +diff --git a/slides/fosdem_2017/monolight-demo.sh b/slides/2017-02-04_fosdem/monolight-demo.sh +rename from slides/fosdem_2017/monolight-demo.sh +rename to slides/2017-02-04_fosdem/monolight-demo.sh +diff --git a/slides/2017-04-XX_while_42/CMakeLists.txt b/slides/2017-04-XX_while_42/CMakeLists.txt +new file mode 100644 +--- /dev/null ++++ b/slides/2017-04-XX_while_42/CMakeLists.txt +@@ -0,0 +1,3 @@ ++LIGHTSD_COPY_COMMON_LATEX() ++ ++ADD_LATEX_DOCUMENT(while42.tex) +diff --git a/slides/2017-04-XX_while_42/while42.tex b/slides/2017-04-XX_while_42/while42.tex +new file mode 100644 +--- /dev/null ++++ b/slides/2017-04-XX_while_42/while42.tex +@@ -0,0 +1,49 @@ ++\documentclass{lgtdslides} ++ ++\usepackage{tikz} ++\usepackage{tikzsymbols} ++\usepackage[francais]{babel} ++ ++\usepackage{lgtdfigs} ++ ++\title{Un titre} ++\subtitle{\textit{Un sous-titre}} ++\date{While 42 SF, side projects} ++\author{Louis Opter } ++ ++\begin{document} ++ ++\begin{frame}\titlepage\end{frame} ++ ++\begin{frame}{Un Test} ++\begin{center} ++\begin{tikzpicture}[overlay] ++\pic (0,0) {monome={scale 1}}; ++\pic (0,0) {lightbulb={LightSlateBlue scale 0.19 rotate 90}}; ++\end{tikzpicture} ++\end{center} ++\end{frame} ++ ++\begin{frame}{Table des modèles LIFX} ++\begin{tabular}{lll} ++\textbf{Génération} & \textbf{Modèle} & \textbf{En vente} \\ ++\hline ++Gen 1 & Original 1000, Color 650 & Non \\ ++\hline ++Gen 2 & Color 1000, White 800 & Oui \\ ++\hline ++Gen 3 & A19, BR30, Z (ruban) & Oui \\ ++\end{tabular} ++\par\vspace{2em} ++\begin{tabular}{ll} ++\textbf{Génération} & \textbf{Notes} \\ ++\hline ++Gen 1 & Supporte 802.11 et 802.15.4 (inutilisé) \\ ++\hline ++Gen 2 & QCA 4002, AllJoyn, \emph{plante} \\ ++\hline ++Gen 3 & + versions have IR, \emph{plante toujours} \\ ++\end{tabular} ++\end{frame} ++ ++\end{document} +diff --git a/slides/CMakeLists.txt b/slides/CMakeLists.txt +--- a/slides/CMakeLists.txt ++++ b/slides/CMakeLists.txt +@@ -1,1 +1,15 @@ ++FUNCTION(LIGHTSD_COPY_COMMON_LATEX) ++ SET( ++ SOURCES ++ common/lgtdfigs.sty ++ common/lgtdslides.cls ++ ) ++ FOREACH(F ${SOURCES}) ++ FILE( ++ COPY ${PROJECT_SOURCE_DIR}/slides/${F} ++ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} ++ ) ++ ENDFOREACH() ++ENDFUNCTION() ++ + ADD_ALL_SUBDIRECTORIES() +diff --git a/slides/common/lgtdfigs.sty b/slides/common/lgtdfigs.sty +new file mode 100644 +--- /dev/null ++++ b/slides/common/lgtdfigs.sty +@@ -0,0 +1,138 @@ ++\ProvidesPackage{lgtdfigs} ++ ++\usetikzlibrary{% ++ calc, ++ decorations.pathreplacing, ++ decorations.pathmorphing, ++ shapes, ++ positioning ++} ++ ++%%% LIFX inspired light bulb ++ ++\colorlet{LightBulbBodyColor}{Grey!90!black} ++\colorlet{LightBulbSocketColor}{Silver!90!black} ++ ++\tikzset{screw/.style={decoration={ ++ name=snake,amplitude=0.1mm,segment length=0.6mm ++}}} ++ ++\tikzset{pics/lightbulb/.style args={#1 scale #2 rotate #3}{code={% arg1 is light color ++ ++\tikzset{screw/.style={decoration={ ++ name=snake,amplitude=0.1mm,segment length=0.6mm ++}}} ++ ++\begin{scope}[scale=#2,rotate=#3] ++ ++% main body ++\fill[color=LightBulbBodyColor] ++ (-28mm,0) -- ++(0,32mm) -- ++(56mm,0) -- ++(0,-32mm) -- ++ ++(-10mm,-18mm) -- ++(-36mm,0) -- cycle; ++ ++% main body light ++\draw[line width=1.5mm,line cap=round,rounded corners=1pt,color=LightBulbBodyColor!80!white] ++ (-16mm,0.5mm) .. controls (0,-0.4mm) .. (16mm,0.5mm); ++\draw[line width=2mm,rounded corners=1pt,color=LightBulbBodyColor!80!white] ++ (16.5mm,32mm) -- ++(0,-32mm) -- ++(-15mm,-22mm); ++ ++% led - body separator ++\fill[color=LightBulbBodyColor!90!black] ++ (-20mm,32mm) -- ++(0,2.5mm) -- ++(40mm,0) -- ++(0,-2.5mm) -- cycle; ++ ++% led part ++\fill[color=#1] ++ (-28mm,34.5mm) -- ++(0,14mm) ++ .. controls ++(28mm,1mm) .. ++(56mm,0) ++ -- ++(0,-14mm) -- cycle; ++ ++% lower body ++\fill[color=LightBulbBodyColor!90!black] ++ (-14mm,-18mm) -- ++(0,-18mm) -- ++ ++(2mm,-2mm) -- ++(24mm,0) -- ++(2mm,2mm) ++ -- ++(0,18mm); ++ ++% socket ++\fill[color=LightBulbSocketColor] ++ (-10mm,-38mm) -- ++(0,-4mm) ++ decorate[screw] {(-10mm,-42mm) -- ++(0,-10mm)} ++ -- ++(0,-0.5mm) -- ++(7.5mm,-6mm) -- ++(5mm,0) -- ++(7.5mm,6mm) -- ++(0,0.5mm) ++ decorate[screw] {(10mm,-52mm) -- ++(0,10mm)} ++ -- (10mm,-38mm) -- ++(-20mm,0) -- ++(0,-4mm) -- cycle; ++\draw[thin,color=LightBulbSocketColor] (-10mm,-42mm) -- (10mm,-52mm); ++ ++% socket light ++\draw[line width=1mm,line cap=round,rounded corners=1pt,color=LightBulbSocketColor!90!white] ++ (4.5mm,-38mm) -- ++(0,-14mm) -- ++(-4mm,-2.5mm); ++ ++% lower body light ++\draw[line width=1.8mm,color=LightBulbBodyColor] ++ (5mm,-18mm) -- ++(0,-20mm); ++ ++% led - body separator light ++\draw[line width=1.6mm, color=LightBulbBodyColor] (16mm,32mm) -- ++(0,2.5mm); ++% led - body separator shade ++\draw[thin, color=LightBulbBodyColor!80!black] (-20mm,32mm) -- ++(0,2.5mm); ++\draw[thin, color=LightBulbBodyColor!80!black] (20mm,32mm) -- ++(0,2.5mm); ++ ++% socket shade ++\draw[color=LightBulbSocketColor!80!black] ++ (-10mm,-38mm) -- ++(0,-4mm) ++ decorate[screw] {(-10mm,-42mm) -- ++(0,-10mm)} ++ -- ++(0,-0.5mm) -- ++(7.5mm,-6mm) -- ++(5mm,0) -- ++(7.5mm,6mm) -- ++(0,0.5mm) ++ decorate[screw] {(10mm,-52mm) -- ++(0,10mm)} ++ -- (10mm,-38mm); ++\draw[color=fgcolor] ++ (-10mm,-52.5mm) -- ++(7.5mm,-6mm) -- ++(5mm,0) -- ++(7.5mm,6mm); ++\draw[rounded corners=1pt,color=LightBulbSocketColor!80!black] ++ (-10mm,-52.5mm) -- ++(7.5mm,-6mm) -- ++(5mm,0) -- ++(7.5mm,6mm); ++ ++% lower body shade ++\draw[rounded corners=1pt,color=LightBulbBodyColor!50!black] ++ (-14mm,-18mm) -- ++(0,-18mm) -- ++ ++(2mm,-2mm) -- ++(24mm,0) -- ++(2mm,2mm) ++ -- ++(0,18mm); ++ ++% body shade ++\draw[thick,rounded corners=1pt,color=LightBulbBodyColor!60!black] ++ (-28mm,0) -- ++(0,32mm) -- ++(56mm,0) -- ++(0,-32mm) -- ++ ++(-10mm,-18mm) -- ++(-36mm,0) -- cycle; ++ ++% led shade ++\draw[thick,rounded corners=1pt,color=#1!70!white] ++ (-28mm,34.5mm) -- ++(0,14mm) ++ .. controls ++(28mm,1mm) .. ++(56mm,0) ++ -- ++(0,-14mm) -- cycle; ++ ++\end{scope} ++}}} ++ ++%%% Monome inspired grid ++ ++\colorlet{MonomePlate}{Gainsboro} ++\colorlet{MonomeCase}{Sienna} ++ ++\tikzset{mbuttoff/.style={color=gray,rounded corners=1pt}} ++\tikzset{mbuttvlow/.style={color=orange!20!gray,rounded corners=1pt}} ++\tikzset{mbuttlow/.style={color=orange!35!gray,rounded corners=1pt}} ++\tikzset{mbuttmed/.style={color=orange!50!gray,rounded corners=1pt}} ++\tikzset{mbutthigh/.style={color=orange!80!gray,rounded corners=1pt}} ++\tikzset{mbutton/.style={fill,color=orange!95!white,rounded corners=1pt}} ++ ++\tikzset{pics/monome/.style args={scale #1}{code={% ++ ++\begin{scope}[scale=#1] ++\coordinate (NW) at (-4, 1.75); ++\coordinate (SE) at (3.86, -2.11); ++ ++\fill[color=MonomeCase,rounded corners=2pt] ($(NW) + (-0.18,0.18)$) rectangle ($(SE) + (0.18,-0.18)$); ++\fill[color=MonomePlate,rounded corners=2pt] ($(NW) + (-0.10,0.10)$) rectangle ($(SE) + (0.10,-0.10)$); ++ ++\foreach \x in {-4,-3.5,...,3.5}{ ++ \foreach \y in {1.75,1.25,...,-1.75}{ ++ \fill[mbuttoff] (\x, \y) rectangle +(0.36, -0.36); ++ } ++} ++ ++\end{scope} ++}}} +diff --git a/slides/common/lgtdslides.cls b/slides/common/lgtdslides.cls +new file mode 100644 +--- /dev/null ++++ b/slides/common/lgtdslides.cls +@@ -0,0 +1,18 @@ ++\ProvidesClass{lgtdslides} ++ ++\LoadClass[utf8x,xcolor={usenames,svgnames}]{beamer} ++ ++\RequirePackage{lmodern} ++\RequirePackage{arev} ++\RequirePackage{tgbonum} ++\RequirePackage{inconsolata} ++\RequirePackage[T1]{fontenc} ++\RequirePackage[fixlanguage]{babelbib} ++ ++\useoutertheme{infolines} ++\setbeamertemplate{navigation symbols}{} ++\setbeamertemplate{bibliography item}[text] ++\setbeamerfont{footnote}{size=\tiny} ++ ++\colorlet{fgcolor}{White} ++\definecolor{BeamerBlue}{RGB}{49,56,172}