HN 日本語サマリー

← 一覧へ戻る
プログラミング

LaTeXによるビンテージ科学論文

Vintage Scientific Papers with LaTeX (github.com)

43 pointsby petalmind3 コメント

要約

このリポジトリは、LaTeXを使用して、説得力のある古い科学論文の美学を再現するための20の独立した例を提供します。各例は、純粋なLaTeXページ、MetaPost図、またはLuaLaTeXとMetaPostを組み合わせたもので、独立してコンパイルして効果を確認できます。

全文翻訳

LaTeXによるビンテージ科学論文 20の小さな例が、説得力のある古い科学論文の美学の背後にある独立したメカニズムを示しています。各ファイルは意図的にスタンドアロンになっており、コピーしてコンパイルし、個々の効果を削除して、それらが何に貢献しているかを確認できます。例は3つのグループに分かれています:純粋なLaTeXページ(1、2、4、5、6、10〜14)、スタンドアロンのfiziko MetaPost図(3、7、8、9)、およびLuaTeXの組み込みMetaPostによって内部で描画されたfiziko図を持つLaTeXページ(15〜20)。 ギャラリー コンパイルされた出力の低解像度プレビュー。PDF自体はベクトル形式で検索可能です。 01 初期近代のページ 02 彫刻風光学プレート 03 Hookeの装置 04 装飾された頭文字 05 ヴィクトリア朝の新聞 06 自然史カタログ 07 レンズの光線 08 Atwoodの機械 09 シェーディングアトラス 10 対数表 11 周極星図 12 雪の結晶顕微鏡写真 13 冷却曲線 14 特許図面シート 15 斜面 16 望遠鏡プレート 17 地球儀 18 力学入門 19 結び目プレート 20 月の満ち欠け 例 01-early-modern-page.tex -- OpenTypeのオールドスタイル数字と歴史的合字、明示的な長音s、暖色系の紙とインクの色、非対称な余白、ドロップキャピタル、間隔を空けたスモールキャピタル、余白注記、および組版ルール。 02-engraved-optics-plate.tex -- TikZによる決定的で不規則なストロークと線ハッチング。ラベルは検索可能な実際のテキストとして保持されます。 03-fiziko-hooke-apparatus.mp -- 外部fiziko MetaPostライブラリで描画されたコンパクトなHookeの装置:ハッチングされた支持部、モデル化されたバネ、吊り下げられた重り、および測定された伸び。 04-ornamented-incipit.tex -- ボックス化された3行の頭文字と、通常のTikZパスから作成された小さなベクター装飾を持つA5サイズの初期科学タイトルページ。 05-victorian-newspaper.tex -- マストヘッド、バランスの取れた段組、段間に引かれた罫線、引用符、記事の見出し、および気象登録を備えたコンパクトな正方形の広報紙。 06-natural-history-catalogue.tex -- ぶら下げエントリ、ドットリーダー、明示的なタイポグラフィの役割、およびオールドスタイルの数値データを使用した博物館カタログページ。 07-fiziko-lens-rays.mp -- fizikoの屈折マクロによって光線経路が計算されるガラスレンズ。所定の焦点に描画されるのではなく、計算された光線が軸と交差する場所で焦点と射出瞳(目が置かれる場所)が見つかります。 08-fiziko-atwood-machine.mp -- ハッチングされた支持部、陰影付きプーリー、湾曲したロープ、吊り下げられた重り、および加速度矢印で構成されるAtwoodの機械。 09-fiziko-shading-atlas.mp -- 線ハッチング、点描、および可変幅の陰影付きチューブの並列比較。 10-lua-table-of-logarithms.tex -- コンパイル時にLua関数によって各桁が計算される5桁の対数表。19世紀の表の罫線で、ライニング表数字で設定されています。 11-circumpolar-star-chart.tex -- 極星図:1つのマクロが赤経と赤緯をチャート座標に変換し、34個のカタログ化された星、ローマ数字でラベル付けされた時圏、および等級で分けられた円盤を表示します。 12-snow-crystal-micrographs.tex -- 4つの円形の顕微鏡視野。結晶はTikZ Lindenmayerシステム文法によって成長し、1つの腕の6つの回転コピーが六角形の対称性を供給します。 13-cooling-curve-graph-paper.tex -- セピア色のグラフ用紙上のpgfplotsチャート。内向きの目盛り、開円のプロットシンボル、手でフィットさせた曲線、および斜体の余白注記があります。 14-patent-drawing-sheet.tex -- 遠心ガバナーの特許庁プレート:番号付きのリーダー線、45度のハッチングが施された断面、彫刻されたボール、および証人および発明者の署名線。 15-fiziko-inclined-plane.tex -- fizikoがLuaLaTeX内で描画した図を持つ論文ページ:木製のくさび、陰影付きのボール、および傾斜に沿った、またはそれに垂直な重力。ラベルはページのテキストおよび数式フォントで設定されています。 16-fiziko-telescope-plate.tex -- Kepler式望遠鏡。すべての光線がfizikoのトレーシングマクロによって屈折されます。焦点と射出瞳(目が置かれる場所)は、計算された光線が軸と交差する場所で見つかります。 17-fiziko-terrestrial-globe.tex -- 3つの観測点からの地球。fizikoの地球儀とその組み込みの海岸線を使用し、等間隔で回転する小さな地球儀の境界行があります。 18-fiziko-mechanics-primer.tex -- 2段組の章。積荷を積んだカート、バランスの取れたレバー、および振り子があり、それぞれが段内に配置されて描画されています。 19-fiziko-knots-plate.tex -- 各々1つの公式から生成された三つ葉結び、五つ葉結び、および七つ葉結びの紐。fizikoが交差を見つけ、ロープに陰影を付けます。 20-fiziko-phases-of-the-moon.tex -- 1つの固定された光源下での8つの軌道位置における月、および固定された球の周りを光源を回転させることによって地球から見た同じ8つの満ち欠け。 .texファイルはLuaLaTeXで独立してコンパイルされます。.mpファイルは、fizikoを明示的な外部依存関係として持つスタンドアロンのMetaPostソースです。 例15〜20は両方を必要とします。これらは、luamplibを介してfizikoをロードするLuaLaTeXドキュメントです。 ビルド 最も簡単な方法は、リポジトリのルートから実行するシェルスクリプトです。どちらもすべての例をbuild/にコンパイルし、fizikoチェックアウトが指定されていない限りfizikoの例をスキップします: PowerShell 7 .build.ps1 -Fiziko ..\fiziko POSIXシェル ./build.sh ../fiziko 例の名前を追記すると、それらのみをビルドします。 以下のセクションでは、同じコマンドを手動で実行する方法を説明します。 要件:LuaLaTeX(TeX LiveまたはMiKTeX);LaTeXパッケージfontspec、geometry、microtype、multicol、xcolor、tikz(lindenmayersystems、patterns.meta、calc、shapes.geometricライブラリを含む)、pgfplots、luacode、array;EB Garamond(TeX LiveおよびMiKTeXのebgaramondパッケージ)。 リポジトリのルートから、出力ディレクトリを作成し、すべての純粋LaTeXの例をコンパイルします: Windows上のPowerShell 7 New-Item -ItemType Directory -Force build | Out-Null $names = @( '01-early-modern-page', '02-engraved-optics-plate', '04-ornamented-incipit', '05-victorian-newspaper', '06-natural-history-catalogue', '10-lua-table-of-logarithms', '11-circumpolar-star-chart', '12-snow-crystal-micrographs', '13-cooling-curve-graph-paper', '14-patent-drawing-sheet' ) foreach ($name in $names) { lualatex -interaction=nonstopmode -halt-on-error ` -output-directory=build "examples/$name.tex" } LinuxまたはmacOS上のPOSIXシェル mkdir -p build for name in \ 01-early-modern-page \ 02-engraved-optics-plate \ 04-ornamented-incipit \ 05-victorian-newspaper \ 06-natural-history-catalogue \ 10-lua-table-of-logarithms \ 11-circumpolar-star-chart \ 12-snow-crystal-micrographs \ 13-cooling-curve-graph-paper \ 14-patent-drawing-sheet do lualatex -interaction=nonstopmode -halt-on-error \ -output-directory=build "examples/$name.tex" done ソースファイルは意図的にpdfLaTeXを拒否します。このエンジンはここで実証されているOpenTypeコントロールを提供できません。 fizikoの例をビルドする fizikoを別途クローンしてください。ここではバンドルまたは再ライセンスされていません: git clone https://github.com/jemmybutton/fiziko.git ../fiziko MetaPostはMPINPUTSを介してfiziko.mpを見つけます。通常のMetaPost検索パスが利用可能になるように、末尾のパス区切り文字を保持してください。 Windows上のPowerShell 7 $env:MPINPUTS = "$((Resolve-Path ../fiziko).Path);" New-Item -ItemType Directory -Force build | Out-Null $names = @( '03-fiziko-hooke-apparatus', '07-fiziko-lens-rays', '08-fiziko-atwood-machine', '09-fiziko-shading-atlas' ) foreach ($name in $names) { # -job-nameはMiKTeXのmpostに必要です。TeX Liveでは省略してください(下記参照)。 mpost -interaction=nonstopmode -halt-on-error ` -job-name=$name -output-directory=build "examples/$name.mp" } LinuxまたはmacOS上のPOSIXシェル export MPINPUTS="$(cd ../fiziko && pwd):" mkdir -p build for name in \ 03-fiziko-hooke-apparatus \ 07-fiziko-lens-rays \ 08-fiziko-atwood-machine \ 09-fiziko-shading-atlas do # build/内で実行: # TeX Liveのmpostは、-output-directoryが使用されている場合にbtexステップが書き込むmpxファイルを読み取れません。 (cd build && mpost -interaction=nonstopmode -halt-on-error \ "../examples/$name.mp") done 各結果はbuild/<example-name>-1.epsという名前になります。2つのディストリビューションはjob-nameフラグについて意見が異なります:MiKTeXのmpost(3.00、2026年9月チェック)は、-jobフラグがないと最初のbtexラベルでアクセス違反によりクラッシュします。