Używam TikZ do rysowania diagramów w LaTeX, które następnie chcę wyodrębnić jako pliki obrazów do umieszczenia w Internecie. Używam TeXnicCenter do edycji źródeł.
Czy istnieje sposób na bezpośrednie wyodrębnienie tych diagramów bez konieczności wyodrębniania ich z gotowego pliku PDF?
latex
tikz
texnic-center
Qiaochu Yuan
źródło
źródło
Odpowiedzi:
W związku z moim komentarzem: Cirkuit konwertuje diagramy TikZ na obrazy, uruchamiając coś w rodzaju następującej sekwencji poleceń:
Oto
img.tex
plik LaTeX zgodny z tym szablonem:\documentclass{article} \usepackage{tikz,amsmath,siunitx} \usetikzlibrary{arrows,snakes,backgrounds,patterns,matrix,shapes,fit,calc,shadows,plotmarks} \usepackage[graphics,tightpage,active]{preview} \PreviewEnvironment{tikzpicture} \PreviewEnvironment{equation} \PreviewEnvironment{equation*} \newlength{\imagewidth} \newlength{\imagescale} \pagestyle{empty} \thispagestyle{empty} \begin{document} \begin{tikzpicture} % (your TikZ code goes here) \end{tikzpicture} \end{document}
Jeśli jesteś w stanie użyć Cirkuit lub podobnego edytora lub napisać skrypt dla siebie, aby umieścić diagram w tym szablonie i uruchomić odpowiednie narzędzia, będziesz mieć szybki sposób na przekonwertowanie kodu TikZ na obraz PNG.
Odpowiadając na twoje pytanie bardziej bezpośrednio ... nie, nie znam żadnego sposobu na konwersję diagramu TikZ bezpośrednio do PNG bez przechodzenia na jakimś etapie przez plik PDF (lub przynajmniej DVI).
źródło
Poleciłbym następujące podejście. Umieść dany obraz TikZ w osobnym pliku i użyj
standalone
klasy, aby skompilować go samodzielnie. Używapreview
pakietu wymienionego w innych odpowiedziach. Aby dołączyć obraz do głównego dokumentu, najpierw załaduj tamstandalone
pakiet, a następnie użyj\input
polecenia na pliku obrazu.Umożliwi to pobranie pojedynczego pliku PDF obrazu TikZ bez marginesów. Następnie możesz użyć, powiedzmy, konwertera PDF do PNG, aby uzyskać plik PNG (zalecany do publikowania rysunków w Internecie). Format SVG byłby ładniejszy, ponieważ jest to format wektorowy, ale nie wszystkie przeglądarki mogą go wyświetlić.
Oto przykładowy kod. Plik obrazu TikZ (np.
pic.tex
):\documentclass{standalone} \usepackage{tikz} % all other packages and stuff you need for the picture \begin{document} \begin{tikzpicture} % your picture code \end{tikzpicture} \end{document}
Główny dokument:
\documentclass{article} % or whatever class you are using \usepackage{standalone} \usepackage{tikz} % All other packages required \begin{document} % Text text text % somewhere where you want the tikz picture \input{pic} % Text text text \end{document}
Następnie skompiluj obraz i przekonwertuj go, np. Za pomocą ImageMagick:
lub wypróbuj SVG:
źródło
inkscape
.Zobacz rozdział podręcznika TikZ „Eksternalizacja grafiki”. Pozwala to tworzyć wersje EPS lub PDF grafiki. Używam plików EPS, konwertuję je na TIFF i mogę je umieścić w dowolnym miejscu.
źródło
Generalnie używam czegoś podobnego:
\documentclass{article} \usepackage[pdftex,active,tightpage]{preview} %\setlength\PreviewBorder{2mm} % use to add a border around the image \usepackage{tikz} \begin{document} \begin{preview} \begin{tikzpicture} \shade (0,0) circle(2); % background \draw (0,0) circle(2); % rim \draw (.75,1) circle(.5); % right eye \fill (.66,.9) circle(.25); % right pupil \draw (-.75,1) circle(.5); % left eye \fill (-.66,.9) circle(.25);% left pupil \fill (.2,0) circle (.1); % right nostril \fill (-.2,0) circle (.1); % left nostril \draw (-135:1) arc (-135:-45:1) -- cycle; % mouth \end{tikzpicture} \end{preview} \end{document}
Wygenerowany plik pdf zawiera samodzielny obraz TikZ. Aby przekonwertować go na dowolny inny format pliku, po prostu otwórz go za pomocą Gimp.
źródło
Używam tego do reguły Makefile, aby utworzyć pliki PNG i miniatury z plików .tex, które zawierają po jednym tikzpicture. Działa podobnie do tworzenia obrazów w TeXample.net :
Ghostview (
gs
) można prawdopodobnieconvert
zastąpićexample
innym prefiksem pliku tymczasowego.źródło
Windows: tylko po to, aby być całkowicie wyraźnym dla noobów takich jak ja
Użyj pakietu prewiew, jak zasugerował Habi w powyższym kodzie lateksu, aby usunąć marginesy.
Zainstaluj MIktex i Inkscape i użyj następującego pliku bat:
cd = "C:\Path to tex" pdflatex input-file-name.tex "C:\Program Files (x86)\Inkscape\inkscape.exe" input-file-name.pdf --export-plain-svg=output-file-name.svg
źródło